1 2021-03-04 Martin Sebor <msebor@redhat.com>
5 * builtins.c (handle_array_ref): New helper.
6 (handle_mem_ref): New helper.
7 (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
8 into new helper functions. Correct a workaround for vectorized
11 2021-03-03 Pat Haugen <pthaugen@linux.ibm.com>
13 * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
14 floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
15 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
16 *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
17 attribute for Power10.
18 * config/rs6000/mma.md (*movoo): Likewise.
19 * config/rs6000/rs6000.md (define_attr "size"): Add 256.
20 (define_mode_attr bits): Add DD/TD modes.
21 * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
22 store_conditionalpti): Update size attribute for Power10.
24 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27 * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
28 -Wuninitialized, -Wmaybe-uninitialized.
29 (wide-int.o-warn): Likewise.
31 2021-03-03 Richard Earnshaw <rearnsha@arm.com>
33 * common/config/arm/arm-common.c: Include configargs.h.
34 (arm_config_default): New function.
35 (arm_target_mode): Renamed from arm_target_thumb_only. Handle
36 processors that do not support Thumb. Take into account the
37 --with-mode configuration setting for selecting the default.
38 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
39 (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
41 2021-03-03 Martin Liska <mliska@suse.cz>
44 * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
46 2021-03-03 Eric Botcazou <ebotcazou@adacore.com>
49 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
50 point back the hard frame pointer to its default location when the
51 frame is larger than SEH_MAX_FRAME_SIZE.
53 2021-03-03 Jakub Jelinek <jakub@redhat.com>
56 * config/i386/predicates.md (logic_operator): New define_predicate.
57 * config/i386/i386.md (mov + mem using comm arith peephole2):
58 Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
59 and the inner mode is [QH]Imode.
61 2021-03-03 Jakub Jelinek <jakub@redhat.com>
64 * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
65 (new_loc_list): Clear end_entry.
66 (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
67 if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx. Fix comment
69 (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
70 initialize also end_entry.
72 2021-03-03 Jakub Jelinek <jakub@redhat.com>
75 * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
76 partitions, if in non-layout mode after reorder_blocks also move
77 affected blocks to ensure a single partition transition.
79 2021-03-03 Jason Merrill <jason@redhat.com>
82 * cgraphunit.c (process_function_and_variable_attributes): Don't
83 warn about flatten on an alias if the target also has it.
84 * cgraph.h (symtab_node::get_alias_target_tree): New.
86 2021-03-02 David Edelsohn <dje.gcc@gmail.com>
88 * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
89 period to symbol name.
90 (tls_get_addr_internal<mode>): Same.
92 2021-03-02 David Malcolm <dmalcolm@redhat.com>
95 * diagnostic-show-locus.c
96 (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
99 2021-03-02 Martin Sebor <msebor@redhat.com>
102 * builtins.c (warn_for_access): Remove stray warning text.
104 2021-03-02 Martin Sebor <msebor@redhat.com>
107 * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
110 2021-03-02 Jakub Jelinek <jakub@redhat.com>
113 * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
114 -gdwarf-5 -gstrict-dwarf. For -gsplit-dwarf -gdwarf-5 use
115 DW_MACRO_*_strx instead of DW_MACRO_*_strp. Handle
116 DW_MACRO_define_strx and DW_MACRO_undef_strx.
117 (save_macinfo_strings): Use DW_MACRO_*_str* even with
118 -gdwarf-5 -gstrict-dwarf. Handle DW_MACRO_define_strx and
121 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
123 * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
125 (BT_FN_V8HI_V8HI_UINT): Likewise.
126 (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
127 * config/s390/s390-builtins.def (B_NNPA): New macro definition.
128 (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
129 New builtin definitions.
130 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
131 vector extension version.
132 * config/s390/s390.c (s390_expand_builtin): Check if builtins are
133 available with current -march level.
134 * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
135 (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
136 (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
137 * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
138 (vec_extend_to_fp32_lo): Likewise.
139 (vec_round_from_fp32): Likewise.
140 (vec_convert_to_fp16): Likewise.
141 (vec_convert_from_fp16): Likewise.
142 * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
143 (vclfnls_v8hi): Likewise.
144 (vcrnfs_v8hi): Likewise.
145 (vcfn_v8hi): Likewise.
146 (vcnf_v8hi): Likewise.
148 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
150 * common/config/s390/s390-common.c (processor_flags_table): New entry.
151 * config.gcc: Enable arch14 for --with-arch and --with-tune.
152 * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
153 arch14 for unknown CPU models.
154 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
155 * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
156 (s390_get_sched_attrmask): Likewise.
157 (s390_get_unit_mask): Likewise.
158 * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
159 (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
160 (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
161 (TARGET_NNPA_P): New macro definitions.
162 * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
163 * config/s390/s390.opt: Add PROCESSOR_ARCH14.
165 2021-03-02 Jakub Jelinek <jakub@redhat.com>
168 * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
169 condition. Call register_edge_assert_for_1 for == 0, != 0, == 1 and
170 != 1 comparisons if name is lhs of a comparison.
172 2021-03-01 Iain Sandoe <iain@sandoe.co.uk>
176 * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
177 * config/darwin.c (darwin_should_restore_cfa_state): New.
178 * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
179 * doc/tm.texi: Regenerated.
180 * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
181 * dwarf2cfi.c (connect_traces): If the target requests, restore
182 the CFA expression after a DW_CFA_restore.
183 * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
185 2021-03-01 Martin Liska <mliska@suse.cz>
188 * optc-save-gen.awk: Add 4 more exceptions.
190 2021-03-01 Nathan Sidwell <nathan@acm.org>
193 * tree.h (TYPE_ALIGN_RAW): New accessor.
194 (TYPE_ALIGN): Use it.
196 2021-03-01 Jan Hubicka <jh@suse.cz>
199 * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
201 2021-03-01 Eric Botcazou <ebotcazou@adacore.com>
204 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
205 point the hard frame pointer to the SSE register save area instead
206 of the general register save area. Perform only minimal adjustment
207 for small frames if it is initially not correctly aligned.
208 (ix86_expand_prologue): Remove early saves for a SEH target.
209 * config/i386/winnt.c (struct seh_frame_state): Document constraint.
211 2021-02-28 Jakub Jelinek <jakub@redhat.com>
214 * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
215 typo - referneced -> referenced.
216 * tree.c (component_ref_size): Fix comment typo -
217 refernce -> reference.
218 * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
220 (aliasing_component_refs_p): Fix comment typos -
221 refernce -> reference and refernece -> reference and
223 (nonoverlapping_refs_since_match_p): Fix comment typo -
224 referneces -> references.
225 * doc/invoke.texi (--param modref-max-bases): Fix a typo -
226 referneces -> references.
228 2021-02-27 Iain Sandoe <iain@sandoe.co.uk>
230 * config/host-darwin.c (darwin_gt_pch_use_address): Modify
231 diagnostic message to avoid use of a contraction and format
234 2021-02-27 Jakub Jelinek <jakub@redhat.com>
237 * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
238 HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
239 * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
240 HOST_WIDE_INT_PRINT_DEC in inform format string. Fix comment
243 2021-02-26 Richard Biener <rguenther@suse.de>
246 * expr.c (store_field): For calls with return-slot optimization
247 and addressable return type expand the store directly.
249 2021-02-26 Richard Biener <rguenther@suse.de>
252 * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
254 2021-02-26 Peter Bergner <bergner@linux.ibm.com>
257 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
260 2021-02-26 Aaron Sawdey <acsawdey@linux.ibm.com>
262 * config.gcc: Add rs6000-pcrel-opt.o.
263 * config/rs6000/rs6000-pcrel-opt.c: New file.
264 * config/rs6000/pcrel-opt.md: New file.
265 * config/rs6000/predicates.md: Add d_form_memory predicate.
266 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
267 * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
268 * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
269 pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
270 and make_pass_pcrel_opt().
271 * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
272 (rs6000_option_override_internal): Add pcrel-opt.
273 (rs6000_delegitimize_address): Support pcrel-opt.
274 (rs6000_opt_masks): Add pcrel-opt.
275 (pcrel_opt_valid_mem_p): New function.
276 (reg_to_non_prefixed): Make global.
277 (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
278 (output_pcrel_opt_reloc): New function.
279 * config/rs6000/rs6000.md (loads_extern_addr): New attr.
280 (pcrel_extern_addr): Set loads_extern_addr.
281 Add include for pcrel-opt.md.
282 * config/rs6000/rs6000.opt: Add -mpcrel-opt.
283 * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
286 2021-02-26 YunQiang Su <yunqiang.su@cipunited.com>
289 * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
290 If TARGET_64BIT and dest is SUBREG, we check the width, if it
291 equal to SImode, we use SImode operation, just like what we are
294 2021-02-26 Marek Polacek <polacek@redhat.com>
296 * builtins.c (warn_for_access): Fix typos.
298 2021-02-25 Iain Sandoe <iain@sandoe.co.uk>
300 * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
301 mark in front of the immediate quantity.
302 (<optab>_rolsi3_uxtw): Likewise.
304 2021-02-25 Richard Earnshaw <rearnsha@arm.com>
307 * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
308 (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
309 (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
310 address and disable when the FPCXT is not available.
311 (nonsecure_call_value_reg_thumb2): Likewise.
313 2021-02-25 Nathan Sidwell <nathan@acm.org>
316 * doc/invoke.texi (flang-info-module-cmi): Renamed option.
318 2021-02-25 Tamar Christina <tamar.christina@arm.com>
320 * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
322 2021-02-25 Richard Biener <rguenther@suse.de>
324 PR tree-optimization/99253
325 * tree-vect-loop.c (check_reduction_path): First compute
326 code, then verify out-of-loop uses.
328 2021-02-25 Jakub Jelinek <jakub@redhat.com>
331 * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
333 2021-02-25 Jakub Jelinek <jakub@redhat.com>
335 PR tree-optimization/80635
336 * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
337 VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
340 2021-02-25 Richard Biener <rguenther@suse.de>
342 * tree-vect-slp.c (optimize_load_redistribution_1): Delay
344 (vect_match_slp_patterns_2): Revert part of last change.
345 (vect_analyze_slp): Do not interleave optimize_load_redistribution
346 with pattern detection but do it afterwards. Dump the
347 whole SLP graph after pattern recognition and load
348 redistribution optimization finished.
350 2021-02-24 Jakub Jelinek <jakub@redhat.com>
353 * omp-low.c (struct omp_context): Add teams_nested_p and
354 nonteams_nested_p members.
355 (scan_omp_target): Diagnose teams nested inside of target with other
356 directives strictly nested inside of the same target.
357 (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
358 ctx->nonteams_nested_p as needed.
360 2021-02-24 Vladimir N. Makarov <vmakarov@redhat.com>
363 * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
365 2021-02-24 Hans-Peter Nilsson <hp@axis.com>
367 * config/cris/cris.c (cris_expand_prologue): Set
368 current_function_static_stack_size, if flag_stack_usage_info.
370 2021-02-24 Pat Haugen <pthaugen@linux.ibm.com>
372 * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
373 (rs6000_final_prescan_insn): Adjust.
374 (rs6000_asm_output_opcode): Likewise.
376 2021-02-24 Martin Sebor <msebor@redhat.com>
379 * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
380 from function arguments.
382 2021-02-24 Tamar Christina <tamar.christina@arm.com>
384 PR tree-optimization/99220
385 * tree-vect-slp.c (optimize_load_redistribution_1): Remove
386 node from cache when it's about to be deleted.
388 2021-02-24 Jakub Jelinek <jakub@redhat.com>
390 PR tree-optimization/99225
391 * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
392 to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
393 build_int_cst (..., 1). Formatting fixes.
395 2021-02-24 Tamar Christina <tamar.christina@arm.com>
397 PR tree-optimization/99149
398 * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
400 (vect_slp_reset_pattern): Remove.
401 (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
402 (complex_mul_pattern::build, complex_fma_pattern::build,
403 complex_fms_pattern::build): Fix ref counts.
404 * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
405 when node is being deleted.
406 (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
407 (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
409 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
411 2021-02-24 Matthias Klose <doko@ubuntu.com>
414 2020-12-07 Matthias Klose <doko@ubuntu.com>
416 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
417 and ENABLE_RTL_FLAG_CHECKING.
419 2021-02-24 Richard Biener <rguenther@suse.de>
422 * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
424 2021-02-23 Peter Bergner <bergner@linux.ibm.com>
426 * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
427 (vsx_assemble_pair): ...to this.
428 (*mma_assemble_pair): Rename from this...
429 (*vsx_assemble_pair): ...to this.
430 (mma_disassemble_pair): Rename from this...
431 (vsx_disassemble_pair): ...to this.
432 (*mma_disassemble_pair): Rename from this...
433 (*vsx_disassemble_pair): ...to this.
434 * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
435 BU_COMPAT): New macros.
436 (mma_assemble_pair): Rename from this...
437 (vsx_assemble_pair): ...to this.
438 (mma_disassemble_pair): Rename from this...
439 (vsx_disassemble_pair): ...to this.
440 (mma_assemble_pair): New compatibility built-in.
441 (mma_disassemble_pair): Likewise.
442 * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
443 (RS6000_BUILTIN_COMPAT): Define.
445 (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
446 (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
447 and VSX_BUILTIN_ASSEMBLE_PAIR.
448 (rs6000_init_builtins): Register compatibility built-ins.
449 (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
450 VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
451 VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
452 * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
453 (__builtin_vsx_assemble_pair): ...to this.
454 (__builtin_mma_disassemble_pair): Rename from this...
455 (__builtin_vsx_disassemble_pair): ...to this.
457 2021-02-23 Martin Liska <mliska@suse.cz>
460 * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
461 with different alignment. That leads to an invalid red zone
462 size allocated in runtime.
464 2021-02-23 Jakub Jelinek <jakub@redhat.com>
466 PR tree-optimization/99204
467 * fold-const.c (fold_read_from_constant_string): Check that
468 tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
470 2021-02-23 Segher Boessenkool <segher@kernel.crashing.org>
471 Kewen Lin <linkw@gcc.gnu.org>
473 * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
474 (rotl<mode>3_insert_3): ...this.
475 (plus_ior_xor): New code_iterator.
476 (define_split for GPR rl*imi): New splitter.
477 * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
480 2021-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
482 * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
484 * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
485 into a register when the above is enabled.
486 * config/aarch64/aarch64.c (neoversev1_tunings):
487 AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
488 (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
490 2021-02-22 Hans-Peter Nilsson <hp@axis.com>
492 * config/cris/cris.c (cris_print_operand) <'T'>: Change
493 valid operand from is now an addi mult-value to shift-value.
494 * config/cris/cris.md (*addi): Change expression of scaled
495 operand from mult to ashift.
496 * config/cris/cris.md (*addi_reload): New insn_and_split.
498 2021-02-22 John David Anglin <danglin@gcc.gnu.org>
501 * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
502 hook_bool_const_tree_hwi_hwi_const_tree_true.
503 (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
505 2021-02-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
507 PR rtl-optimization/98791
508 * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
511 2021-02-22 Martin Liska <mliska@suse.cz>
513 * tree-inline.c (inline_forbidden_p): Set
514 inline_forbidden_reason.
516 2021-02-22 Richard Biener <rguenther@suse.de>
518 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
521 2021-02-22 Richard Biener <rguenther@suse.de>
523 PR tree-optimization/99165
524 * gimple-ssa-store-merging.c (pass_store_merging::process_store):
525 Accumulate changed to ret.
527 2021-02-21 Uros Bizjak <ubizjak@gmail.com>
530 2020-12-09 Uroš Bizjak <ubizjak@gmail.com>
532 * config/i386/i386.h (REG_ALLOC_ORDER): Remove
534 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
537 * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
539 (trunctf<DFP_ALL:mode>2): Likewise.
540 (trunctdtf2_vr): Likewise.
541 (trunctdtf2): Likewise.
542 (extend<DFP_ALL:mode>tf2_vr): Likewise.
543 (extend<DFP_ALL:mode>tf2): Likewise.
544 (extendtftd2_vr): Likewise.
545 (extendtftd2): Likewise.
547 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
549 * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
550 add memory alternative.
551 (tf_to_fprx2): New pattern.
553 2021-02-19 Martin Sebor <msebor@redhat.com>
556 * attribs.c (init_attr_rdwr_indices): Guard vblist use.
557 (attr_access::free_lang_data): Remove a spurious test.
559 2021-02-19 Nathan Sidwell <nathan@acm.org>
561 * doc/invoke.texi (flang-info-module-read): Document.
563 2021-02-19 Martin Liska <mliska@suse.cz>
566 * params.opt: Fix typo.
568 2021-02-19 Richard Biener <rguenther@suse.de>
571 * tree-inline.c (inline_forbidden_p): Do not inline functions
572 with VLA arguments or return value.
574 2021-02-19 Jakub Jelinek <jakub@redhat.com>
577 * config/arm/arm.md (*stack_protect_combined_set_insn,
578 *stack_protect_combined_test_insn): If force_const_mem result
579 is not valid general operand, force its address into the destination
582 2021-02-19 Jakub Jelinek <jakub@redhat.com>
585 * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
586 pad or non-local label, put FORCED_LABELs from bb b after that label
587 rather than before it.
589 2021-02-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
592 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
593 expand_vector_broadcast' to emit the vec_duplicate operand.
595 2021-02-18 Vladimir N. Makarov <vmakarov@redhat.com>
597 PR rtl-optimization/96264
598 * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
601 2021-02-18 H.J. Lu <hjl.tools@gmail.com>
604 * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
605 looking up the retain attribute.
606 (resolve_unique_section): Likewise.
607 (get_variable_section): Likewise.
608 (switch_to_section): Likewise. Warn when a symbol without the
609 retain attribute and a symbol with the retain attribute are
610 placed in the section with the same name, instead of the used
612 * doc/extend.texi: Document the "retain" attribute.
614 2021-02-18 Nathan Sidwell <nathan@acm.org>
617 * doc/invoke.texi (flang-info-include-translate): Document header
620 2021-02-18 Richard Biener <rguenther@suse.de>
623 * ipa-fnsummary.c (analyze_function_body): Set
624 CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
625 * tree-inline.c (insert_init_debug_bind): Pass NULL for
626 error_mark_node values.
627 (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
629 (setup_one_parameter): Delay force_value_to_type until when
632 2021-02-18 Hans-Peter Nilsson <hp@axis.com>
634 PR tree-optimization/99142
635 * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
637 2021-02-18 Jakub Jelinek <jakub@redhat.com>
639 * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
640 wide_int_bitmask::wide_int_bitmask (uint64_t),
641 wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
642 wide_int_bitmask::operator ~ () const,
643 wide_int_bitmask::operator | (wide_int_bitmask) const,
644 wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
646 * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
647 PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
648 PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
649 PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
650 PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
651 PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
652 PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
653 PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
654 PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
655 PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
656 PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
657 PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
658 PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
659 PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
660 PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
661 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
662 PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
663 PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
664 PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
665 PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
666 PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
667 PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
668 PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
669 PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
671 2021-02-18 Jakub Jelinek <jakub@redhat.com>
674 * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
675 (build_printable_array_type): ... this. Add nelts argument. For
676 overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead. If
677 nelts, call build_array_type_nelts.
678 (array_bounds_checker::check_mem_ref): Use build_printable_array_type
679 instead of build_zero_elt_array_type and build_array_type_nelts.
681 2021-02-18 Jakub Jelinek <jakub@redhat.com>
684 * config/i386/i386.c (distance_non_agu_define): Don't call
685 extract_insn_cached here.
686 (ix86_lea_outperforms): Save and restore recog_data around call
687 to distance_non_agu_define and distance_agu_use.
688 (ix86_ok_to_clobber_flags): Remove.
689 (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
690 (ix86_avoid_lea_for_addr): Likewise. Adjust function comment.
691 * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
692 into define_insn. Move the splitting to define_peephole2 and
693 check there using peep2_regno_dead_p if FLAGS_REG is dead.
695 2021-02-17 Julian Brown <julian@codesourcery.com>
697 * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
700 2021-02-17 Xi Ruoyao <xry111@mengyan1223.wang>
703 * config/mips/mips.c (mips_symbol_insns): Do not use
704 MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
706 2021-02-16 Vladimir N. Makarov <vmakarov@redhat.com>
709 * stmt.c (resolve_operand_name_1): Take inout operands into account
710 for access to labels by names.
711 * doc/extend.texi: Describe counting operands for accessing labels.
713 2021-02-16 Richard Biener <rguenther@suse.de>
715 PR tree-optimization/38474
716 * tree-ssa-structalias.c (variable_info::address_taken): New.
717 (new_var_info): Initialize address_taken.
718 (process_constraint): Set address_taken.
719 (solve_constraints): Use the new address_taken flag rather
720 than is_reg_var for sorting variables.
721 (dump_constraint): Dump the variable number if the name
724 2021-02-16 Jakub Jelinek <jakub@redhat.com>
727 * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
728 multiply by 4096 and for inbranch by 8192.
729 * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
730 return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
732 2021-02-15 Maya Rashish <coypu@sdf.org>
734 * config/aarch64/aarch64.c (aarch64_init_builtins):
735 Call SUBTARGET_INIT_BUILTINS.
737 2021-02-15 Peter Bergner <bergner@linux.ibm.com>
739 PR rtl-optimization/98872
740 * init-regs.c (initialize_uninitialized_regs): Skip initialization
741 if CONST0_RTX is NULL.
743 2021-02-15 Richard Sandiford <richard.sandiford@arm.com>
745 PR rtl-optimization/98863
746 * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
747 (function_info::build_info): Turn into a declaration, moving the
748 definition to internals.h.
749 (function_info::bb_walker): Declare.
750 (function_info::create_reg_use): Likewise.
751 (function_info::calculate_potential_phi_regs): Take a build_info
753 (function_info::place_phis, function_info::create_ebbs): Declare.
754 (function_info::calculate_ebb_live_in_for_debug): Likewise.
755 (function_info::populate_backedge_phis): Delete.
756 (function_info::start_block, function_info::end_block): Declare.
757 (function_info::populate_phi_inputs): Delete.
758 (function_info::m_potential_phi_regs): Move information to build_info.
759 * rtl-ssa/internals.h: New file.
760 (function_info::bb_phi_info): New class.
761 (function_info::build_info): Moved from functions.h.
762 Add a constructor and destructor.
763 (function_info::build_info::ebb_use): Delete.
764 (function_info::build_info::ebb_def): Likewise.
765 (function_info::build_info::bb_live_out): Likewise.
766 (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
767 (function_info::build_info::potential_phi_regs): Likewise.
768 (function_info::build_info::potential_phi_regs_for_debug): Likewise.
769 (function_info::build_info::ebb_def_regs): Likewise.
770 (function_info::build_info::bb_phis): Likewise.
771 (function_info::build_info::bb_mem_live_out): Likewise.
772 (function_info::build_info::bb_to_rpo): Likewise.
773 (function_info::build_info::def_stack): Likewise.
774 (function_info::build_info::old_def_stack_limit): Likewise.
775 * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
776 Remove the regno argument. Push the previous definition onto the
777 definition stack where necessary.
778 * rtl-ssa/accesses.cc: Include internals.h.
779 * rtl-ssa/changes.cc: Likewise.
780 * rtl-ssa/blocks.cc: Likewise.
781 (function_info::build_info::build_info): Define.
782 (function_info::build_info::~build_info): Likewise.
783 (function_info::bb_walker): New class.
784 (function_info::bb_walker::bb_walker): Define.
785 (function_info::add_live_out_use): Convert a logarithmic-complexity
786 test into a linear one. Allow the same definition to be passed
788 (function_info::calculate_potential_phi_regs): Moved from
789 functions.cc. Take a build_info parameter and store the
790 information there instead.
791 (function_info::place_phis): New function.
792 (function_info::add_entry_block_defs): Update call to record_reg_def.
793 (function_info::calculate_ebb_live_in_for_debug): New function.
794 (function_info::add_phi_nodes): Use bb_phis to decide which
795 registers need phi nodes and initialize ebb_def_regs accordingly.
796 Do not add degenerate phis here.
797 (function_info::add_artificial_accesses): Use create_reg_use.
798 Assert that all definitions are listed in the DF LR sets.
799 Update call to record_reg_def.
800 (function_info::record_block_live_out): Record live-out register
801 values in the phis of successor blocks. Use the live-out set
802 when processing the last block in an EBB, instead of always
803 using the live-in sets of successor blocks. AND the live sets
804 with the set of registers that have been defined in the EBB,
805 rather than with all potential phi registers. Cope correctly
806 with branches back to the start of the current EBB.
807 (function_info::start_block): New function.
808 (function_info::end_block): Likewise.
809 (function_info::populate_phi_inputs): Likewise.
810 (function_info::create_ebbs): Likewise.
811 (function_info::process_all_blocks): Rewrite into a multi-phase
813 * rtl-ssa/functions.cc: Include internals.h.
814 (function_info::calculate_potential_phi_regs): Move to blocks.cc.
815 (function_info::init_function_data): Remove caller.
816 * rtl-ssa/insns.cc: Include internals.h
817 (function_info::create_reg_use): New function. Lazily any
818 degenerate phis needed by the linear RPO view.
819 (function_info::record_use): Use create_reg_use. When processing
820 debug uses, use potential_phi_regs and test it before checking
821 whether the register is live on entry to the current EBB. Lazily
822 calculate ebb_live_in_for_debug.
823 (function_info::record_call_clobbers): Update call to record_reg_def.
824 (function_info::record_def): Likewise.
826 2021-02-15 Martin Liska <mliska@suse.cz>
828 * toplev.c (init_asm_output): Free output of
829 gen_command_line_string function.
830 (process_options): Likewise.
832 2021-02-15 Martin Liska <mliska@suse.cz>
834 * params.opt: Add 2 missing Param keywords.
836 2021-02-15 Eric Botcazou <ebotcazou@adacore.com>
838 * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
840 2021-02-15 Jakub Jelinek <jakub@redhat.com>
842 PR tree-optimization/99079
843 * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
844 useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead
845 require both type and TREE_TYPE (@1) to be integral types and either
846 type having smaller or equal precision, or TREE_TYPE (@1) being
847 unsigned type, or type being signed type. If TREE_TYPE (@1)
848 doesn't have wrapping overflow, perform the subtraction of one in
851 2021-02-14 Jan Hubicka <hubicka@ucw.cz>
852 Richard Biener <rguether@suse.de>
855 * ipa-reference.c (ipa_init): Only conditinally initialize
856 reference_vars_to_consider.
857 (propagate): Conditionally deninitialize reference_vars_to_consider.
858 (ipa_reference_write_optimization_summary): Sanity check that
859 reference_vars_to_consider is not allocated.
861 2021-02-13 Levy Hsu <admin@levyhsu.com>
864 * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
865 extend parameter to get_si_mem_base_reg declaration.
866 (get_si_mem_base_reg): Add extend parameter. Set it.
867 (analyze): Pass extend arg to get_si_mem_base_reg.
868 (transform): Likewise. Use it when rewriting mems.
869 * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
870 loads and emit sign/zero extending load followed by subreg move.
872 2021-02-13 Jim Wilson <jimw@sifive.com>
875 * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
876 exit when !reload_completed. Only perform check for compressed reg
878 (riscv_rtx_costs): In MEM case, when optimizing for size and
879 shorten memrefs, if not compressible, then increase cost.
881 2021-02-13 Jakub Jelinek <jakub@redhat.com>
883 PR rtl-optimization/98439
884 * recog.c (pass_split_before_regstack::gate): Enable even when
885 pass_split_before_sched2 is enabled if -fselective-scheduling2 is
888 2021-02-13 Jakub Jelinek <jakub@redhat.com>
891 * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
892 swap of V2SImode elements in memory into DImode memory rotate by 32.
894 2021-02-12 Martin Sebor <msebor@redhat.com>
896 * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
898 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
900 * rtl-ssa/accesses.cc (function_info::make_use_available): Use
901 m_temp_obstack rather than m_obstack to allocate the temporary use.
903 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
905 * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
906 as read-modify operations.
908 2021-02-12 Richard Biener <rguenther@suse.de>
911 * ipa-fnsummary.c (unmodified_parm_1): Only walk when
912 fbi->aa_walk_budget is bigger than zero. Update
914 (param_change_prob): Likewise.
915 * ipa-prop.c (detect_type_change_from_memory_writes):
916 Properly account walk_aliased_vdefs.
917 (parm_preserved_before_stmt_p): Canonicalize updates.
918 (parm_ref_data_preserved_p): Likewise.
919 (parm_ref_data_pass_through_p): Likewise.
920 (determine_known_aggregate_parts): Account own alias queries.
922 2021-02-12 Martin Liska <mliska@suse.cz>
924 * opts-common.c (decode_cmdline_option): Release werror_arg.
925 * opts.c (gen_producer_string): Release output of
926 gen_command_line_string.
928 2021-02-12 Richard Biener <rguenther@suse.de>
930 PR tree-optimization/38474
931 * params.opt (-param=max-store-chains-to-track=): New param.
932 (-param=max-stores-to-track=): Likewise.
933 * doc/invoke.texi (max-store-chains-to-track): Document.
934 (max-stores-to-track): Likewise.
935 * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
937 (pass_store_merging::m_n_stores): Likewise.
938 (pass_store_merging::terminate_and_process_chain): Update
939 m_n_stores and m_n_chains.
940 (pass_store_merging::process_store): Likewise. Terminate
941 oldest chains if the number of stores or chains get too large.
942 (imm_store_chain_info::terminate_and_process_chain): Dump
945 2021-02-11 Eric Botcazou <ebotcazou@adacore.com>
947 * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
948 the cold section, emit a nop before the directive if the previous
949 active instruction can throw.
951 2021-02-11 Peter Bergner <bergner@linux.ibm.com>
954 * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
955 memory addresses that are legal for quad word accesses.
957 2021-02-11 Andrea Corallo <andrea.corallo@arm.com>
960 * config/arm/thumb2.md (*doloop_end_internal): Generate
961 alternative sequence to handle long range branches.
963 2021-02-11 Joel Hutton <joel.hutton@arm.com>
965 PR tree-optimization/98772
966 * optabs-tree.c (supportable_half_widening_operation): New function
967 to check for supportable V8QI->V8HI widening patterns.
968 * optabs-tree.h (supportable_half_widening_operation): New function.
969 * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
970 to create promotion stmts for V8QI->V8HI widening patterns.
971 (vectorizable_conversion): Add case for V8QI->V8HI.
973 2021-02-11 Richard Biener <rguenther@suse.de>
975 * sparseset.h (SPARSESET_ELT_BITS): Remove.
976 (SPARSESET_ELT_TYPE): Use unsigned int.
977 * fwprop.c: Do not include sparseset.h.
979 2021-02-10 Jakub Jelinek <jakub@redhat.com>
982 * varasm.c (declare_weak): For -fsyntax-only, allow even
983 TREE_ASM_WRITTEN function decls.
985 2021-02-10 Jakub Jelinek <jakub@redhat.com>
988 * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
989 <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
990 <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
991 <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
992 calling simplify_gen_subreg on it.
994 2021-02-10 Martin Liska <mliska@suse.cz>
996 * config/nvptx/nvptx.c (nvptx_option_override): Use
997 flag_patchable_function_entry instead of the removed
998 function_entry_patch_area_size.
1000 2021-02-10 Martin Liska <mliska@suse.cz>
1002 PR tree-optimization/99002
1003 PR tree-optimization/99026
1004 * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
1005 leak when adjacent cases are merged.
1006 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
1008 (make_pass_lower_switch): Remove trailing whitespace.
1009 * tree-switch-conversion.h (release_clusters): New.
1011 2021-02-10 Richard Biener <rguenther@suse.de>
1013 PR rtl-optimization/99054
1014 * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
1015 (fixup_partitions): Adjust.
1016 (rtl_verify_edges): Likewise.
1018 2021-02-10 Jakub Jelinek <jakub@redhat.com>
1021 * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
1022 temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
1025 2021-02-10 Richard Biener <rguenther@suse.de>
1028 * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
1031 2021-02-10 Richard Biener <rguenther@suse.de>
1033 PR tree-optimization/99024
1034 * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
1035 clear loop->aux if it is associated with the destroyed loop_vinfo.
1037 2021-02-10 Martin Liska <mliska@suse.cz>
1039 PR tree-optimization/99002
1040 * gimple-if-to-switch.cc (find_conditions): Fix memory leak
1043 2021-02-10 Martin Liska <mliska@suse.cz>
1046 * ipa-icf.c (sem_item::add_reference): Fix memory leak when
1049 2021-02-10 Jakub Jelinek <jakub@redhat.com>
1052 * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
1053 at class scope for DWARF5+.
1055 2021-02-09 Eric Botcazou <ebotcazou@adacore.com>
1057 PR rtl-optimization/96015
1058 * reorg.c (skip_consecutive_labels): Minor comment tweaks.
1059 (relax_delay_slots): When deleting a jump to the next active
1060 instruction over a barrier, first delete the barrier if the
1061 jump is the only way to reach the target label.
1063 2021-02-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
1065 * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
1066 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
1067 vector multiplies and vect.alu for SSRA.
1068 * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
1069 vect.mul cost field.
1070 * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
1071 * config/arm/arm.c: Likewise.
1073 2021-02-09 Richard Biener <rguenther@suse.de>
1075 PR tree-optimization/98863
1076 * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
1077 * tree-ssa-sccvn.c (last_pushed_avail): New global.
1078 (rpo_elim::eliminate_push_avail): Chain pushed avails.
1079 (unwind_state::avail_top): Add.
1080 (do_unwind): Rewrite unwinding of avail entries.
1081 (do_rpo_vn): Initialize last_pushed_avail and
1082 avail_top of the undo state.
1084 2021-02-09 Jakub Jelinek <jakub@redhat.com>
1087 * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
1088 const char * to char * and free those pointers after use.
1090 2021-02-09 Richard Biener <rguenther@suse.de>
1092 PR tree-optimization/99017
1093 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
1094 zero vector cost entries.
1096 2021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
1099 * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
1100 parameter in vectorizable_condition.
1102 2021-02-08 Richard Biener <rguenther@suse.de>
1105 * tree.c (walk_tree_1): Walk VECTOR_CST elements.
1107 2021-02-08 Martin Liska <mliska@suse.cz>
1110 * cfgexpand.c (pass_expand::execute): Parse per-function option
1111 flag_patchable_function_entry and use it.
1112 * common.opt: Remove function_entry_patch_area_size and
1113 function_entry_patch_area_start global variables.
1114 * opts.c (parse_and_check_patch_area): New function.
1115 (common_handle_option): Use it.
1116 * opts.h (parse_and_check_patch_area): New function.
1117 * toplev.c (process_options): Parse and use
1118 function_entry_patch_area_size.
1120 2021-02-08 Martin Sebor <msebor@redhat.com>
1122 * doc/extend.texi (attribute malloc): Correct typos.
1124 2021-02-05 Nathan Sidwell <nathan@acm.org>
1127 * gcc.c (driver::maybe_run_linker): Check for input file
1128 accessibility if not linking.
1130 2021-02-05 Richard Biener <rguenther@suse.de>
1132 PR tree-optimization/98855
1133 * tree-vectorizer.h (add_stmt_cost): New overload.
1134 * tree-vect-slp.c (li_cost_vec_cmp): New.
1135 (vect_bb_slp_scalar_cost): Cost individual loop regions
1136 separately. Account for the scalar instance root stmt.
1138 2021-02-05 Tom de Vries <tdevries@suse.de>
1141 * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
1143 (bit_test_cluster::emit): Reuse location_t for newly created
1145 (switch_decision_tree::try_switch_expansion): Preserve
1147 * tree-switch-conversion.h: Change function signatures.
1149 2021-02-05 Jakub Jelinek <jakub@redhat.com>
1152 * config/i386/i386-options.c (m_NONE, m_ALL): Define.
1153 * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
1154 X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
1155 (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
1157 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1159 * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
1160 * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
1161 * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
1162 (vget_high_f16): Reimplement using new builtin.
1163 (vget_high_f32): Likewise.
1164 (vget_high_f64): Likewise.
1165 (vget_high_p8): Likewise.
1166 (vget_high_p16): Likewise.
1167 (vget_high_p64): Likewise.
1168 (vget_high_s8): Likewise.
1169 (vget_high_s16): Likewise.
1170 (vget_high_s32): Likewise.
1171 (vget_high_s64): Likewise.
1172 (vget_high_u8): Likewise.
1173 (vget_high_u16): Likewise.
1174 (vget_high_u32): Likewise.
1175 (vget_high_u64): Likewise.
1177 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1179 * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
1180 * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
1181 * config/aarch64/arm_neon.h (__GET_LOW): Delete.
1182 (vget_low_f16): Reimplement using new builtin.
1183 (vget_low_f32): Likewise.
1184 (vget_low_f64): Likewise.
1185 (vget_low_p8): Likewise.
1186 (vget_low_p16): Likewise.
1187 (vget_low_p64): Likewise.
1188 (vget_low_s8): Likewise.
1189 (vget_low_s16): Likewise.
1190 (vget_low_s32): Likewise.
1191 (vget_low_s64): Likewise.
1192 (vget_low_u8): Likewise.
1193 (vget_low_u16): Likewise.
1194 (vget_low_u32): Likewise.
1195 (vget_low_u64): Likewise.
1197 2021-02-05 Kito Cheng <kito.cheng@sifive.com>
1199 * gcc.c (print_multilib_info): Check all required argument is provided
1202 2021-02-05 liuhongt <hongtao.liu@intel.com>
1205 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
1206 generate integer mask comparison for 128/256-bits vector when
1207 op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
1208 delete redundant !maskcmp condition.
1209 (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
1211 (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
1212 condition directly to if (maskcmp), add extra check for
1213 cmpmode, it should be MODE_INT.
1214 (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
1215 parameters op_true/op_false.
1216 (ix86_use_mask_cmp_p): New.
1218 2021-02-05 liuhongt <hongtao.liu@intel.com>
1221 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
1222 Remove m_GENERIC from ~list.
1223 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
1225 2021-02-04 David Malcolm <dmalcolm@redhat.com>
1228 * diagnostic-show-locus.c (compatible_locations_p): Require
1229 locations in the same macro map to be either both from the
1230 macro definition, or both from the macro arguments.
1232 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
1234 * config/aarch64/aarch64-simd-builtins.def: Add
1235 [su]mull_hi_lane[q] builtin generator macros.
1236 * config/aarch64/aarch64-simd.md
1237 (aarch64_<su>mull_hi_lane<mode>_insn): Define.
1238 (aarch64_<su>mull_hi_lane<mode>): Define.
1239 (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
1240 (aarch64_<su>mull_hi_laneq<mode>): Define.
1241 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
1242 builtin instead of inline asm.
1243 (vmull_high_lane_s32): Likewise.
1244 (vmull_high_lane_u16): Likewise.
1245 (vmull_high_lane_u32): Likewise.
1246 (vmull_high_laneq_s16): Likewise.
1247 (vmull_high_laneq_s32): Likewise.
1248 (vmull_high_laneq_u16): Likewise.
1249 (vmull_high_laneq_u32): Liekwise.
1251 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
1253 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
1254 builtin generator macros.
1255 * config/aarch64/aarch64-simd.md
1256 (aarch64_<su>mull_hi_n<mode>_insn): Define.
1257 (aarch64_<su>mull_hi_n<mode>): Define.
1258 * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
1259 instead of inline asm.
1260 (vmull_high_n_s32): Likewise.
1261 (vmull_high_n_u16): Likewise.
1262 (vmull_high_n_u32): Likewise.
1264 2021-02-04 Richard Biener <rguenther@suse.de>
1266 PR tree-optimization/98855
1267 * tree-vect-loop.c (vectorizable_phi): Do not cost
1268 single-argument PHIs.
1269 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
1270 * tree-vect-stmts.c (vectorizable_bswap): Also perform
1271 costing for SLP operation.
1273 2021-02-04 Martin Liska <mliska@suse.cz>
1275 * doc/extend.texi: Mention -mprefer-vector-width in target
1278 2021-02-03 Martin Sebor <msebor@redhat.com>
1280 PR tree-optimization/98937
1281 * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
1282 Flush pointer_query cache.
1284 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
1286 * config/rs6000/genfusion.pl (gen_2logical): Add missing
1287 fixes based on patch review.
1288 * config/rs6000/fusion.md: Regenerate file.
1290 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
1292 * config/rs6000/t-rs6000: Comment out auto generation of
1295 2021-02-03 Andrew Stubbs <ams@codesourcery.com>
1297 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
1298 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
1299 (output_file_start): Add gfx908.
1300 * config/gcn/gcn.opt (gpu_type): Add gfx908.
1301 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
1302 (MULTILIB_DIRNAMES): Add gfx908.
1303 * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
1304 (main): Recognize gfx908.
1305 * config/gcn/t-omp-device: Add gfx908.
1307 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
1309 * config/aarch64/aarch64-simd-builtins.def: Add
1310 [su]mlsl_hi_lane[q] builtin macro generators.
1311 * config/aarch64/aarch64-simd.md
1312 (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
1313 (aarch64_<su>mlsl_hi_lane<mode>): Define.
1314 (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
1315 (aarch64_<su>mlsl_hi_laneq<mode>): Define.
1316 * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
1317 builtin instead of inline asm.
1318 (vmlsl_high_lane_s32): Likewise.
1319 (vmlsl_high_lane_u16): Likewise.
1320 (vmlsl_high_lane_u32): Likewise.
1321 (vmlsl_high_laneq_s16): Likewise.
1322 (vmlsl_high_laneq_s32): Likewise.
1323 (vmlsl_high_laneq_u16): Likewise.
1324 (vmlsl_high_laneq_u32): Likewise.
1325 (vmlal_high_laneq_u32): Likewise.
1327 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
1329 * config/aarch64/aarch64-simd-builtins.def: Add
1330 [su]mlal_hi_lane[q] builtin generator macros.
1331 * config/aarch64/aarch64-simd.md
1332 (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
1333 (aarch64_<su>mlal_hi_lane<mode>): Define.
1334 (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
1335 (aarch64_<su>mlal_hi_laneq<mode>): Define.
1336 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
1337 builtin instead of inline asm.
1338 (vmlal_high_lane_s32): Likewise.
1339 (vmlal_high_lane_u16): Likewise.
1340 (vmlal_high_lane_u32): Likewise.
1341 (vmlal_high_laneq_s16): Likewise.
1342 (vmlal_high_laneq_s32): Likewise.
1343 (vmlal_high_laneq_u16): Likewise.
1344 (vmlal_high_laneq_u32): Likewise.
1346 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
1348 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
1349 builtin generator macros.
1350 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
1352 (aarch64_<su>mlsl_hi_n<mode>): Define.
1353 * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
1354 instead of inline asm.
1355 (vmlsl_high_n_s32): Likewise.
1356 (vmlsl_high_n_u16): Likewise.
1357 (vmlsl_high_n_u32): Likewise.
1359 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
1361 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
1362 builtin generator macros.
1363 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
1365 (aarch64_<su>mlal_hi_n<mode>): Define.
1366 * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
1367 instead of inline asm.
1368 (vmlal_high_n_s32): Likewise.
1369 (vmlal_high_n_u16): Likewise.
1370 (vmlal_high_n_u32): Likewise.
1372 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
1374 * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
1376 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
1378 (aarch64_<su>mlal_hi<mode>_insn): This.
1379 (aarch64_<su>mlal_hi<mode>): Define.
1380 * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
1381 instead of inline asm.
1382 (vmlal_high_s16): Likewise.
1383 (vmlal_high_s32): Likewise.
1384 (vmlal_high_u8): Likewise.
1385 (vmlal_high_u16): Likewise.
1386 (vmlal_high_u32): Likewise.
1388 2021-02-03 Ilya Leoshkevich <iii@linux.ibm.com>
1390 * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
1391 after calling alter_subreg() on a (mem).
1393 2021-02-03 Martin Liska <mliska@suse.cz>
1396 * lto-streamer-out.c (produce_lto_section): Fill up missing
1398 * lto-streamer.h (struct lto_section): Add _padding field.
1400 2021-02-03 Richard Biener <rguenther@suse.de>
1402 * lto-streamer.c (lto_get_section_name): Free temporary
1404 * tree-loop-distribution.c
1405 (loop_distribution::merge_dep_scc_partitions): Free edge data.
1407 2021-02-03 Jakub Jelinek <jakub@redhat.com>
1410 * ifcvt.c (noce_can_force_operand): New function.
1411 (noce_emit_move_insn): Use it.
1412 (noce_try_sign_mask): Likewise. Formatting fix.
1414 2021-02-03 Jakub Jelinek <jakub@redhat.com>
1417 * lra-constraints.c (process_alt_operands): For inline asm, don't call
1418 fatal_insn, but instead return false.
1420 2021-02-03 Jakub Jelinek <jakub@redhat.com>
1422 PR tree-optimization/98287
1423 * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
1426 2021-02-03 Tamar Christina <tamar.christina@arm.com>
1428 PR tree-optimization/98928
1429 * tree-vect-loop.c (vect_analyze_loop_2): Change
1430 STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
1431 * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
1432 * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
1433 (class _stmt_vec_info): Add slp_vect_pattern_only_p.
1435 2021-02-02 Richard Biener <rguenther@suse.de>
1437 * gimple-loop-interchange.cc (prepare_data_references):
1439 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
1440 * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
1441 * tree-vect-stmts.c (vectorizable_condition): Do not
1443 (vectorizable_comparison): Likewise.
1445 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1447 * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
1448 * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
1449 * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
1450 (vrsqrteq_u32): Likewise.
1452 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1454 * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
1455 * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
1456 (aarch64_sqxtun2<mode>_be): Likewise.
1457 (aarch64_sqxtun2<mode>): Likewise.
1458 * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
1459 (vqmovun_high_s32): Likewise.
1460 (vqmovun_high_s64): Likewise.
1461 * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
1463 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1465 * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
1467 (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
1469 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1471 * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
1472 fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
1473 fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
1474 ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
1475 fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
1476 fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
1477 fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
1478 fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
1480 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1482 * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
1483 * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
1484 ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
1486 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1488 * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
1489 uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
1491 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1493 * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
1494 vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
1495 vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
1496 ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
1497 udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
1498 ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
1499 ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
1500 ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
1503 2021-02-02 Jakub Jelinek <jakub@redhat.com>
1505 PR tree-optimization/98848
1506 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
1507 STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
1509 2021-02-02 Kito Cheng <kito.cheng@sifive.com>
1512 * expr.c: Check mode before calling store_expr.
1514 2021-02-02 Christophe Lyon <christophe.lyon@linaro.org>
1516 * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
1518 * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
1519 instruction using expression ior.
1520 (mve_vornq_u<mode>): New expander.
1521 (mve_vornq_f<mode>): Use ior code instead of unspec.
1522 * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
1524 2021-02-02 Alexandre Oliva <oliva@adacore.com>
1526 * tree-nested.c (convert_nonlocal_reference_op): Move
1527 current_function_decl restore after re-gimplification.
1528 (convert_local_reference_op): Likewise.
1530 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1532 * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
1534 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
1536 (aarch64_rshrn<mode>_insn_be): Likewise.
1537 (aarch64_rshrn<mode>): Likewise.
1538 (aarch64_rshrn2<mode>_insn_le): Likewise.
1539 (aarch64_rshrn2<mode>_insn_be): Likewise.
1540 (aarch64_rshrn2<mode>): Likewise.
1541 * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
1542 * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
1544 (vrshrn_high_n_s32): Likewise.
1545 (vrshrn_high_n_s64): Likewise.
1546 (vrshrn_high_n_u16): Likewise.
1547 (vrshrn_high_n_u32): Likewise.
1548 (vrshrn_high_n_u64): Likewise.
1549 (vrshrn_n_s16): Likewise.
1550 (vrshrn_n_s32): Likewise.
1551 (vrshrn_n_s64): Likewise.
1552 (vrshrn_n_u16): Likewise.
1553 (vrshrn_n_u32): Likewise.
1554 (vrshrn_n_u64): Likewise.
1556 2021-02-01 Sergei Trofimovich <siarheit@google.com>
1558 PR tree-optimization/98499
1559 * ipa-modref.c (analyze_ssa_name_flags): treat RVO
1560 conservatively and assume all possible side-effects.
1562 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1564 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
1565 vec_unpacku_hi_): Define builtins.
1566 * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
1568 (vmovl_high_s16): Likewise.
1569 (vmovl_high_s32): Likewise.
1570 (vmovl_high_u8): Likewise.
1571 (vmovl_high_u16): Likewise.
1572 (vmovl_high_u32): Likewise.
1574 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1576 * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
1578 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
1580 * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
1582 * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
1584 (vabdl_s16): Likewise.
1585 (vabdl_s32): Likewise.
1586 (vabdl_u8): Likewise.
1587 (vabdl_u16): Likewise.
1588 (vabdl_u32): Likewise.
1589 * config/aarch64/iterators.md (ABDL): New int iterator.
1590 (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
1592 2021-02-01 Martin Sebor <msebor@redhat.com>
1594 * tree.h (BLOCK_VARS): Add comment.
1595 (BLOCK_SUBBLOCKS): Same.
1596 (BLOCK_SUPERCONTEXT): Same.
1597 (BLOCK_ABSTRACT_ORIGIN): Same.
1598 (inlined_function_outer_scope_p): Same.
1600 2021-02-01 Martin Sebor <msebor@redhat.com>
1603 * attribs.c (attr_access::free_lang_data): Define new function.
1604 * attribs.h (attr_access::free_lang_data): Declare new function.
1606 2021-02-01 Richard Biener <rguenther@suse.de>
1608 * vec.h (auto_vec::auto_vec): Add memory stat parameters
1610 * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
1612 2021-02-01 Tamar Christina <tamar.christina@arm.com>
1614 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
1615 aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
1617 2021-02-01 Richard Biener <rguenther@suse.de>
1619 PR rtl-optimization/98863
1620 * config/i386/i386-features.c (convert_scalars_to_vector):
1621 Set DF_RD_PRUNE_DEAD_DEFS.
1623 2021-01-31 Eric Botcazou <ebotcazou@adacore.com>
1625 * system.h (SIZE_MAX): Define if not already defined.
1627 2021-01-30 Aaron Sawdey <acsawdey@linux.ibm.com>
1629 * config/rs6000/genfusion.pl (gen_2logical): New function to
1630 generate patterns for logical-logical fusion.
1631 * config/rs6000/fusion.md: Regenerated patterns.
1632 * config/rs6000/rs6000-cpus.def: Add
1633 OPTION_MASK_P10_FUSION_2LOGICAL.
1634 * config/rs6000/rs6000.c (rs6000_option_override_internal):
1635 Enable logical-logical fusion for p10.
1636 * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
1638 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
1640 * config/rs6000/rs6000.opt: Add periods to new AIX options.
1642 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
1644 * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
1645 (mabi=vec-default): New.
1646 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
1647 __EXTABI__ for AIX Vector extended ABI.
1648 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
1650 (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
1652 * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
1654 2021-01-30 Jakub Jelinek <jakub@redhat.com>
1656 * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
1657 DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
1659 2021-01-29 Vladimir N. Makarov <vmakarov@redhat.com>
1662 * lra-constraints.c (in_class_p): Don't narrow class only for REG
1665 2021-01-29 Will Schmidt <will_schmidt@vnet.ibm.com>
1667 * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
1668 clauses for CODE_FOR_vsx_xvcvuxddp_scale and
1669 CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
1671 2021-01-29 Andrew MacLeod <amacleod@redhat.com>
1673 PR tree-optimization/98866
1674 * gimple-range-gori.h (gori_compute:set_range_invariant): New.
1675 * gimple-range-gori.cc (gori_map::set_range_invariant): New.
1676 (gori_map::m_maybe_invariant): Rename from all_outgoing.
1677 (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
1678 (gori_map::is_export_p): Ditto.
1679 (gori_map::calculate_gori): Ditto.
1680 (gori_compute::set_range_invariant): New.
1681 * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
1682 invariant for pointers evaluating to [1, +INF].
1684 2021-01-29 Richard Biener <rguenther@suse.de>
1686 PR rtl-optimization/98863
1687 * config/i386/i386-features.c (remove_partial_avx_dependency):
1688 Do not perform DF analysis.
1689 (pass_data_remove_partial_avx_dependency): Remove
1692 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
1694 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
1695 builtin generator macros.
1696 * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
1698 * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
1699 instead of inline asm.
1700 (vmull_n_s32): Likewise.
1701 (vmull_n_u16): Likewise.
1702 (vmull_n_u32): Likewise.
1704 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1706 * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
1708 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
1710 (aarch64_<sur>abdl2<mode>): ... This.
1711 (<sur>sadv16qi): Adjust use of above.
1712 * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
1714 (vabdl_high_s16): Likewise.
1715 (vabdl_high_s32): Likewise.
1716 (vabdl_high_u8): Likewise.
1717 (vabdl_high_u16): Likewise.
1718 (vabdl_high_u32): Likewise.
1720 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1722 * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
1725 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
1727 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
1729 * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
1731 (vabal_high_s16): Likewise.
1732 (vabal_high_s32): Likewise.
1733 (vabal_high_u8): Likewise.
1734 (vabal_high_u16): Likewise.
1735 (vabal_high_u32): Likewise.
1736 * config/aarch64/iterators.md (ABAL2): New mode iterator.
1737 (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
1739 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1741 * config/aarch64/aarch64-simd-builtins.def (sabal): Define
1744 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
1746 (aarch64_<sur>abal<mode>): ... This
1747 (<sur>sadv16qi): Adust use of the above.
1748 * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
1750 (vabal_s16): Likewise.
1751 (vabal_s32): Likewise.
1752 (vabal_u8): Likewise.
1753 (vabal_u16): Likewise.
1754 (vabal_u32): Likewise.
1756 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1758 * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
1760 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
1762 * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
1764 (vaddlv_s16): Likewise.
1765 (vaddlv_u8): Likewise.
1766 (vaddlv_u16): Likewise.
1767 (vaddlvq_s8): Likewise.
1768 (vaddlvq_s16): Likewise.
1769 (vaddlvq_s32): Likewise.
1770 (vaddlvq_u8): Likewise.
1771 (vaddlvq_u16): Likewise.
1772 (vaddlvq_u32): Likewise.
1773 (vaddlv_s32): Likewise.
1774 (vaddlv_u32): Likewise.
1775 * config/aarch64/iterators.md (VDQV_L): New mode iterator.
1776 (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
1777 (Vwstype): New mode attribute.
1779 (VWIDE_S): Likewise.
1780 (USADDLV): New int iterator.
1781 (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
1783 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
1785 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
1786 builtin generator macros.
1787 * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
1789 * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
1790 instead of inline asm.
1791 (vmlsl_lane_s32): Likewise.
1792 (vmlsl_lane_u16): Likewise.
1793 (vmlsl_lane_u32): Likewise.
1794 (vmlsl_laneq_s16): Likewise.
1795 (vmlsl_laneq_s32): Likewise.
1796 (vmlsl_laneq_u16): Likewise.
1797 (vmlsl_laneq_u32): Likewise.
1799 2021-01-29 Richard Biener <rguenther@suse.de>
1801 * doc/invoke.texi (--param max-gcse-memory): Document unit
1803 * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
1804 * params.opt (--param max-gcse-memory): Adjust default and
1805 document unit of size.
1807 2021-01-29 Richard Biener <rguenther@suse.de>
1809 PR rtl-optimization/98863
1810 * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
1811 HOST_WIDE_INT for the memory estimate.
1813 2021-01-29 Bin Cheng <bin.cheng@linux.alibaba.com>
1814 Richard Biener <rguenther@suse.de>
1816 PR tree-optimization/97627
1817 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
1818 Do not analyze fake edges.
1820 2021-01-29 Richard Biener <rguenther@suse.de>
1822 PR rtl-optimization/98144
1823 * df.h (df_mir_bb_info): Add con_visited member.
1824 * df-problems.c (df_mir_alloc): Initialize con_visited,
1825 do not fully populate IN and OUT.
1826 (df_mir_reset): Likewise.
1827 (df_mir_confluence_0): Set con_visited.
1828 (df_mir_confluence_n): Properly handle implicitely
1829 fully populated IN and OUT as designated by con_visited
1830 and update con_visited accordingly.
1832 2021-01-29 Jakub Jelinek <jakub@redhat.com>
1835 * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
1836 vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
1837 && !TARGET_REALLY_IWMMXT to conditions.
1839 2021-01-29 Jakub Jelinek <jakub@redhat.com>
1842 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
1845 2021-01-28 Marek Polacek <polacek@redhat.com>
1848 * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
1849 the main variant, maybe reset it in its variants too.
1850 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
1851 (check_aligned_type): Check if TYPE_USER_ALIGN match.
1853 2021-01-28 Christophe Lyon <christophe.lyon@linaro.org>
1856 * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
1857 of constant zero for comparisons.
1859 2021-01-28 Michael Meissner <meissner@linux.ibm.com>
1861 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
1862 support for mapping built-in function names for long double
1863 built-in functions if long double is IEEE 128-bit.
1865 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
1867 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
1868 builtin generator macros.
1869 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
1871 * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
1872 instead of inline asm.
1873 (vmlsl_n_s32): Likewise.
1874 (vmlsl_n_u16): Likewise.
1875 (vmlsl_n_u32): Likewise.
1877 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
1879 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
1880 builtin generator macros.
1881 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
1883 * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
1884 instead of inline asm.
1885 (vmlal_n_s32): Likewise.
1886 (vmlal_n_u16): Likewise.
1887 (vmlal_n_u32): Likewise.
1889 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1891 * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
1893 * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
1895 (aarch64_shrn2<mode>_insn_be): Likewise.
1896 (aarch64_shrn2<mode>): Likewise.
1897 * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
1899 (vshrn_high_n_s32): Likewise.
1900 (vshrn_high_n_s64): Likewise.
1901 (vshrn_high_n_u16): Likewise.
1902 (vshrn_high_n_u32): Likewise.
1903 (vshrn_high_n_u64): Likewise.
1905 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1907 * config/aarch64/aarch64-simd-builtins.def (shrn): Define
1909 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
1911 (aarch64_shrn<mode>_insn_be): Likewise.
1912 (aarch64_shrn<mode>): Likewise.
1913 * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
1915 (vshrn_n_s32): Likewise.
1916 (vshrn_n_s64): Likewise.
1917 (vshrn_n_u16): Likewise.
1918 (vshrn_n_u32): Likewise.
1919 (vshrn_n_u64): Likewise.
1920 * config/aarch64/iterators.md (vn_mode): New mode attribute.
1922 2021-01-28 Richard Biener <rguenther@suse.de>
1924 PR rtl-optimization/80960
1925 * dse.c (check_mem_read_rtx): Call get_addr on the
1928 2021-01-28 Xionghu Luo <luoxhu@linux.ibm.com>
1929 David Edelsohn <dje.gcc@gmail.com>
1932 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1933 Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
1935 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
1937 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
1938 wrapper call rs6000_expand_vector_set_var for cleanup. Call
1939 rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
1941 (rs6000_expand_vector_set_var): Delete.
1942 (rs6000_expand_vector_set_var_p9): Make static.
1943 (rs6000_expand_vector_set_var_p8): Make static.
1945 2021-01-28 Xing GUO <higuoxing@gmail.com>
1947 * common/config/riscv/riscv-common.c
1948 (riscv_subset_list::parsing_subset_version): Fix -march option parsing
1949 when `p` extension exists.
1951 2021-01-27 Vladimir N. Makarov <vmakarov@redhat.com>
1953 PR rtl-optimization/97684
1954 * ira.c (ira): Call ira_set_pseudo_classes before
1955 update_equiv_regs when it is necessary.
1957 2021-01-27 Jakub Jelinek <jakub@redhat.com>
1960 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
1961 %w0, %w1 and %2 instead of %0, %1 and %2.
1963 2021-01-27 Aaron Sawdey <acsawdey@linux.ibm.com>
1965 * config/rs6000/genfusion.pl: New script to generate
1966 define_insn_and_split patterns so combine can arrange fused
1967 instructions next to each other.
1968 * config/rs6000/fusion.md: New file, generated fused instruction
1969 patterns for combine.
1970 * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
1971 (non_update_memory_operand): New predicate.
1972 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
1973 OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
1975 * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
1977 * config/rs6000/rs6000.c (rs6000_option_override_internal):
1978 Automatically set OPTION_MASK_P10_FUSION and
1979 OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
1980 (rs600_opt_masks): Allow -mpower10-fusion
1981 in function attributes.
1982 (address_is_non_pfx_d_or_x): New function.
1983 * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
1984 * config/rs6000/rs6000.md: Include fusion.md.
1985 * config/rs6000/rs6000.opt: Add -mpower10-fusion
1986 and -mpower10-fusion-ld-cmpi.
1987 * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
1989 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
1991 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
1992 builtin generator macros.
1993 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
1995 (aarch64_<su>mlal<mode>): This.
1996 * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
1997 instead of inline asm.
1998 (vmlal_s16): Likewise.
1999 (vmlal_s32): Likewise.
2000 (vmlal_u8): Likewise.
2001 (vmlal_u16): Likewise.
2002 (vmlal_u32): Likewise.
2004 2021-01-27 Richard Biener <rguenther@suse.de>
2006 PR tree-optimization/98854
2007 * tree-vect-slp.c (vect_build_slp_tree_2): Also build
2008 PHIs from scalars when the number of CTORs matches the
2011 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
2013 * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
2015 * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
2017 (aarch64_mls_n<mode>): This.
2018 * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
2020 (vmls_n_s32): Likewise.
2021 (vmls_n_u16): Likewise.
2022 (vmls_n_u32): Likewise.
2023 (vmlsq_n_s16): Likewise.
2024 (vmlsq_n_s32): Likewise.
2025 (vmlsq_n_u16): Likewise.
2026 (vmlsq_n_u32): Likewise.
2028 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
2030 * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
2032 * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
2034 (vmls_s16): Likewise.
2035 (vmls_s32): Likewise.
2036 (vmls_u8): Likewise.
2037 (vmls_u16): Likewise.
2038 (vmls_u32): Likewise.
2039 (vmlsq_s8): Likewise.
2040 (vmlsq_s16): Likewise.
2041 (vmlsq_s32): Likewise.
2042 (vmlsq_u8): Likewise.
2043 (vmlsq_u16): Likewise.
2044 (vmlsq_u32): Likewise.
2046 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
2048 * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
2050 * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
2052 (aarch64_mla_n<mode>): This.
2053 * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
2055 (vmla_n_s32): Likewise.
2056 (vmla_n_u16): Likewise.
2057 (vmla_n_u32): Likewise.
2058 (vmlaq_n_s16): Likewise.
2059 (vmlaq_n_s32): Likewise.
2060 (vmlaq_n_u16): Likewise.
2061 (vmlaq_n_u32): Likewise.
2063 2021-01-27 liuhongt <hongtao.liu@intel.com>
2066 * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
2067 (*sse2_eq<mode>3): Ditto.
2069 2021-01-27 Jakub Jelinek <jakub@redhat.com>
2071 * tree-pass.h (PROP_trees): Rename to ...
2072 (PROP_gimple): ... this.
2073 * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
2074 * passes.c (execute_function_dump, execute_function_todo,
2075 execute_one_ipa_transform_pass, execute_one_pass): Likewise.
2076 * varpool.c (ctor_for_folding): Likewise.
2078 2021-01-27 Jakub Jelinek <jakub@redhat.com>
2080 PR tree-optimization/97260
2081 * varpool.c: Include tree-pass.h.
2082 (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
2083 non-TREE_SIDE_EFFECTS automatic variables.
2085 2021-01-26 Paul Fee <paul.f.fee@gmail.com>
2087 * doc/cpp.texi (__cplusplus): Document value for -std=c++23
2089 * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
2090 * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
2091 (gen_compile_unit_die): Recognise C++23.
2093 2021-01-26 Jakub Jelinek <jakub@redhat.com>
2096 * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
2099 2021-01-26 Jakub Jelinek <jakub@redhat.com>
2102 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
2103 Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
2104 and INTVAL (mask). Add && INTVAL (mask) > 0 condition.
2106 2021-01-26 Richard Biener <rguenther@suse.de>
2108 * gimple-pretty-print.c (dump_binary_rhs): Handle
2109 VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
2111 2021-01-26 Richard Biener <rguenther@suse.de>
2114 * tree.h (vector_cst_int_elt): Remove.
2115 * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
2118 2021-01-26 Andrew Stubbs <ams@codesourcery.com>
2120 * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
2121 for V64DFmode min/max reductions.
2123 2021-01-26 Jakub Jelinek <jakub@redhat.com>
2125 * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
2126 as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
2127 two halves, one with x and the other with const0_rtx, ordered
2128 depending on endianity.
2130 2021-01-26 Alexandre Oliva <oliva@adacore.com>
2132 * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
2133 temporaries not seen in binding block, and not about to be
2134 added as gimple variables.
2136 2021-01-25 Martin Sebor <msebor@redhat.com>
2139 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
2141 2021-01-25 Martin Liska <mliska@suse.cz>
2143 * value-prof.c (get_nth_most_common_value): Use %s instead
2146 2021-01-25 Jakub Jelinek <jakub@redhat.com>
2149 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
2150 readelf -wi is able to read the emitted .debug_info back.
2151 * configure: Regenerated.
2153 2021-01-25 Martin Liska <mliska@suse.cz>
2155 PR gcov-profile/98739
2156 * common.opt: Add missing sign symbol.
2157 * value-prof.c (get_nth_most_common_value): Restore handling
2158 of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
2159 PROFILE_REPRODUCIBILITY_MULTITHREADED.
2161 2021-01-25 Richard Biener <rguenther@suse.de>
2164 * tree.c (vector_element_bits): Always use precision of
2165 the element type for boolean vectors.
2167 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
2169 * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
2170 (ENDFILE_SPEC): Evaluate qnolinkcmds.
2172 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
2174 * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
2175 nostartfiles handling since this is already done by
2176 LINK_COMMAND_SPEC. Evaluate qnolinkcmds.
2177 (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
2178 is already done by LINK_COMMAND_SPEC.
2179 (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
2180 this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds
2183 2021-01-25 Jakub Jelinek <jakub@redhat.com>
2186 * fold-const-call.c (host_size_t_cst_p): Renamed to ...
2187 (size_t_cst_p): ... this. Check and store unsigned HOST_WIDE_INT
2188 value rather than host size_t.
2189 (fold_const_call): Change type of s2 from size_t to
2190 unsigned HOST_WIDE_INT. Use size_t_cst_p instead of
2191 host_size_t_cst_p. For strncmp calls, pass MIN (s2, SIZE_MAX)
2192 instead of s2 as last argument.
2194 2021-01-25 Tamar Christina <tamar.christina@arm.com>
2196 * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
2197 VCMLA_OP, VCMUL_OP): New.
2198 * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
2199 * config/arm/neon.md (cmul<conj_op><mode>3): New.
2200 * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
2201 UNSPEC_VCMUL_CONJ): New.
2202 * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
2203 cml<fcmac1><conj_op><mode>4): New.
2205 2021-01-23 Jakub Jelinek <jakub@redhat.com>
2208 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
2210 2021-01-22 Jonathan Wright <jonathan.wright@arm.com>
2212 * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
2214 * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
2216 (vmla_s16): Likewise.
2217 (vmla_s32): Likewise.
2218 (vmla_u8): Likewise.
2219 (vmla_u16): Likewise.
2220 (vmla_u32): Likewise.
2221 (vmlaq_s8): Likewise.
2222 (vmlaq_s16): Likewise.
2223 (vmlaq_s32): Likewise.
2224 (vmlaq_u8): Likewise.
2225 (vmlaq_u16): Likewise.
2226 (vmlaq_u32): Likewise.
2228 2021-01-22 David Malcolm <dmalcolm@redhat.com>
2230 * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
2233 2021-01-22 Jakub Jelinek <jakub@redhat.com>
2236 * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
2237 filenames to emit, still emit the required 0 index directory and
2238 filename entries that match DW_AT_comp_dir and DW_AT_name of the
2241 2021-01-22 Marek Polacek <polacek@redhat.com>
2244 * doc/invoke.texi: Update C++ ABI Version 15 description.
2246 2021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2248 PR tree-optimization/98766
2249 * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
2250 comparing against type size with param_avoid_fma_max_bits.
2252 2021-01-22 Richard Biener <rguenther@suse.de>
2255 * tree.c (vector_element_bits): Key single-bit bool vector on
2256 integer mode rather than not vector mode.
2258 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
2261 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2262 Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
2264 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
2265 to call different path for P8 and P9.
2266 (rs6000_expand_vector_set_var_p9): New function.
2267 (rs6000_expand_vector_set_var_p8): New function.
2269 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
2273 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2274 Ajdust variable index vec_insert from address dereference to
2275 ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
2276 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
2278 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
2280 2021-01-22 Martin Liska <mliska@suse.cz>
2282 PR gcov-profile/98739
2283 * profile.c (compute_value_histograms): Drop time profile for
2284 -fprofile-reproducible=multithreaded.
2286 2021-01-22 Nathan Sidwell <nathan@acm.org>
2288 * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
2291 2021-01-22 Richard Biener <rguenther@suse.de>
2294 * tree-data-ref.c (initalize_matrix_A): Revert previous
2295 change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
2297 2021-01-22 Jakub Jelinek <jakub@redhat.com>
2299 PR tree-optimization/90248
2300 * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
2301 X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
2303 (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
2304 X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
2306 2021-01-22 Jakub Jelinek <jakub@redhat.com>
2308 PR tree-optimization/98255
2309 * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
2310 extend index - low_bound from sizetype's precision rather than index
2312 (get_addr_base_and_unit_offset_1): Likewise.
2313 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
2314 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
2316 2021-01-22 Richard Biener <rguenther@suse.de>
2318 PR tree-optimization/98786
2319 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
2320 adding new uses of abnormals. Verify we deal with a conditional
2323 2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2326 * optc-save-gen.awk: Add arm_fp16_format to checked_options.
2328 2021-01-22 liuhongt <hongtao.liu@intel.com>
2332 * config/i386/sse.md (VI_128_256): New mode iterator.
2333 (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
2334 *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
2335 *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
2336 define_insn_and_split to lower avx512 vector comparison to avx
2337 version when dest is vector.
2338 (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
2339 define_insn_and_split for negating the comparison result.
2340 * config/i386/predicates.md (float_vector_all_ones_operand):
2342 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
2343 general NOT operator without UNSPEC_MASKOP.
2345 2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
2347 PR rtl-optimization/98777
2348 * lra-int.h (lra_pmode_pseudo): New extern.
2349 * lra.c (lra_pmode_pseudo): New global.
2351 * lra-eliminations.c (eliminate_regs_in_insn): Use it.
2353 2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com>
2355 * fwprop.c (fwprop_propagation::classify_result): Allow
2356 (subreg (mem)) simplifications.
2358 2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2360 * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
2362 (aarch64_sqdmlal<mode>): ... This...
2363 (aarch64_sqdmlsl<mode>): ... And this.
2364 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
2365 (aarch64_sqdmlal_lane<mode>): ... This...
2366 (aarch64_sqdmlsl_lane<mode>): ... And this.
2367 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
2368 (aarch64_sqdmlsl_laneq<mode>): ... This...
2369 (aarch64_sqdmlal_laneq<mode>): ... And this.
2370 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
2371 (aarch64_sqdmlsl_n<mode>): ... This...
2372 (aarch64_sqdmlal_n<mode>): ... And this.
2373 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
2374 (aarch64_sqdmlal2<mode>_internal): ... This...
2375 (aarch64_sqdmlsl2<mode>_internal): ... And this.
2377 2021-01-21 Christophe Lyon <christophe.lyon@linaro.org>
2379 * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
2381 2021-01-21 Andrea Corallo <andrea.corallo@arm.com>
2384 * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
2386 2021-01-21 liuhongt <hongtao.liu@intel.com>
2388 PR rtl-optimization/98694
2389 * regcprop.c (copy_value): If SRC had been assigned a mode
2390 narrower than the copy, we can't link DEST into the chain even
2391 they have same hard_regno_nregs(i.e. HImode/SImode in i386
2394 2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2396 * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
2397 Convert to define_insn_and_split. Split into simple move when moving
2400 2021-01-20 Segher Boessenkool <segher@kernel.crashing.org>
2402 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
2403 Adjust comment. Simplify code.
2405 2021-01-20 Jakub Jelinek <jakub@redhat.com>
2408 * dwarf2out.c (reset_indirect_string): Also reset indirect strings
2409 with DW_FORM_line_strp form.
2410 (prune_unused_types_update_strings): Don't add into debug_str_hash
2411 indirect strings with DW_FORM_line_strp form.
2412 (adjust_name_comp_dir): New function.
2413 (dwarf2out_finish): Call it on CU DIEs after resetting
2414 debug_line_str_hash.
2416 2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
2418 PR rtl-optimization/98722
2419 * lra-eliminations.c (eliminate_regs_in_insn): Check that target
2420 has no 3-op add insn to transform insns containing two pluses.
2422 2021-01-20 Richard Biener <rguenther@suse.de>
2424 * hwint.h (add_hwi): New function.
2425 (mul_hwi): Likewise.
2426 * tree-data-ref.c (initialize_matrix_A): Properly translate
2427 tree constants and avoid HOST_WIDE_INT_MIN.
2428 (lambda_matrix_row_add): Avoid undefined integer overflow
2429 and return true on such overflow.
2430 (lambda_matrix_right_hermite): Handle overflow from
2431 lambda_matrix_row_add gracefully. Simplify previous fix.
2432 (analyze_subscript_affine_affine): Likewise.
2434 2021-01-20 Eugene Rozenfeld <erozen@microsoft.com>
2436 PR tree-optimization/96674
2437 * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
2438 x >= y && y != XXX_MIN --> x > y - 1
2440 2021-01-20 Richard Sandiford <richard.sandiford@arm.com>
2442 PR tree-optimization/98535
2443 * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
2444 If the high and low permutes are the same, remove the high permutes
2445 from the working set and only continue with the low ones.
2447 2021-01-20 Jakub Jelinek <jakub@redhat.com>
2449 PR tree-optimization/98721
2450 * builtins.c (access_ref::inform_access): Don't assume
2451 SSA_NAME_IDENTIFIER must be non-NULL. Print messages about
2452 object whenever allocfn is NULL, rather than only when DECL_P
2453 is true. Use %qE instead of %qD for that. Formatting fixes.
2455 2021-01-20 Richard Biener <rguenther@suse.de>
2457 PR tree-optimization/98758
2458 * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
2459 (lambda_matrix_right_hermite): Avoid undefinedness with
2460 signed integer abs and multiplication.
2461 (analyze_subscript_affine_affine): Use lambda_int.
2463 2021-01-20 David Malcolm <dmalcolm@redhat.com>
2466 * dwarf2out.c (output_line_info): Rename static variable
2467 "generation", moving it out of the function to...
2468 (output_line_info_generation): New.
2469 (init_sections_and_labels): Likewise, renaming the variable to...
2470 (init_sections_and_labels_generation): New.
2471 (dwarf2out_c_finalize): Reset the new variables.
2473 2021-01-19 Martin Sebor <msebor@redhat.com>
2476 * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
2477 all functions, even if they're not declared artificial or inline.
2478 * tree.c (tree_inlined_location): Use macro expansion location
2479 only if scope traversal fails to expose one.
2481 2021-01-19 Richard Sandiford <richard.sandiford@arm.com>
2483 PR rtl-optimization/92294
2484 * alias.c (compare_base_symbol_refs): Take an extra parameter
2485 and add the distance between two symbols to it. Enshrine in
2486 comments that -1 means "either 0 or 1, but we can't tell
2487 which at compile time".
2488 (memrefs_conflict_p): Update call accordingly.
2489 (rtx_equal_for_memref_p): Likewise. Take the distance between symbols
2492 2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2494 * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
2495 sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
2496 uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
2497 sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
2498 sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
2499 sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
2500 sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
2501 sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
2502 sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
2503 uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
2504 sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
2505 sqmovun): Use NONE flags.
2507 2021-01-19 Richard Biener <rguenther@suse.de>
2510 * ipa-modref.c (analyze_stmt): Only record a summary for a
2513 2021-01-19 Richard Biener <rguenther@suse.de>
2516 * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
2518 2021-01-19 Daniel Hellstrom <daniel@gaisler.com>
2520 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
2521 built-in define __FIX_LEON3FT_TN0018.
2523 2021-01-19 Richard Biener <rguenther@suse.de>
2526 * tree-inline.c (tree_function_versioning): Set input_location
2527 to UNKNOWN_LOCATION throughout the function.
2529 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
2532 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
2534 2021-01-19 Martin Jambor <mjambor@suse.cz>
2537 * ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check
2538 whether non-call exceptions allow removal of a statement.
2539 (isra_analyze_call): Pass the appropriate function to
2540 ssa_name_only_returned_p.
2542 2021-01-19 Geng Qi <gengqi@linux.alibaba.com>
2544 * config/riscv/arch-canonicalize (longext_sort): New function for
2545 sorting 'multi-letter'.
2546 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
2547 'alts'. The 'arch' may not be the first of 'alts'.
2548 (_expand_combination): Add underline for the 'ext' without '*'.
2549 This is because, a single-letter extension can always be treated well
2550 with a '_' prefix, but it cannot be separated out if it is appended
2553 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
2556 * ira.c (ira): Skip abnormal critical edge splitting.
2558 2021-01-18 Jakub Jelinek <jakub@redhat.com>
2560 PR tree-optimization/98727
2561 * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
2562 second .MUL_OVERFLOW operand for signed multiplication with overflow
2563 checking if the second operand of multiplication is not constant.
2565 2021-01-18 David Edelsohn <dje.gcc@gmail.com>
2567 * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
2568 defaults to version 4.
2570 2021-01-18 David Malcolm <dmalcolm@redhat.com>
2572 * attribs.h (fndecl_dealloc_argno): New decl.
2573 * builtins.c (call_dealloc_argno): Split out second half of
2575 (fndecl_dealloc_argno): New.
2576 * doc/extend.texi (Common Function Attributes): Document the
2577 interaction between the analyzer and the malloc attribute.
2578 * doc/invoke.texi (Static Analyzer Options): Likewise.
2580 2021-01-17 David Edelsohn <dje.gcc@gmail.com>
2582 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
2584 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
2586 2021-01-17 Martin Jambor <mjambor@suse.cz>
2589 * cgraph.c (clone_of_p): Check also former_clone_of as we climb
2592 2021-01-17 Mark Wielaard <mark@klomp.org>
2594 * common.opt (gdwarf-): Init(5).
2595 * doc/invoke.texi (-gdwarf): Document default to 5.
2597 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
2600 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
2602 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
2603 ...this. Add extra argument.
2604 * gimplify.c (omp_default_clause): Ensure that event handle is
2605 firstprivate in a task region.
2606 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
2607 (gimplify_adjust_omp_clauses): Likewise.
2608 * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
2609 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
2610 * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
2611 if detach clause specified. Add detach argument when generating
2613 * omp-low.c (scan_sharing_clauses): Setup data environment for detach
2615 (finish_taskreg_scan): Move field for variable containing the event
2616 handle to the front of the struct.
2617 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix
2619 * tree-nested.c (convert_nonlocal_omp_clauses): Handle
2620 OMP_CLAUSE_DETACH clause.
2621 (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
2622 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
2623 * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
2625 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
2627 (walk_tree_1): Handle OMP_CLAUSE_DETACH.
2629 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
2631 * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten
2632 multilib directory names. Use MULTILIB_REQUIRED instead of
2633 MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div
2634 -mcustom-fpu-cfg=fph2 multilib.
2636 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
2638 * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
2639 (nios2_init_fpu_configs): Provide register values for new
2640 -mcustom-fpu-cfg=fph2 option variant.
2641 * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
2644 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
2646 * config/nios2/nios2.c (nios2_custom_check_insns): Remove
2647 custom instruction warnings.
2649 2021-01-16 Jakub Jelinek <jakub@redhat.com>
2651 PR tree-optimization/96669
2652 * match.pd ((CST << x) & 1 -> x == 0): New simplification.
2654 2021-01-16 Jakub Jelinek <jakub@redhat.com>
2656 PR tree-optimization/96271
2657 * passes.def: Pass false argument to first two pass_cd_dce
2658 instances and true to last instance. Add comment that
2659 last instance rewrites no longer addressed locals.
2660 * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
2662 (pass_cd_dce::set_pass_param): New method.
2663 (pass_cd_dce::execute): Return TODO_update_address_taken from
2664 last cd_dce instance.
2666 2021-01-15 Carl Love <cel@us.ibm.com>
2668 * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
2670 * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
2671 * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
2672 DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
2673 DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
2674 MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
2676 (MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions.
2677 * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
2678 VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
2679 New overloaded definitions.
2680 (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
2681 P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
2682 P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
2683 P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
2684 P10V_BUILTIN_MULHU_V4SI]: Add case
2685 statement for builtins.
2686 * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
2687 * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
2688 (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
2689 (vsx_mul_v2di): Add if TARGET_POWER10 statement.
2690 (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
2691 (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
2692 mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
2693 Add define_insn, mode is VIlong.
2694 * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
2695 Add builtin descriptions.
2697 2021-01-15 Eric Botcazou <ebotcazou@adacore.com>
2699 * final.c (final_start_function_1): Reset force_source_line.
2701 2021-01-15 Jakub Jelinek <jakub@redhat.com>
2703 PR tree-optimization/96669
2704 * match.pd (((1 << A) & 1) != 0 -> A == 0,
2705 ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
2706 possibly different power of two constants and to right shift too.
2708 2021-01-15 Jakub Jelinek <jakub@redhat.com>
2710 PR tree-optimization/96681
2711 * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
2712 ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
2713 ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
2714 ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
2716 2021-01-15 Alexandre Oliva <oliva@adacore.com>
2718 * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
2720 2021-01-15 Tamar Christina <tamar.christina@arm.com>
2722 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
2723 cmul<conj_op><mode>3): New.
2724 * config/aarch64/iterators.md (UNSPEC_FCMUL,
2725 UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
2726 UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
2727 FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
2728 sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
2729 (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
2730 (rot_op): Renamed to conj_op.
2731 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
2732 cmul<conj_op><mode>3): New.
2733 * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
2734 cmul<conj_op><mode>3): New.
2736 2021-01-15 David Malcolm <dmalcolm@redhat.com>
2740 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
2741 Escape the tempfile name when constructing the expected output.
2743 2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2745 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
2747 (aarch64_<su>mlsl_hi<mode>): ... This.
2748 (aarch64_<su>mlsl_hi<mode>): Define.
2749 (*aarch64_<su>mlsl<mode): Rename to...
2750 (aarch64_<su>mlsl<mode): ... This.
2751 * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
2752 smlsl_hi, umlsl_hi): Define builtins.
2753 * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
2754 vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
2755 vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
2756 vmlsl_u16, vmlsl_u32): Reimplement with builtins.
2758 2021-01-15 Uroš Bizjak <ubizjak@gmail.com>
2760 * config/i386/i386-c.c (ix86_target_macros):
2761 Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
2763 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
2766 * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
2767 * Makefile.in (RTL_SSA_H): New variable.
2768 * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
2769 * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
2770 * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
2772 * config/aarch64/aarch64-cc-fusion.cc: New file.
2774 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
2776 * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
2777 calling cancel_changes for changes that no longer exist.
2779 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
2781 * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
2782 (function_info::reg_defs): ...this.
2783 * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
2784 (function_info::reg_defs): ...this.
2786 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2789 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
2791 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2794 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2797 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
2799 2021-01-15 Richard Biener <rguenther@suse.de>
2801 PR tree-optimization/96376
2802 * tree-vect-stmts.c (get_load_store_type): Disregard alignment
2805 2021-01-15 Martin Liska <mliska@suse.cz>
2807 * doc/install.texi: Document that some tests need pytest module.
2808 * doc/sourcebuild.texi: Likewise.
2810 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2813 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
2815 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2817 * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
2818 (mve_vshrq_n_u<mode>_imm): Likewise.
2819 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
2820 * config/arm/vec-common.md: ... here.
2822 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2824 * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
2826 * config/arm/neon.md (vashl<mode>3): Delete.
2827 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
2828 (vasl<mode>3): New expander.
2830 2021-01-15 Richard Biener <rguenther@suse.de>
2832 PR tree-optimization/98685
2833 * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
2834 of vector extern defs.
2836 2021-01-14 David Malcolm <dmalcolm@redhat.com>
2839 * diagnostic.c (diagnostic_kind_text): Break out this array
2841 (diagnostic_build_prefix): ...here.
2842 (fancy_abort): Detect when diagnostic_initialize has not yet been
2843 called and fall back to a minimal implementation of printing the
2844 ICE, rather than segfaulting in internal_error.
2846 2021-01-14 David Malcolm <dmalcolm@redhat.com>
2848 * diagnostic.c (diagnostic_initialize): Eliminate
2849 parseable_fixits_p in favor of initializing extra_output_kind from
2850 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
2851 (convert_column_unit): New function, split out from...
2852 (diagnostic_converted_column): ...this.
2853 (print_parseable_fixits): Add "column_unit" and "tabstop" params.
2854 Use them to call convert_column_unit on the column values.
2855 (diagnostic_report_diagnostic): Eliminate conditional on
2856 parseable_fixits_p in favor of a switch statement on
2857 extra_output_kind, passing the appropriate values to the new
2858 params of print_parseable_fixits.
2859 (selftest::test_print_parseable_fixits_none): Update for new
2860 params of print_parseable_fixits.
2861 (selftest::test_print_parseable_fixits_insert): Likewise.
2862 (selftest::test_print_parseable_fixits_remove): Likewise.
2863 (selftest::test_print_parseable_fixits_replace): Likewise.
2864 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
2866 (selftest::diagnostic_c_tests): Call it.
2867 * diagnostic.h (enum diagnostics_extra_output_kind): New.
2868 (diagnostic_context::parseable_fixits_p): Delete field in favor
2870 (diagnostic_context::extra_output_kind): ...this new field.
2871 * doc/invoke.texi (Environment Variables): Add
2872 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
2873 * opts.c (common_handle_option): Update handling of
2874 OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
2877 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2879 * tree-vect-slp-patterns.c (class complex_operations_pattern,
2880 complex_operations_pattern::matches,
2881 complex_operations_pattern::recognize,
2882 complex_operations_pattern::build): New.
2883 (slp_patterns): Use it.
2885 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2887 * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
2888 * optabs.def (cmls_optab, cmls_conj_optab): New.
2889 * doc/md.texi: Document them.
2890 * tree-vect-slp-patterns.c (class complex_fms_pattern,
2891 complex_fms_pattern::matches, complex_fms_pattern::recognize,
2892 complex_fms_pattern::build): New.
2894 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2896 * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
2897 * optabs.def (cmla_optab, cmla_conj_optab): New.
2898 * doc/md.texi: Document them.
2899 * tree-vect-slp-patterns.c (vect_match_call_p,
2900 class complex_fma_pattern, vect_slp_reset_pattern,
2901 complex_fma_pattern::matches, complex_fma_pattern::recognize,
2902 complex_fma_pattern::build): New.
2904 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2906 * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
2907 * optabs.def (cmul_optab, cmul_conj_optab): New.
2908 * doc/md.texi: Document them.
2909 * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
2910 vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
2911 vect_build_combine_node, class complex_mul_pattern,
2912 complex_mul_pattern::matches, complex_mul_pattern::recognize,
2913 complex_mul_pattern::build): New.
2915 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2917 * tree-vect-slp.c (optimize_load_redistribution_1): New.
2918 (optimize_load_redistribution, vect_is_slp_load_node): New.
2919 (vect_match_slp_patterns): Use it.
2921 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2923 * tree-vect-slp-patterns.c (complex_add_pattern::build):
2926 2021-01-14 Thomas Schwinge <thomas@codesourcery.com>
2928 * config/gcn/mkoffload.c (main): Create an offload image only in
2929 64-bit configurations.
2931 2021-01-14 H.J. Lu <hjl.tools@gmail.com>
2934 * config/i386/i386-options.c (ix86_option_override_internal):
2935 Issue an error for -fcf-protection with CF_BRANCH when compiling
2936 for 32-bit non-TARGET_CMOV targets.
2938 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
2941 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
2942 Remove declaration and initialization of shadow variable "ret".
2943 (ix86_option_override_internal): Remove delcaration of
2944 shadow variable "i". Redeclare shadowed variable to unsigned.
2945 * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
2946 * config/i386/i386-builtins.c (get_builtin_code_for_version):
2947 Update for redeclaration.
2948 * config/i386/i386.h (pta_size): Ditto.
2950 2021-01-14 Richard Biener <rguenther@suse.de>
2952 PR tree-optimization/98674
2953 * tree-data-ref.c (base_supports_access_fn_components_p): New.
2954 (initialize_data_dependence_relation): For two bases without
2955 possible access fns resort to type size equality when determining
2956 shape compatibility.
2958 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2961 * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
2962 <=, >= operators in vcle and vcge intrinsics respectively.
2963 * config/arm/arm_neon_builtins.def: Remove entry for
2966 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
2969 * config/i386/i386-options.c (ix86_function_specific_save):
2970 Remove redundant assignment to opts->x_ix86_branch_cost.
2971 * config/i386/i386.c (ix86_prefetch_sse):
2972 Rename from x86_prefetch_sse. Update all uses.
2973 * config/i386/i386.h: Update for rename.
2974 * config/i386/i386-options.h: Ditto.
2976 2021-01-14 Jakub Jelinek <jakub@redhat.com>
2979 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
2980 *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
2981 Use Bm instead of m for non-avx. Add isa attribute.
2983 2021-01-14 Jakub Jelinek <jakub@redhat.com>
2985 PR tree-optimization/96688
2986 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
2987 ~X can be simplified.
2989 2021-01-14 Richard Sandiford <richard.sandiford@arm.com>
2991 * tree-vect-stmts.c (vect_model_load_cost): Account for unused
2992 IFN_LOAD_LANES results.
2994 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2996 * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
2998 (aarch64_xtn<mode>): Likewise.
2999 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
3002 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
3004 (vmovl_s16): Likewise.
3005 (vmovl_s32): Likewise.
3006 (vmovl_u8): Likewise.
3007 (vmovl_u16): Likewise.
3008 (vmovl_u32): Likewise.
3009 (vmovn_s16): Likewise.
3010 (vmovn_s32): Likewise.
3011 (vmovn_s64): Likewise.
3012 (vmovn_u16): Likewise.
3013 (vmovn_u32): Likewise.
3014 (vmovn_u64): Likewise.
3016 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3018 * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
3020 (aarch64_<su>qxtn2<mode>_be): Likewise.
3021 (aarch64_<su>qxtn2<mode>): Likewise.
3022 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
3024 * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
3025 (su): Handle ss_truncate and us_truncate.
3026 * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
3028 (vqmovn_high_s32): Likewise.
3029 (vqmovn_high_s64): Likewise.
3030 (vqmovn_high_u16): Likewise.
3031 (vqmovn_high_u32): Likewise.
3032 (vqmovn_high_u64): Likewise.
3034 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3036 * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
3038 (aarch64_xtn2<mode>_be): Likewise.
3039 (aarch64_xtn2<mode>): Likewise.
3040 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
3042 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
3044 (vmovn_high_s32): Likewise.
3045 (vmovn_high_s64): Likewise.
3046 (vmovn_high_u16): Likewise.
3047 (vmovn_high_u32): Likewise.
3048 (vmovn_high_u64): Likewise.
3050 2021-01-13 Stafford Horne <shorne@gmail.com>
3052 * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
3054 2021-01-13 Stafford Horne <shorne@gmail.com>
3056 * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
3058 2021-01-13 Stafford Horne <shorne@gmail.com>
3060 * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
3061 define for __or1k_hard_float__.
3063 2021-01-13 Stafford Horne <shorne@gmail.com>
3065 * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
3066 (PROFILE_HOOK): Define to call _mcount.
3067 (FUNCTION_PROFILER): Change from abort to no-op.
3069 2021-01-13 Jakub Jelinek <jakub@redhat.com>
3071 PR tree-optimization/96691
3072 * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
3073 (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
3074 (~D ^ C) or (D ^ C) can be simplified.
3076 2021-01-13 Richard Biener <rguenther@suse.de>
3078 PR tree-optimization/92645
3079 * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
3080 until after vector lowering.
3082 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
3084 * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
3086 (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
3087 (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
3089 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
3091 * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
3093 (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
3094 (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
3096 2021-01-13 Richard Biener <rguenther@suse.de>
3098 PR tree-optimization/92645
3099 * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
3100 BIT_FIELD_REF argument.
3101 (vect_build_slp_tree_2): Record the desired vector type
3102 on the external vector def.
3103 (vectorizable_slp_permutation): Handle required punning
3104 of existing vector defs.
3106 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
3108 * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
3110 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
3112 * config/sh/sh.md (movsf_ie): Remove operands[2] test.
3114 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
3116 * config.gcc [$target == *-*-gnu*]: Enable
3117 'default_gnu_indirect_function'.
3119 2021-01-13 Jakub Jelinek <jakub@redhat.com>
3122 * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
3123 registers before calling targetm.vectorize.vec_perm_const, only after
3125 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
3126 two argument permutation when one operand is zero vector and only
3127 after that force operands into registers.
3128 * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
3129 define_insn_and_split pattern.
3130 (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
3131 (*avx512f_zero_extendv16hiv16si2_1): Likewise.
3132 (*avx2_zero_extendv8hiv8si2_1): Likewise.
3133 (*avx512f_zero_extendv8siv8di2_1): Likewise.
3134 (*avx2_zero_extendv4siv4di2_1): Likewise.
3135 * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
3137 * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
3138 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
3139 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
3140 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
3141 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
3142 * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap.
3144 2021-01-13 Martin Liska <mliska@suse.cz>
3146 PR tree-optimization/98455
3147 * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
3148 Record also virtual PHIs.
3149 (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
3152 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
3154 * doc/invoke.texi (C++ Modules): Fix typos.
3156 2021-01-13 Richard Biener <rguenther@suse.de>
3158 PR tree-optimization/98640
3159 * tree-ssa-sccvn.c (visit_nary_op): Do not try to
3160 handle plus or minus from a truncated operand to be
3163 2021-01-13 Jakub Jelinek <jakub@redhat.com>
3166 * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
3167 define_insn_and_split patterns.
3168 (splitter after *btr<mode>_2): New splitter.
3170 2021-01-13 Martin Liska <mliska@suse.cz>
3173 * cgraphunit.c (analyze_functions): Remove dead code.
3175 2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com>
3177 * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
3178 * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
3179 (a64fx_regmove_cost, a64fx_vector_cost): New.
3180 (a64fx_tunings): Use the new added cost tables.
3182 2021-01-13 Jakub Jelinek <jakub@redhat.com>
3185 * config/i386/predicates.md (pmovzx_parallel): New predicate.
3186 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
3187 define_insn_and_split pattern.
3188 (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
3189 (*sse4_1_zero_extendv2siv2di2_3): Likewise.
3191 2021-01-13 Julian Brown <julian@codesourcery.com>
3193 * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
3196 2021-01-13 Julian Brown <julian@codesourcery.com>
3198 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
3201 2021-01-13 Julian Brown <julian@codesourcery.com>
3203 * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
3204 for reciprocal-approximation instructions.
3205 (div<mode>3): Use fused multiply-accumulate operations for reciprocal
3206 refinement and division result.
3207 * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
3209 2021-01-13 Julian Brown <julian@codesourcery.com>
3211 * config/gcn/gcn-valu.md (subdf): Rename to...
3214 2021-01-12 Martin Liska <mliska@suse.cz>
3216 * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
3218 2021-01-12 Andrea Corallo <andrea.corallo@arm.com>
3220 * function-abi.h: Fix typo.
3222 2021-01-12 Christophe Lyon <christophe.lyon@linaro.org>
3226 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
3227 (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
3228 (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
3229 (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
3230 (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
3231 (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
3232 (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
3233 (ARM_HAVE_NEON_V2DI_LDST): Likewise.
3234 (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
3235 (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
3236 (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
3237 (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
3238 (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
3239 (ARM_HAVE_V2DI_LDST): Likewise.
3240 * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
3241 (*movmisalign<mode>_mve_load): New pattern.
3242 * config/arm/neon.md (movmisalign<mode>): Move to ...
3243 * config/arm/vec-common.md: ... here.
3245 2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
3248 * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
3249 of pattern 'plus (plus (hard reg, const), pseudo)'.
3251 2021-01-12 Richard Biener <rguenther@suse.de>
3253 PR tree-optimization/98550
3254 * tree-vect-slp.c (vect_record_max_nunits): Check whether
3255 the group size is a multiple of the vector element count.
3256 (vect_build_slp_tree_1): When we need to fail because
3257 the vector type choosen causes unrolling do so lazily
3258 without affecting matches only at the end to guide group splitting.
3260 2021-01-12 Martin Liska <mliska@suse.cz>
3263 * optc-save-gen.awk: Compare also n_target_save vars with
3266 2021-01-12 Martin Liska <mliska@suse.cz>
3268 * gcov.c (source_info::debug): New.
3269 (print_usage): Add --debug (-D) option.
3270 (process_args): Likewise.
3271 (generate_results): Call src->debug after
3272 accumulate_line_counts.
3273 (read_graph_file): Properly assign id for EXIT_BLOCK.
3274 * profile.c (branch_prob): Dump function body before it is
3277 2021-01-12 Jakub Jelinek <jakub@redhat.com>
3279 PR tree-optimization/98629
3280 * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
3281 unless returning non-zero.
3283 2021-01-12 Jakub Jelinek <jakub@redhat.com>
3285 PR tree-optimization/95731
3286 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
3287 x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
3288 (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
3289 only after optimize_range_tests_var_bound.
3291 2021-01-12 Jakub Jelinek <jakub@redhat.com>
3293 * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
3294 * configure: Regenerated.
3296 2021-01-12 liuhongt <hongtao.liu@intel.com>
3299 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
3301 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
3304 2021-01-12 Alexandre Oliva <oliva@adacore.com>
3306 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
3308 (auto_end_imm_use_stmt_traverse): New struct.
3309 (FOR_EACH_IMM_USE_STMT): Use it.
3310 (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
3312 * gimple-ssa-strength-reduction.c: ... here, ...
3313 * graphite-scop-detection.c: ... here, ...
3314 * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
3315 * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
3316 * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
3317 * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
3318 * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
3319 * tree-vect-slp.c: ... and here, ...
3320 * doc/tree-ssa.texi: ... and the example here.
3322 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3324 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
3325 SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X.
3326 (*sdiv_pow2<mode>3): New pattern.
3327 (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
3328 Wrap the ASRD in an UNSPEC_PRED_X.
3329 (*cond_<sve_int_op><mode>_2): Likewise. Replace the UNSPEC_PRED_X
3330 predicate with a constant PTRUE, if it isn't already.
3331 (*cond_<sve_int_op><mode>_z): Replace with...
3332 (*cond_<sve_int_op><mode>_any): ...this new pattern.
3334 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3336 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
3337 SVE_FULL_I to SVE_I.
3338 (*cond_bic<mode>_any): Likewise.
3340 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3342 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
3343 (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
3346 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3348 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
3349 SVE_FULL_I to SVE_I.
3350 (*aarch64_cond_<su>abd<mode>_2): Likewise.
3351 (*aarch64_cond_<su>abd<mode>_any): Likewise.
3352 (@aarch64_pred_<su>abd<mode>): Likewise. Use UNSPEC_PRED_X
3353 for the max and min but not for the minus.
3354 (*aarch64_cond_<su>abd<mode>_3): New pattern.
3356 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3358 * config/aarch64/iterators.md (SVE_24I): New iterator.
3359 * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
3360 SVE_FULL_SDI to SVE_24I. Use containers rather than elements.
3362 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3364 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
3365 (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
3367 (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
3368 (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
3369 (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
3370 (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
3372 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3374 * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
3375 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
3376 (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
3379 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3381 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
3382 (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
3383 (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
3385 2021-01-11 Martin Liska <mliska@suse.cz>
3388 * symtab-clones.h (clone_info::release): Release
3389 symtab::m_clones with ggc_delete as it's a GGC memory.
3391 2021-01-11 Matthias Klose <doko@ubuntu.com>
3393 * Makefile.in (LINK_PROGRESS): Show the link target.
3395 2021-01-11 Richard Biener <rguenther@suse.de>
3397 PR tree-optimization/91403
3398 * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
3399 single-element interleaving group size at 4096 elements.
3401 2021-01-11 Richard Biener <rguenther@suse.de>
3403 PR tree-optimization/98526
3404 * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
3405 of the actual reduction op for the regular case.
3406 (vectorizable_reduction): Cost the stmts
3407 vect_transform_reduction produces here.
3409 2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
3411 * tree-ssa-forwprop.c (simplify_vector_constructor): For
3412 big-endian, use UNPACK[_FLOAT]_HI.
3414 2021-01-11 Tamar Christina <tamar.christina@arm.com>
3416 * tree-vect-slp-patterns.c (class complex_pattern,
3417 class complex_add_pattern): Add parameters to matches.
3418 (complex_add_pattern::build): Free memory.
3419 (complex_add_pattern::matches): Move validation end of match.
3420 (complex_add_pattern::recognize): Likewise.
3422 2021-01-11 Tamar Christina <tamar.christina@arm.com>
3424 * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
3426 2021-01-11 Tamar Christina <tamar.christina@arm.com>
3428 * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
3430 2021-01-11 Jakub Jelinek <jakub@redhat.com>
3432 PR tree-optimization/95867
3433 * tree-ssa-math-opts.h: New header.
3434 * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
3435 (powi_as_mults): No longer static. Use build_one_cst instead of
3436 build_real. Formatting fix.
3437 * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
3438 (attempt_builtin_powi): Handle multiplication reassociation without
3439 powi_fndecl using powi_as_mults.
3440 (reassociate_bb): For integral types don't require
3441 -funsafe-math-optimizations to call attempt_builtin_powi.
3443 2021-01-11 Jakub Jelinek <jakub@redhat.com>
3445 PR tree-optimization/95852
3446 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
3447 mul_stmts parameter type to vec<gimple *> &. Before cond_stmt
3448 allow in the bb any of the stmts in that vector, div_stmt and
3450 (arith_cast_equal_p): New function.
3451 (arith_overflow_check_p): Add cast_stmt argument, handle signed
3452 multiply overflow checks.
3453 (match_arith_overflow): Adjust caller. Handle signed multiply
3456 2021-01-11 Jakub Jelinek <jakub@redhat.com>
3458 PR tree-optimization/95852
3459 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
3460 (uaddsub_overflow_check_p): Renamed to ...
3461 (arith_overflow_check_p): ... this. Handle also multiplication
3462 with overflow check.
3463 (match_uaddsub_overflow): Renamed to ...
3464 (match_arith_overflow): ... this. Add cfg_changed argument. Handle
3465 also multiplication with overflow check. Adjust function comment.
3466 (math_opts_dom_walker::after_dom_children): Adjust callers. Call
3467 match_arith_overflow also for MULT_EXPR.
3469 2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3471 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
3472 __builtin_convertvector.
3473 (vmovl_s16): Likewise.
3474 (vmovl_s32): Likewise.
3475 (vmovl_u8): Likewise.
3476 (vmovl_u16): Likewise.
3477 (vmovl_u32): Likewise.
3478 (vmovn_s16): Likewise.
3479 (vmovn_s32): Likewise.
3480 (vmovn_s64): Likewise.
3481 (vmovn_u16): Likewise.
3482 (vmovn_u32): Likewise.
3483 (vmovn_u64): Likewise.
3485 2021-01-11 Martin Liska <mliska@suse.cz>
3487 * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
3488 (if_chain::is_beneficial): Delete clusters
3489 (find_conditions): Make second argument of conditions_in_bbs a
3490 pointer so that we control over it's lifetime.
3491 (pass_if_to_switch::execute): Delete them.
3493 2021-01-11 Kewen Lin <linkw@linux.ibm.com>
3495 * ira.c (move_unallocated_pseudos): Check other_reg and skip if
3498 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
3500 * config/vax/vax.md (cc): Remove mode attribute.
3501 (subst_<cc>, subst_f<cc>): Rename to...
3502 (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
3503 (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
3504 (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
3505 (*branch_<mode>, *branch_<mode>_reversed): Likewise.
3507 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
3509 * config/vax/vax.md (subst_f<cc>): Add mode to operands and
3510 `const_double_zero'.
3512 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
3514 * config/pdp11/pdp11.md (PDPfp): New mode iterator.
3515 (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and
3518 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
3520 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
3522 * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
3523 with `const_double_zero'.
3524 * doc/rtl.texi (Constant Expression Types): Document it.
3526 2021-01-09 Jakub Jelinek <jakub@redhat.com>
3529 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
3530 POINTER_DIFF_EXPR to be any integral type.
3532 2021-01-09 Jakub Jelinek <jakub@redhat.com>
3534 PR rtl-optimization/98603
3535 * function.c (instantiate_virtual_regs_in_insn): For asm goto
3536 with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
3537 if any, set ASM_OPERANDS mode to VOIDmode and change
3538 ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
3540 2021-01-09 Alexandre Oliva <oliva@gnu.org>
3543 * final.c (notice_source_line): Narrow down the condition to
3544 skip a line-0 marker.
3546 2021-01-08 Sergei Trofimovich <siarheit@google.com>
3548 * ipa-modref.c (merge_call_side_effects): Fix
3549 linebreak split by reordering two print calls.
3551 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
3553 * config/s390/vector.md (*tf_to_fprx2_0): Rename from
3554 "*mov_tf_to_fprx2_0" for consistency, fix constraint.
3555 (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
3556 consistency, fix constraint.
3558 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
3560 * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
3561 callables instead of mask values.
3562 (struct target_flag_set_p): New predicate.
3563 (s390_cpu_cpp_builtins_internal): Define or undefine
3564 __LONG_DOUBLE_VX__ macro.
3566 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
3569 * config/i386/i386.c (x86_function_profiler): Use R10 and R11
3570 to call mcount in large model with PIC for NO_PROFILE_COUNTERS
3573 2021-01-08 Richard Biener <rguenther@suse.de>
3575 * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
3577 2021-01-08 Richard Biener <rguenther@suse.de>
3579 * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
3580 (vect_build_slp_tree): On cache hit release the matched
3581 scalar stmts vector.
3582 * tree-vect-stmts.c (vectorizable_store): Properly free
3583 vec_oprnds before possibly gathering them again.
3585 2021-01-08 Richard Biener <rguenther@suse.de>
3587 PR tree-optimization/98544
3588 * tree-vect-slp.c (vect_optimize_slp): Always materialize
3589 permutes at a permute node.
3591 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
3594 * config/i386/i386.c (x86_function_profiler): Use R10 to call
3595 mcount in large model. Sorry for large model with PIC.
3597 2021-01-08 Jakub Jelinek <jakub@redhat.com>
3600 * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
3601 ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
3602 ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
3603 TargetSave and initialize for variables with enum types.
3604 (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
3605 mstack-protector-guard-symbol=): Add Save.
3606 * config/i386/i386-options.c (ix86_function_specific_save,
3607 ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
3608 x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
3609 x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
3610 x_ix86_veclibabi_type.
3612 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
3614 * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
3615 SVE_FULL_I to SVE_I.
3616 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
3618 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
3620 * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
3621 SVE_FULL_I to SVE_I.
3622 (*cond_uxt<mode>_any): Likewise.
3624 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3626 * config/aarch64/iterators.md (Vwhalf): New iterator.
3627 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
3629 (aarch64_<sur>adalp<mode>): ... This. Make more
3631 (<sur>sadv16qi): Adjust callsite of the above.
3632 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
3634 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
3636 (vpadal_s16): Likewise.
3637 (vpadal_u8): Likewise.
3638 (vpadal_u16): Likewise.
3639 (vpadalq_s8): Likewise.
3640 (vpadalq_s16): Likewise.
3641 (vpadalq_s32): Likewise.
3642 (vpadalq_u8): Likewise.
3643 (vpadalq_u16): Likewise.
3644 (vpadalq_u32): Likewise.
3646 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3648 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
3650 (aarch64_<su>abd<mode>): ... This.
3651 (<sur>sadv16qi): Adjust callsite of the above.
3652 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
3654 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
3656 (vabd_s16): Likewise.
3657 (vabd_s32): Likewise.
3658 (vabd_u8): Likewise.
3659 (vabd_u16): Likewise.
3660 (vabd_u32): Likewise.
3661 (vabdq_s8): Likewise.
3662 (vabdq_s16): Likewise.
3663 (vabdq_s32): Likewise.
3664 (vabdq_u8): Likewise.
3665 (vabdq_u16): Likewise.
3666 (vabdq_u32): Likewise.
3668 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3670 * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
3672 * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
3673 (vaba_s16): Likewise.
3674 (vaba_s32): Likewise.
3675 (vaba_u8): Likewise.
3676 (vaba_u16): Likewise.
3677 (vaba_u32): Likewise.
3678 (vabaq_s8): Likewise.
3679 (vabaq_s16): Likewise.
3680 (vabaq_s32): Likewise.
3681 (vabaq_u8): Likewise.
3682 (vabaq_u16): Likewise.
3683 (vabaq_u32): Likewise.
3685 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3687 * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
3688 (aarch64_<su>aba<mode>): ... This. Handle uaba as well.
3689 Change RTL pattern to match.
3691 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
3693 * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
3694 * config/riscv/riscv-c.c (riscv-subset.h): New.
3695 (INCLUDE_STRING): Define.
3696 (riscv_cpu_cpp_builtins): Add new style architecture extension
3698 * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
3699 (riscv_subset_list::end): New.
3700 (riscv_current_subset_list): New.
3702 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
3704 * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
3705 Move to riscv-subset.h.
3706 (struct riscv_subset_t): Ditto.
3707 (class riscv_subset_list): Ditto.
3708 * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
3709 from riscv-common.c.
3710 (struct riscv_subset_t): Ditto.
3711 (class riscv_subset_list): Ditto.
3712 * config/riscv/t-riscv ($(common_out_file)): Add file
3715 2021-01-07 Jakub Jelinek <jakub@redhat.com>
3718 * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
3719 New define_insn patterns.
3721 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
3723 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
3724 (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
3725 (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
3727 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
3729 PR tree-optimization/98560
3730 * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
3731 * internal-fn.c (vec_cond_mask_direct): Get the data mode from
3733 (vec_cond_direct): Likewise argument 2.
3734 (vec_condu_direct, vec_condeq_direct): Delete.
3735 (expand_vect_cond_optab_fn): Rename to...
3736 (expand_vec_cond_optab_fn): ...this, replacing old macro.
3737 (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
3738 (expand_vect_cond_mask_optab_fn): Rename to...
3739 (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
3740 (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
3742 (direct_vec_cond_optab_supported_p): Likewise.
3743 (direct_vec_condu_optab_supported_p): Delete.
3744 (direct_vec_condeq_optab_supported_p): Delete.
3745 * gimple-isel.cc: Include internal-fn.h.
3746 (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
3749 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
3751 PR tree-optimization/98560
3752 * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
3753 IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
3755 2021-01-07 Uroš Bizjak <ubizjak@gmail.com>
3757 * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
3758 rotate_insn and optab code attributes.
3759 Update all uses to merged code attribute.
3760 * config/i386/sse.md: Update all uses to merged code attribute.
3761 * config/i386/mmx.md: Update all uses to merged code attribute.
3763 2021-01-07 Jakub Jelinek <jakub@redhat.com>
3765 PR tree-optimization/98568
3766 * gimple-ssa-store-merging.c (bswap_view_convert): New function.
3767 (bswap_replace): Use it.
3769 2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com>
3771 PR rtl-optimization/97978
3772 * lra-int.h (lra_hard_reg_split_p): New external.
3773 * lra.c (lra_hard_reg_split_p): New global.
3774 (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
3775 * lra-assigns.c (lra_assign): Don't check allocation correctness
3776 after hard reg splitting.
3778 2021-01-06 Martin Sebor <msebor@redhat.com>
3781 * builtins.c (new_delete_mismatch_p): New overload.
3782 (new_delete_mismatch_p (tree, tree)): Call it.
3784 2021-01-06 Alexandre Oliva <oliva@adacore.com>
3786 * Makefile.in (T_GLIMITS_H): New.
3787 (stmp-int-hdrs): Depend on it, use it.
3788 * config/t-vxworks (T_GLIMITS_H): Override it.
3789 (vxw-glimits.h): New.
3791 2021-01-06 Richard Biener <rguenther@suse.de>
3793 PR tree-optimization/98513
3794 * value-range.cc (intersect_ranges): Compare the upper bounds
3795 for the expected relation.
3797 2021-01-06 Gerald Pfeifer <gerald@pfeifer.com>
3800 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com>
3802 * doc/standards.texi (HSAIL): Remove section.
3804 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
3806 * configure: Re-generate.
3808 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3810 * doc/invoke.texi (-std=c++20): Adjust for the publication of
3811 ISO 14882:2020 standard.
3812 * doc/standards.texi: Likewise.
3814 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3816 PR tree-optimization/94802
3817 * expr.h (maybe_optimize_sub_cmp_0): Declare.
3818 * expr.c: Include tree-pretty-print.h and flags.h.
3819 (maybe_optimize_sub_cmp_0): New function.
3820 (do_store_flag): Use it.
3821 * cfgexpand.c (expand_gimple_cond): Likewise.
3823 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
3825 * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
3826 * rtlanal.c (simple_regno_set): Tweak description to clarify the
3829 2021-01-05 Richard Biener <rguenther@suse.de>
3831 PR tree-optimization/98516
3832 * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
3833 lanes when materializing on a VEC_PERM node.
3834 (vectorizable_slp_permutation): Dump the permute properly.
3836 2021-01-05 Richard Biener <rguenther@suse.de>
3838 * tree-vect-slp.c (vect_slp_region): Move debug counter
3839 to cover individual subgraphs.
3841 2021-01-05 Richard Biener <rguenther@suse.de>
3843 PR tree-optimization/98428
3844 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
3845 vector lane extracts for loop vectorization.
3847 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3849 PR tree-optimization/98514
3850 * tree-ssa-reassoc.c (bb_rank): Change type from long * to
3852 (operand_rank): Change type from hash_map<tree, long> to
3853 hash_map<tree, int64_t>.
3854 (phi_rank): Change return type from long to int64_t.
3855 (loop_carried_phi): Change block_rank variable type from long to
3857 (propagate_rank): Change return type, rank parameter type and
3858 op_rank variable type from long to int64_t.
3859 (find_operand_rank): Change return type from long to int64_t
3860 and change slot variable type from long * to int64_t *.
3861 (insert_operand_rank): Change rank parameter type from long to
3863 (get_rank): Change return type and rank variable type from long to
3864 int64_t. Use PRId64 instead of ld to print the rank.
3865 (init_reassoc): Change rank variable type from long to int64_t
3866 and adjust correspondingly bb_rank and operand_rank initialization.
3868 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3870 PR tree-optimization/96928
3871 * tree-ssa-phiopt.c (xor_replacement): New function.
3872 (tree_ssa_phiopt_worker): Call it.
3874 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3876 PR tree-optimization/96930
3877 * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
3878 from narrower value which has the same type as 1 << B, perform
3879 the right shift on the narrower value followed by extension.
3881 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3883 PR tree-optimization/96239
3884 * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
3886 (get_status_for_store_merging): Don't return BB_INVALID for blocks
3887 with potential bswap optimizable CONSTRUCTORs.
3888 (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
3891 2021-01-05 Richard Biener <rguenther@suse.de>
3893 PR tree-optimization/98381
3894 * tree.c (vector_element_bits): Properly compute bool vector
3896 * tree-vect-loop.c (vectorizable_live_operation): Properly
3897 compute the last lane bit offset.
3899 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
3902 * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
3903 Clear the top 64 bytes of the input XMM register.
3904 (sse_cvttps2pi): Ditto.
3906 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
3909 * config/i386/xopintrin.h (_mm256_cmov_si256): New.
3911 2021-01-05 H.J. Lu <hjl.tools@gmail.com>
3914 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
3917 2021-01-05 Claudiu Zissulescu <claziss@synopsys.com>
3919 * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
3920 (umaddsidi4_split): Likewise.
3922 2021-01-05 liuhongt <hongtao.liu@intel.com>
3925 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
3926 define_insn_and_split for zero_extend of subreg HI of pmovskb
3928 (*sse2_pmovskb_zexthisi): Add new combine splitters for
3929 zero_extend of not of subreg HI of pmovskb result.
3931 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
3934 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
3936 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
3937 convert_memory_address to convert symbolic immediates to ptr_mode
3938 before forcing them to memory.
3940 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
3942 PR rtl-optimization/97144
3943 * recog.c (constrain_operands): Initialize matching_operand
3944 for each alternative, rather than only doing it once.
3946 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
3948 PR rtl-optimization/98403
3949 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
3950 why we don't remove call clobbers.
3951 (function_info::apply_changes_to_insn): Don't attempt to add
3954 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
3956 PR tree-optimization/98371
3957 * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
3958 (vect_analyze_loop): If an epilogue loop appears to be cheaper
3959 than the main loop, re-analyze it as a main loop before adopting
3962 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3965 * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
3966 * aclocal.m4, configure: Regenerate.
3967 * Makefile.in (NETLIBS): Define.
3968 (BACKEND): Remove $(CODYLIB).
3970 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3972 PR rtl-optimization/98334
3973 * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
3974 Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
3976 2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
3978 * tree-inline.c (expand_call_inline): Restore input_location.
3979 Return result from recursive call.
3981 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
3983 PR tree-optimization/95401
3984 * config/aarch64/aarch64-sve-builtins.cc
3985 (gimple_folder::load_store_cookie): Use bits rather than bytes
3986 for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
3987 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
3988 * tree-vect-stmts.c (vectorizable_store): Likewise.
3989 (vectorizable_load): Likewise.
3991 2021-01-04 Richard Biener <rguenther@suse.de>
3993 PR tree-optimization/98308
3994 * tree-vect-stmts.c (vectorizable_load): Set invariant mask
3997 2021-01-04 Jakub Jelinek <jakub@redhat.com>
3999 PR tree-optimization/95771
4000 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
4001 with precision smaller than int's precision and types with precision
4002 twice as large as long long. Formatting fixes.
4004 2021-01-04 Richard Biener <rguenther@suse.de>
4006 PR tree-optimization/98464
4007 * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
4008 (vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb.
4009 (process_bb): Adjust.
4011 2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com>
4014 * doc/invoke.texi (-fsanitize=address): Fix wording describing
4015 clash with -fsanitize=hwaddress.
4017 2021-01-04 Richard Biener <rguenther@suse.de>
4019 PR tree-optimization/98282
4020 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
4021 invariants as VN_NARY.
4023 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
4026 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
4027 aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns
4028 to handle zero operands.
4030 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
4032 * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
4033 (offset_6bit_unsigned_scaled_p): Fix typo in comment.
4034 (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
4037 2021-01-04 Richard Biener <rguenther@suse.de>
4039 PR tree-optimization/98393
4040 * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
4041 when hitting the limit.
4043 2021-01-04 Richard Biener <rguenther@suse.de>
4045 PR tree-optimization/98291
4046 * tree-vect-loop.c (vectorizable_reduction): Bypass
4047 associativity check for SLP reductions with VF 1.
4049 2021-01-04 Jakub Jelinek <jakub@redhat.com>
4051 PR tree-optimization/96782
4052 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
4054 2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
4056 * collect-utils.c (collect_execute): Check dumppfx.
4057 * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
4059 (do_link): Add new parameter atsuffix.
4060 (main): Handle -dumpdir option. Skip one argument for
4061 -o, -isystem and -B options.
4062 * gcc.c (make_at_file): New helper function.
4063 (close_at_file): Use it.
4065 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4067 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
4068 Amend handling for LD64_VERSION fallback defaults.
4070 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4072 * config.gcc: Compute default version information
4073 from the configured target. Likewise defaults for
4075 * config/darwin10.h: Removed.
4076 * config/darwin12.h: Removed.
4077 * config/darwin9.h: Removed.
4078 * config/rs6000/darwin8.h: Removed.
4080 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4082 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
4084 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4086 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
4087 * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
4089 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4091 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
4093 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
4095 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4097 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
4098 for the Darwin10 unwinder stub from here ...
4099 * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
4101 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4103 * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
4104 (ASM_DEBUG_SPEC):Only define if the assembler supports
4106 (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
4107 (DARWIN_PREFER_DWARF): Define.
4108 * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
4109 (DARWIN_PREFER_DWARF): Likewise
4110 (DSYMUTIL_SPEC): Likewise.
4111 (COLLECT_RUN_DSYMUTIL): Likewise.
4112 (ASM_DEBUG_SPEC): Likewise.
4113 (ASM_DEBUG_OPTION_SPEC): Likewise.
4115 2021-01-02 Jan Hubicka <jh@suse.cz>
4117 * cfg.c (free_block): ggc_free bb.
4119 2021-01-01 Jakub Jelinek <jakub@redhat.com>
4121 * gcc.c (process_command): Update copyright notice dates.
4122 * gcov-dump.c (print_version): Ditto.
4123 * gcov.c (print_version): Ditto.
4124 * gcov-tool.c (print_version): Ditto.
4125 * gengtype.c (create_file): Ditto.
4126 * doc/cpp.texi: Bump @copying's copyright year.
4127 * doc/cppinternals.texi: Ditto.
4128 * doc/gcc.texi: Ditto.
4129 * doc/gccint.texi: Ditto.
4130 * doc/gcov.texi: Ditto.
4131 * doc/install.texi: Ditto.
4132 * doc/invoke.texi: Ditto.
4134 2021-01-01 Jakub Jelinek <jakub@redhat.com>
4136 * ChangeLog-2020: Rotate ChangeLog. New file.
4139 Copyright (C) 2021 Free Software Foundation, Inc.
4141 Copying and distribution of this file, with or without modification,
4142 are permitted in any medium without royalty provided the copyright
4143 notice and this notice are preserved.