1 2021-04-20 H.J. Lu <hjl.tools@gmail.com>
3 * config/i386/i386-c.c (ix86_target_macros_internal): Define
5 * config/i386/i386-options.c (ix86_option_override_internal):
6 Enable crc32 instruction for -msse4.2.
7 * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
9 (sse4_2_crc32di): Likewise.
10 * config/i386/ia32intrin.h: Use crc32 target option for CRC32
13 2021-04-20 Segher Boessenkool <segher@kernel.crashing.org>
16 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
19 2021-04-20 Martin Liska <mliska@suse.cz>
21 * doc/invoke.texi: Fix typo.
22 * params.opt: Likewise.
24 2021-04-20 Martin Liska <mliska@suse.cz>
26 * doc/invoke.texi: Document new param.
28 2021-04-19 Andrew MacLeod <amacleod@redhat.com>
30 PR tree-optimization/100081
31 * gimple-range-cache.h (ranger_cache): Inherit from gori_compute
32 rather than gori_compute_cache.
33 * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
34 (range_def_chain::m_logical_depth): New member.
35 (range_def_chain::range_def_chain): Initialize m_logical_depth.
36 (range_def_chain::get_def_chain): Don't build defchains through more
37 than LOGICAL_LIMIT logical expressions.
38 * params.opt (param_ranger_logical_depth): New.
40 2021-04-19 Richard Earnshaw <rearnsha@arm.com>
43 * config/arm/arm.c (arm_configure_build_target): Do not strip
44 extended FPU/SIMD feature bits from the target ISA when -mfpu
45 is specified (partial revert of r11-8168).
47 2021-04-19 Thomas Schwinge <thomas@codesourcery.com>
49 * params.opt (-param=openacc-kernels=): Add.
50 * omp-oacc-kernels-decompose.cc
51 (pass_omp_oacc_kernels_decompose::gate): Use it.
52 * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
53 (--param): ... here, 'openacc-kernels'.
55 2021-04-19 Martin Liska <mliska@suse.cz>
58 * gengtype.c (finish_root_table): Align function arguments
59 in between declaration and definition.
61 2021-04-19 Eric Botcazou <ebotcazou@adacore.com>
63 * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
64 frames larger than the SEH maximum frame size.
66 2021-04-18 Segher Boessenkool <segher@kernel.crashing.org>
68 PR rtl-optimization/99927
69 * combine.c (distribute_notes) [REG_UNUSED]: If the register already
70 is dead, just drop it.
72 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
75 * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
76 * doc/tm.texi: Regenerate.
77 * doc/tm.texi.in (D language and ABI): Add @hook for
78 TARGET_D_TEMPLATES_ALWAYS_COMDAT.
80 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
82 * config/darwin-d.c (darwin_d_handle_target_object_format): New
84 (darwin_d_register_target_info): New function.
85 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
86 * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
88 (dragonfly_d_register_target_info): New function.
89 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
90 * config/freebsd-d.c (freebsd_d_handle_target_object_format): New
92 (freebsd_d_register_target_info): New function.
93 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
94 * config/glibc-d.c (glibc_d_handle_target_object_format): New
96 (glibc_d_register_target_info): New function.
97 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
98 * config/i386/i386-d.c (ix86_d_handle_target_object_format): New
100 (ix86_d_register_target_info): Add ix86_d_handle_target_object_format
101 as handler for objectFormat key.
102 * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
104 (winnt_d_register_target_info): New function.
105 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
106 * config/netbsd-d.c (netbsd_d_handle_target_object_format): New
108 (netbsd_d_register_target_info): New function.
109 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
110 * config/openbsd-d.c (openbsd_d_handle_target_object_format): New
112 (openbsd_d_register_target_info): New function.
113 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
114 * config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
115 (pa_d_register_target_info): Add pa_d_handle_target_object_format as
116 handler for objectFormat key.
117 * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
119 (rs6000_d_register_target_info): Add
120 rs6000_d_handle_target_object_format as handler for objectFormat key.
121 * config/sol2-d.c (solaris_d_handle_target_object_format): New
123 (solaris_d_register_target_info): New function.
124 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
126 2021-04-16 Jakub Jelinek <jakub@redhat.com>
129 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
130 abi_break argument from bool * to unsigned *, store there the pre-GCC 9
132 (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
133 (aarch64_function_arg_regno_p): Likewise. Only emit -Wpsabi note if
134 the old and new alignment after applying MIN/MAX to it is different.
136 2021-04-16 Tamar Christina <tamar.christina@arm.com>
139 * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
140 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
142 * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
144 2021-04-16 Bill Schmidt <wschmidt@linux.ibm.com>
146 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
147 this section and its subsections.
149 2021-04-16 Jakub Jelinek <jakub@redhat.com>
152 * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
153 define_insn patterns.
155 2021-04-16 Richard Sandiford <richard.sandiford@arm.com>
157 PR rtl-optimization/98689
158 * reg-notes.def (UNTYPED_CALL): New note.
159 * combine.c (distribute_notes): Handle it.
160 * emit-rtl.c (try_split): Likewise.
161 * rtlanal.c (rtx_properties::try_to_add_insn): Likewise. Assume
162 that calls with the note implicitly set all return value registers.
163 * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
166 2021-04-16 Richard Sandiford <richard.sandiford@arm.com>
168 PR rtl-optimization/99596
169 * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
170 register accesses for const calls. Assume that pure functions
171 can only read from global registers. Ignore cases in which
172 the stack pointer has been marked global.
174 2021-04-16 Jakub Jelinek <jakub@redhat.com>
177 * tree-vect-loop.c (vect_transform_loop): Don't remove just
178 dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
179 them by their last argument.
181 2021-04-15 Martin Liska <mliska@suse.cz>
183 * doc/invoke.texi: Other params don't use it, remove it.
185 2021-04-15 Richard Biener <rguenther@suse.de>
187 * gimple-builder.h: Add deprecation note.
189 2021-04-15 Richard Sandiford <richard.sandiford@arm.com>
192 * attribs.h (restrict_type_identity_attributes_to): Declare.
193 * attribs.c (restrict_type_identity_attributes_to): New function.
195 2021-04-15 Richard Sandiford <richard.sandiford@arm.com>
198 * attribs.h (affects_type_identity_attributes): Declare.
199 * attribs.c (remove_attributes_matching): New function.
200 (affects_type_identity_attributes): Likewise.
202 2021-04-15 Jakub Jelinek <jakub@redhat.com>
205 * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
206 Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
207 ZERO_EXTEND, SIGN_EXTEND or AND.
209 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
211 PR rtl-optimization/99929
212 * rtl.h (same_vector_encodings_p): New function.
213 * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
214 * cselib.c (rtx_equal_for_cselib_1): Likewise.
215 * jump.c (rtx_renumbered_equal_p): Likewise.
216 * lra-constraints.c (operands_match_p): Likewise.
217 * reload.c (operands_match_p): Likewise.
218 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
220 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
222 * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
223 more information about variable-length CONST_VECTORs.
225 2021-04-14 Vladimir N. Makarov <vmakarov@redhat.com>
227 PR rtl-optimization/100066
228 * lra-constraints.c (split_reg): Check paradoxical_subreg_p for
229 ordered modes when choosing splitting mode for hard reg.
231 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
234 * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
236 (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
238 2021-04-14 Andreas Krebbel <krebbel@linux.ibm.com>
240 * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
241 for mask operand types.
242 (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
243 (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
245 (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
247 * config/s390/s390.c (s390_const_operand_ok): Check the new
248 operand types and generate a list of valid values.
250 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
252 * doc/tm.texi: Regenerate.
253 * doc/tm.texi.in (D language and ABI): Add @hook for
254 TARGET_D_REGISTER_OS_TARGET_INFO.
256 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
258 * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
260 (aarch64_d_register_target_info): New function.
261 * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
263 * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
265 * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
266 (arm_d_register_target_info): New function.
267 * config/arm/arm-protos.h (arm_d_register_target_info): Declare.
268 * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
269 * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
270 (ix86_d_register_target_info): New function.
271 * config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
272 * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
273 * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
274 (mips_d_register_target_info): New function.
275 * config/mips/mips-protos.h (mips_d_register_target_info): Declare.
276 * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
277 * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
278 (pa_d_register_target_info): New function.
279 * config/pa/pa-protos.h (pa_d_register_target_info): Declare.
280 * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
281 * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
283 (riscv_d_register_target_info): New function.
284 * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
285 * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
286 * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
288 (rs6000_d_register_target_info): New function.
289 * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
291 * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
292 * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
293 (s390_d_register_target_info): New function.
294 * config/s390/s390-protos.h (s390_d_register_target_info): Declare.
295 * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
296 * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
298 (sparc_d_register_target_info): New function.
299 * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
300 * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
301 * doc/tm.texi: Regenerate.
302 * doc/tm.texi.in (D language and ABI): Add @hook for
303 TARGET_D_REGISTER_CPU_TARGET_INFO.
305 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
307 * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
308 * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
309 * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
310 * doc/tm.texi: Regenerate.
311 * doc/tm.texi.in (D language and ABI): Add @hook for
312 TARGET_D_HAS_STDCALL_CONVENTION.
314 2021-04-14 Richard Biener <rguenther@suse.de>
316 * tree-cfg.c (verify_gimple_assign_ternary): Verify that
317 VEC_COND_EXPRs have a gimple_val condition.
318 * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
319 can no longer have a GENERIC condition.
321 2021-04-14 Richard Earnshaw <rearnsha@arm.com>
324 * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
325 from the isa_delta when -mfpu has been used.
326 (arm_options_perform_arch_sanity_checks): It's the architecture that
327 lacks an FPU not the processor.
329 2021-04-13 Richard Biener <rguenther@suse.de>
331 PR tree-optimization/100053
332 * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
333 not use optimistic dominance queries for backedges to validate
335 (dominated_by_p_w_unex): Add parameter to ignore executable
337 (rpo_elim::eliminate_avail): Adjust.
339 2021-04-13 Jakub Jelinek <jakub@redhat.com>
342 * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
343 *aarch64_bfxilsi_extrdi): New define_insn patterns.
345 2021-04-13 Jakub Jelinek <jakub@redhat.com>
348 * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
349 outermode, return NULL if the result doesn't encode back to the
350 original byte sequence.
351 (simplify_gen_subreg): Don't create SUBREGs from constants to
352 MODE_COMPOSITE_P outermode.
354 2021-04-12 Jakub Jelinek <jakub@redhat.com>
356 PR rtl-optimization/99905
357 * combine.c (expand_compound_operation): If pos + len > modewidth,
358 perform the right shift by pos in inner_mode and then convert to mode,
359 instead of trying to simplify a shift of rtx with inner_mode by pos
360 as if it was a shift in mode.
362 2021-04-12 Jakub Jelinek <jakub@redhat.com>
365 * combine.c (simplify_and_const_int_1): Don't optimize varop
366 away if it has side-effects.
368 2021-04-12 Martin Liska <mliska@suse.cz>
370 * doc/extend.texi: Escape @smallexample content.
372 2021-04-12 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
374 * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
375 alternative in order to load a DFP zero.
377 2021-04-12 Martin Liska <mliska@suse.cz>
379 * doc/extend.texi: Be more precise in documentation
382 2021-04-12 Martin Liska <mliska@suse.cz>
385 * gimplify.c (gimplify_expr): Right now, we unpoison all
386 variables before a goto <dest>. We should not do it if we are
389 2021-04-12 Cui,Lili <lili.cui@intel.com>
391 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
393 * common/config/i386/i386-common.c (processor_names): Add
395 (processor_alias_table): Add rocketlake.
396 * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
397 INTEL_COREI7_ROCKETLAKE.
398 * config.gcc: Add -march=rocketlake.
399 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
401 * config/i386/i386-options.c (m_ROCKETLAKE) : Define.
402 (processor_cost_table): Add rocketlake cost.
403 * config/i386/i386.h (ix86_size_cost) : Define
405 (processor_type) : Add PROCESSOR_ROCKETLAKE.
406 (PTA_ROCKETLAKE): Ditto.
407 * doc/extend.texi: Add rocketlake.
408 * doc/invoke.texi: Add rocketlake.
410 2021-04-12 Cui,Lili <lili.cui@intel.com>
412 * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
413 * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
414 * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
415 * doc/invoke.texi: Change alderlake ISA list.
417 2021-04-11 Hafiz Abid Qadeer <abidh@codesourcery.com>
420 * omp-expand.c (expand_oacc_collapse_init): Update condition in
423 2021-04-10 H.J. Lu <hjl.tools@gmail.com>
426 * config/i386/serializeintrin.h (_serialize): Defined as macro.
428 2021-04-10 Jakub Jelinek <jakub@redhat.com>
431 * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
432 just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
434 2021-04-10 Jakub Jelinek <jakub@redhat.com>
437 * gimple-ssa-warn-alloca.c
438 (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
439 0 with integer precision unconditionally.
441 2021-04-10 Jakub Jelinek <jakub@redhat.com>
443 PR rtl-optimization/98601
444 * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
445 not just for BLKmode, but also for VOIDmode. For STRICT_ALIGNMENT
446 unaligned_mems handle VOIDmode like BLKmode.
448 2021-04-10 Jan Hubicka <hubicka@ucw.cz>
451 * tree.c (free_lang_data_in_decl): Do not release body of
454 2021-04-09 Richard Sandiford <richard.sandiford@arm.com>
456 * config/aarch64/aarch64.c (aarch64_option_restore): If the
457 architecture was specified explicitly and the tuning wasn't,
458 tune for the architecture rather than the configured default CPU.
460 2021-04-09 Richard Sandiford <richard.sandiford@arm.com>
462 * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
463 as the temporary register.
465 2021-04-09 Martin Liska <mliska@suse.cz>
467 * doc/extend.texi: Move non-target attributes on the top level.
469 2021-04-09 Martin Liska <mliska@suse.cz>
471 * doc/invoke.texi: Document minimum and maximum value of the
472 argument for both supported compression algorithms.
474 2021-04-08 David Edelsohn <dje.gcc@gmail.com>
476 * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
477 TLS BSS before TLS data.
478 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.
480 2021-04-08 Richard Sandiford <richard.sandiford@arm.com>
482 * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
484 2021-04-08 Richard Sandiford <richard.sandiford@arm.com>
486 * match.pd: Extend vec_cond folds to handle shifts.
488 2021-04-08 Maciej W. Rozycki <macro@orcam.me.uk>
490 * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
493 2021-04-08 Alex Coplan <alex.coplan@arm.com>
496 * config/arm/iterators.md (MVE_vecs): New.
497 (V_elem): Also handle V2DF.
498 * config/arm/mve.md (*mve_mov<mode>): Rename to ...
499 (*mve_vdup<mode>): ... this. Remove second alternative since
500 vec_duplicate of const_int is not canonical RTL, and we don't
501 want to match symbol_refs.
502 (*mve_vec_duplicate<mode>): Delete (pattern is redundant).
504 2021-04-08 Xionghu Luo <luoxhu@linux.ibm.com>
506 * fold-const.c (fold_single_bit_test): Fix typo.
507 * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
510 2021-04-07 Richard Sandiford <richard.sandiford@arm.com>
512 PR tree-optimization/97513
513 * tree-vect-slp.c (vect_add_slp_permutation): New function,
515 (vectorizable_slp_permutation): ...here. Detect cases in which
516 all VEC_PERM_EXPRs are guaranteed to have the same stepped
517 permute vector and only generate one permute vector for that case.
518 Extend that case to handle variable-length vectors.
520 2021-04-07 Richard Sandiford <richard.sandiford@arm.com>
522 PR tree-optimization/99873
523 * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
524 (vect_build_slp_instance): Don't split store groups that could
527 2021-04-07 Jakub Jelinek <jakub@redhat.com>
530 * varasm.c (output_constant_pool_contents): Don't strip name encoding
531 from XSTR (desc->sym, 0) or from label before passing those to
534 2021-04-07 Richard Biener <rguenther@suse.de>
536 PR tree-optimization/99954
537 * tree-loop-distribution.c: Include tree-affine.h.
538 (generate_memcpy_builtin): Try using tree-affine to prove
540 (loop_distribution::classify_builtin_ldst): Always classify
543 2021-04-07 Richard Biener <rguenther@suse.de>
545 PR tree-optimization/99947
546 * tree-vect-loop.c (vectorizable_induction): Pre-allocate
547 steps vector to avoid pushing elements from the reallocated
550 2021-04-07 Richard Biener <rguenther@suse.de>
552 * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
553 * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
555 * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
557 (debug_vn_reference_ops): New.
559 2021-04-07 Bin Cheng <bin.cheng@linux.alibaba.com>
561 PR tree-optimization/98736
562 * tree-loop-distribution.c
563 * (loop_distribution::bb_top_order_init):
564 Compute RPO with programing order preserved by calling function
565 rev_post_order_and_mark_dfs_back_seme.
567 2021-04-06 Vladimir N. Makarov <vmakarov@redhat.com>
570 * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
571 * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
573 (process_bb_lives): Don't update biggest mode of hard reg for
574 implicit in multi-register group. Use the new functions for
575 updating dead_set and unused_set by register notes.
577 2021-04-06 Xianmiao Qu <xianmiao_qu@c-sky.com>
579 * config/csky/csky_pipeline_ck802.md : Use insn reservation name
582 2021-04-06 H.J. Lu <hjl.tools@gmail.com>
584 * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
585 (skylake_memset): Likewise.
586 (skylake_cost): Change CLEAR_RATIO to 17.
587 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
588 Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
589 m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
591 2021-04-06 Richard Biener <rguenther@suse.de>
593 PR tree-optimization/99880
594 * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
595 set vectorized defs of relevant PHIs.
597 2021-04-06 Richard Biener <rguenther@suse.de>
599 PR tree-optimization/99924
600 * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
601 nodes w/o scalar stmts as visited.
603 2021-04-06 Alex Coplan <alex.coplan@arm.com>
606 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
607 PCS for [su]fix_optab.
609 2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
611 * config/darwin.c (machopic_legitimize_pic_address): Check
612 that the current pic register is one of the hard reg set
613 before setting liveness.
615 2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
617 * config/darwin.c (machopic_legitimize_pic_address): Fix
618 whitespace, remove unused code.
620 2021-04-03 Jakub Jelinek <jakub@redhat.com>
622 PR tree-optimization/99882
623 * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
626 2021-04-03 Jakub Jelinek <jakub@redhat.com>
628 PR rtl-optimization/99863
629 * dse.c (replace_read): Drop regs_live argument. Instead of
630 regs_live, use store_insn->fixed_regs_live if non-NULL,
631 otherwise punt if insns sequence clobbers or sets any hard
634 2021-04-03 Jakub Jelinek <jakub@redhat.com>
637 * targhooks.h (default_print_patchable_function_entry_1): Declare.
638 * targhooks.c (default_print_patchable_function_entry_1): New function,
639 copied from default_print_patchable_function_entry with an added flags
641 (default_print_patchable_function_entry): Rewritten into a small
642 wrapper around default_print_patchable_function_entry_1.
643 * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
645 (rs6000_print_patchable_function_entry): New function.
647 2021-04-02 Eric Botcazou <ebotcazou@adacore.com>
649 * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
651 2021-04-01 Jason Merrill <jason@redhat.com>
654 * common.opt: Document v15 and v16.
656 2021-04-01 Richard Biener <rguenther@suse.de>
658 PR tree-optimization/99863
659 * gimplify.c (gimplify_init_constructor): Recompute vector
662 2021-04-01 Jakub Jelinek <jakub@redhat.com>
664 * doc/extend.texi (symver attribute): Fix up syntax errors
667 2021-04-01 Jakub Jelinek <jakub@redhat.com>
669 PR tree-optimization/96573
670 * gimple-ssa-store-merging.c (init_symbolic_number): Handle
673 2021-04-01 Richard Biener <rguenther@suse.de>
675 PR tree-optimization/99856
676 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
677 precision to vector element precision.
679 2021-04-01 Martin Jambor <mjambor@suse.cz>
681 PR tree-optimization/97009
682 * tree-sra.c (access_or_its_child_written): New function.
683 (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
686 2021-03-31 Jan Hubicka <hubicka@ucw.cz>
689 * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
691 2021-03-31 Pat Haugen <pthaugen@linux.ibm.com>
694 * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
695 xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
696 xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
697 * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
698 mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
699 mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
701 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
702 * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
703 (define_attr "prefixed"): Update initializer.
705 2021-03-31 Jakub Jelinek <jakub@redhat.com>
708 * dwarf2out.c (debug_ranges_dwo_section): New variable.
709 (DW_RANGES_IDX_SKELETON): Define.
710 (struct dw_ranges): Add begin_entry and end_entry members.
711 (DEBUG_DWO_RNGLISTS_SECTION): Define.
712 (add_ranges_num): Adjust r initializer for addition of *_entry
714 (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
715 set idx to DW_RANGES_IDX_SKELETON.
716 (use_distinct_base_address_for_range): New function.
717 (index_rnglists): Don't set r->idx if it is equal to
718 DW_RANGES_IDX_SKELETON. Initialize r->begin_entry and
719 r->end_entry for -gsplit-dwarf if those will be needed by
721 (output_rnglists): Add DWO argument. If true, switch to
722 debug_ranges_dwo_section rather than debug_ranges_section.
723 Adjust l1/l2 label indexes. Only output the offset table when
724 dwo is true and don't include in there the skeleton range
725 entry if present. For -gsplit-dwarf, skip ranges that belong
726 to the other rnglists section. Change return type from void
727 to bool and return true if there are any range entries for
728 the other section. For dwarf_split_debug_info use
729 DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
730 entries instead of DW_RLE_start_end, DW_RLE_start_length and
731 DW_RLE_base_address. Use use_distinct_base_address_for_range.
732 (init_sections_and_labels): Initialize debug_ranges_dwo_section
733 if -gsplit-dwarf and DWARF >= 5. Adjust ranges_section_label
734 and range_base_label indexes.
735 (dwarf2out_finish): Call index_rnglists earlier before finalizing
736 .debug_addr. Never emit DW_AT_rnglists_base attribute. For
737 -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
738 with different dwo arguments.
739 (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
741 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
743 PR tree-optimization/98268
744 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
745 recompute_tree_invariant_for_addr_expr after successfully
746 folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
748 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
750 PR tree-optimization/99726
751 * tree-data-ref.c (create_intersect_range_checks_index): Bail
752 out if there is more than one access function SCEV for the loop
755 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
757 PR rtl-optimization/97141
758 PR rtl-optimization/98726
759 * emit-rtl.c (valid_for_const_vector_p): Return true for
761 * rtx-vector-builder.h (rtx_vector_builder::step): Return a
762 poly_wide_int instead of a wide_int.
763 (rtx_vector_builder::apply_set): Take a poly_wide_int instead
765 * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
766 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
767 false for CONST_VECTORs that cannot be forced to memory.
768 * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
769 is too complex to force to memory, build it up from individual
772 2021-03-31 Jan Hubicka <jh@suse.cz>
775 * cgraph.c (cgraph_node::release_body): Fix overactive check.
777 2021-03-31 Christophe Lyon <christophe.lyon@linaro.org>
780 * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
783 2021-03-31 H.J. Lu <hjl.tools@gmail.com>
785 * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
786 For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
788 (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
789 "rep movsb/stosb" only for known sizes.
790 * config/i386/i386-options.c (processor_cost_table): Use Ice
791 Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
792 Rapids and Alder Lake.
793 * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
794 * config/i386/x86-tune-costs.h (icelake_memcpy): New.
795 (icelake_memset): Likewise.
796 (icelake_cost): Likewise.
797 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
800 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
803 * config/aarch64/aarch64.c
804 (aarch64_vectorize_preferred_vector_alignment): Query the size
805 of the provided SVE vector; do not assume that all SVE vectors
808 2021-03-31 Jan Hubicka <jh@suse.cz>
811 * cgraph.c (cgraph_node::release_body): Remove all callers and
813 * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
814 * cgraphunit.c (cgraph_node::expand): And here.
816 2021-03-31 Martin Liska <mliska@suse.cz>
818 * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
819 and one negated condition.
821 2021-03-31 Jakub Jelinek <jakub@redhat.com>
822 Richard Sandiford <richard.sandiford@arm.com>
825 * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
826 constraints on operands[2] and similarly 0 and rk constraints
827 on operands[1] corresponding to that.
829 2021-03-31 Jakub Jelinek <jakub@redhat.com>
832 * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
833 linker doesn't support DWARF sections new in DWARF5.
834 * config/i386/i386-options.c (ix86_option_override_internal): Default
835 to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
837 * config.in: Regenerated.
838 * configure: Regenerated.
840 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
843 * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
844 available issue_info before using it.
846 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
849 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
852 2021-03-30 Xionghu Luo <luoxhu@linux.ibm.com>
855 * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
856 (altivec_lvsl_reg_<mode>): ... this.
857 (altivec_lvsr_reg): Change to ...
858 (altivec_lvsr_reg_<mode>): ... this.
859 * config/rs6000/predicates.md (vec_set_index_operand): New.
860 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
861 Enable 32bit variable vec_insert for all TARGET_VSX.
862 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
863 Enable 32bit variable vec_insert for p9 and above.
864 (rs6000_expand_vector_set_var_p8): Rename to ...
865 (rs6000_expand_vector_set_var_p7): ... this.
866 (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
868 * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
869 * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
870 gen_altivec_lvsr_reg_di.
872 2021-03-30 H.J. Lu <hjl.tools@gmail.com>
875 * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
876 (__rdtscp): Likewise.
878 2021-03-30 Tamar Christina <tamar.christina@arm.com>
880 PR tree-optimization/99825
881 * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
882 Reject non-mult 2 lanes.
884 2021-03-30 Richard Earnshaw <rearnsha@arm.com>
887 * config/arm/arm.c (arm_file_start): Fix emission of
888 Tag_ABI_VFP_args attribute.
890 2021-03-30 Richard Biener <rguenther@suse.de>
892 PR tree-optimization/99824
893 * stor-layout.c (set_min_and_max_values_for_integral_type):
894 Assert the precision is within the bounds of
895 WIDE_INT_MAX_PRECISION.
896 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
897 the outermost component ref only to lower the access size
898 and initialize that from the access type.
900 2021-03-30 Richard Sandiford <richard.sandiford@arm.com>
903 * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
904 CONST_INTs to aarch64_expand_mov_immediate when called after RA.
906 2021-03-30 Mihailo Stojanovic <mihailo.stojanovic@typhoon-hil.com>
908 * config/aarch64/aarch64.md
909 (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
910 attribute to disambiguate between SIMD and FP variants of the
913 2021-03-29 Jan Hubicka <hubicka@ucw.cz>
915 * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
916 (analyze_ssa_name_flags): Fix typo in comment.
918 2021-03-29 Alex Coplan <alex.coplan@arm.com>
921 * config/aarch64/aarch64-sve-builtins.cc
922 (function_builder::add_function): Add placeholder_p argument, use
923 placeholder decls if this is set.
924 (function_builder::add_unique_function): Instead of conditionally adding
925 direct overloads, unconditionally add either a direct overload or a
927 (function_builder::add_overloaded_function): Set placeholder_p if we're
928 using C++ overloads. Use the obstack for string storage instead
929 of relying on the tree nodes.
930 (function_builder::add_overloaded_functions): Don't return early for
931 m_direct_overloads: we need to add placeholders.
932 * config/aarch64/aarch64-sve-builtins.h
933 (function_builder::add_function): Add placeholder_p argument.
935 2021-03-29 Richard Biener <rguenther@suse.de>
937 PR tree-optimization/99807
938 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
939 assert below VEC_PERM handling.
941 2021-03-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
944 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
945 aarch64_simd_or_scalar_imm_zero to match zeroes. Remove pattern
946 matching const_int 0.
947 (move_lo_quad_internal_be_<mode>): Likewise.
948 (move_lo_quad_<mode>): Update for the above.
949 * config/aarch64/iterators.md (VQ_2E): Delete.
951 2021-03-29 Jakub Jelinek <jakub@redhat.com>
953 PR tree-optimization/99777
954 * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
955 types other than scalar integral types.
957 2021-03-28 David Edelsohn <dje.gcc@gmail.com>
959 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
960 XCOFF TLS reloc decorations.
962 2021-03-28 Gerald Pfeifer <gerald@pfeifer.com>
964 * doc/analyzer.texi (Analyzer Internals): Update link to
965 "A Memory Model for Static Analysis of C Programs".
967 2021-03-26 David Edelsohn <dje.gcc@gmail.com>
969 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
970 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
972 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
973 (rs6000_special_round_type_align): Recursively check innermost first
976 2021-03-26 Jakub Jelinek <jakub@redhat.com>
979 * dwarf2out.h (struct dw_fde_node): Add rule18 member.
980 * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
981 assignment with drap_reg active, queue reg save for hfp with offset 0
982 and flush queued reg saves. When handling a push with rule18,
983 defer queueing reg save for hfp and just assert the offset is 0.
984 (scan_trace): Assert that fde->rule18 is false.
986 2021-03-26 Vladimir Makarov <vmakarov@redhat.com>
989 * ira-costs.c (record_reg_classes): Put case with
990 CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
991 * ira.c (ira_setup_alts): Ditto.
992 * lra-constraints.c (process_alt_operands): Ditto.
993 * recog.c (asm_operand_ok): Ditto.
994 * reload.c (find_reloads): Ditto.
996 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
998 * config/aarch64/aarch64-protos.h
999 (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
1000 (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
1001 * config/aarch64/aarch64.c (generic_addrcost_table): Update
1002 accordingly, using the same costs as for post_modify.
1003 (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
1004 (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
1005 (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
1006 (a64fx_addrcost_table): Likewise.
1007 (neoversev1_addrcost_table): New.
1008 (neoversev1_tunings): Use neoversev1_addrcost_table.
1009 (aarch64_address_cost): Use the new post_modify costs for CImode
1012 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1014 * config/aarch64/aarch64.opt
1015 (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
1016 * doc/invoke.texi: Document it.
1017 * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
1018 (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
1019 (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
1020 (aarch64_vec_issue_info): New structures.
1021 (cpu_vector_cost): Write comments above the variables rather
1023 (cpu_vector_cost::issue_info): New member variable.
1024 * config/aarch64/aarch64.c: Include gimple-pretty-print.h
1025 and tree-ssa-loop-niter.h.
1026 (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
1027 (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
1028 (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
1029 (thunderx3t110_vector_cost): Initialize issue_info to null.
1030 (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
1031 (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
1032 (neoversev1_vector_cost): Use them.
1033 (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
1034 (aarch64_vector_costs::saw_sve_only_op): New member variable.
1035 (aarch64_vector_costs::num_vector_iterations): Likewise.
1036 (aarch64_vector_costs::scalar_ops): Likewise.
1037 (aarch64_vector_costs::advsimd_ops): Likewise.
1038 (aarch64_vector_costs::sve_ops): Likewise.
1039 (aarch64_vector_costs::seen_loads): Likewise.
1040 (aarch64_simd_vec_costs_for_flags): New function.
1041 (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
1042 Count the number of predicate operations required by SVE WHILE
1044 (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
1045 (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
1046 (aarch64_count_ops): Likewise.
1047 (aarch64_add_stmt_cost): Record whether see an SVE operation
1048 that cannot currently be implementing using Advanced SIMD.
1049 Record issue information about the scalar, Advanced SIMD
1050 and (where relevant) SVE versions of a loop.
1051 (aarch64_vec_op_count::dump): New function.
1052 (aarch64_sve_op_count::dump): Likewise.
1053 (aarch64_estimate_min_cycles_per_iter): Likewise.
1054 (aarch64_adjust_body_cost): If issue information is available,
1055 try to compare the issue rates of the various loop implementations
1056 and increase or decrease the vector body cost accordingly.
1058 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1060 * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
1061 Assume a zero cost for induction phis.
1063 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1065 * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
1067 (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
1070 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1072 * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
1074 (aarch64_add_stmt_cost): Call it.
1076 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1078 * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
1079 New tuning parameter.
1080 * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
1081 (aarch64_estimated_sve_vq): New function.
1082 (aarch64_vector_costs::analyzed_vinfo): New member variable.
1083 (aarch64_vector_costs::is_loop): Likewise.
1084 (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
1085 (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
1086 (aarch64_record_potential_advsimd_unrolling): New function.
1087 (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
1088 (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
1089 aarch64_analyze_bb_vinfo on the first use of a costs structure.
1090 Detect whether we're vectorizing a loop for SVE that might be
1091 completely unrolled if it used Advanced SIMD instead.
1092 (aarch64_adjust_body_cost_for_latency): New function.
1093 (aarch64_finish_cost): Call it.
1095 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1097 * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
1098 (aarch64_init_cost): New function.
1099 (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
1100 the default unsigned[3].
1101 (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
1102 (TARGET_VECTORIZE_INIT_COST): Override.
1103 (TARGET_VECTORIZE_FINISH_COST): Likewise.
1104 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
1106 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1108 * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
1109 (neoversev1_sve_vector_cost): New cost structures.
1110 (neoversev1_vector_cost): Likewise.
1111 (neoversev1_tunings): Use them. Enable use_new_vector_costs.
1113 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1115 * config/aarch64/aarch64-protos.h
1116 (sve_vec_cost::scatter_store_elt_cost): New member variable.
1117 * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
1118 accordingly, taking the cost from the cost of a scalar_store.
1119 (a64fx_sve_vector_cost): Likewise.
1120 (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
1122 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1124 * config/aarch64/aarch64-protos.h
1125 (simd_vec_cost::store_elt_extra_cost): New member variable.
1126 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
1127 accordingly, using the vec_to_scalar cost for the new field.
1128 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
1129 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
1130 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
1131 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
1132 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
1133 (thunderx3t110_advsimd_vector_cost): Likewise.
1134 (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
1136 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1138 * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
1139 (simd_vec_cost::ld3_st3_permute_cost): New member variables.
1140 (simd_vec_cost::ld4_st4_permute_cost): Likewise.
1141 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
1142 accordingly, using zero for the new costs.
1143 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
1144 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
1145 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
1146 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
1147 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
1148 (thunderx3t110_advsimd_vector_cost): Likewise.
1149 (aarch64_ld234_st234_vectors): New function.
1150 (aarch64_adjust_stmt_cost): Likewise.
1151 (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
1152 the new vector costs.
1154 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1156 * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
1157 derived class of simd_vec_cost. Add information about CLAST[AB]
1158 and FADDA instructions.
1159 * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
1160 accordingly, using the vec_to_scalar costs for the new fields.
1161 (a64fx_sve_vector_cost): Likewise.
1162 (aarch64_reduc_type): New function.
1163 (aarch64_sve_in_loop_reduction_latency): Likewise.
1164 (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
1165 Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
1166 that occur in the loop body.
1167 (aarch64_add_stmt_cost): Update call accordingly.
1169 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
1171 * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
1173 * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
1174 above the fields rather than to the right.
1175 (simd_vec_cost::reduc_i8_cost): New member variable.
1176 (simd_vec_cost::reduc_i16_cost): Likewise.
1177 (simd_vec_cost::reduc_i32_cost): Likewise.
1178 (simd_vec_cost::reduc_i64_cost): Likewise.
1179 (simd_vec_cost::reduc_f16_cost): Likewise.
1180 (simd_vec_cost::reduc_f32_cost): Likewise.
1181 (simd_vec_cost::reduc_f64_cost): Likewise.
1182 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
1183 accordingly, using the vec_to_scalar_cost for the new fields.
1184 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
1185 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
1186 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
1187 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
1188 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
1189 (thunderx3t110_advsimd_vector_cost): Likewise.
1190 (aarch64_use_new_vector_costs_p): New function.
1191 (aarch64_simd_vec_costs): New function, split out from...
1192 (aarch64_builtin_vectorization_cost): ...here.
1193 (aarch64_is_reduction): New function.
1194 (aarch64_detect_vector_stmt_subtype): Likewise.
1195 (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
1196 using the new vector costs.
1198 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
1201 * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
1202 TLS declarations as public.
1204 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
1206 * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
1207 * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
1208 * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
1209 * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
1210 * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
1211 * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
1212 * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
1213 * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
1214 * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
1216 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
1219 * config.gcc (*-*-cygwin*): Add winnt-d.o
1220 (*-*-mingw*): Likewise.
1221 * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
1222 * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
1223 * config/i386/t-cygming: Add winnt-d.o.
1224 * config/i386/winnt-d.c: New file.
1226 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
1228 * config/freebsd-d.c: Include memmodel.h.
1230 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
1233 * config.gcc (*-*-openbsd*): Add openbsd-d.o.
1234 * config/t-openbsd: Add openbsd-d.o.
1235 * config/openbsd-d.c: New file.
1237 2021-03-25 Stam Markianos-Wright <stam.markianos-wright@arm.com>
1239 PR tree-optimization/96974
1240 * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
1243 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
1246 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
1250 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
1251 always_inline in system headers.
1253 2021-03-25 Kewen Lin <linkw@linux.ibm.com>
1255 * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
1257 2021-03-25 Jakub Jelinek <jakub@redhat.com>
1260 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
1261 * fold-const.c (operand_compare::operand_equal_p): Don't compare
1262 field offsets if OEP_ADDRESS_OF_SAME_FIELD.
1264 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
1268 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
1269 always_inline in system headers.
1271 2021-03-25 Richard Biener <rguenther@suse.de>
1273 PR tree-optimization/99746
1274 * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
1275 the scalar stmt as patterned. Instead set up required things
1278 2021-03-25 Xionghu Luo <luoxhu@linux.ibm.com>
1280 * config/rs6000/rs6000.c (power8_costs): Change l2 cache
1283 2021-03-24 Martin Liska <mliska@suse.cz>
1286 * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
1288 * config/i386/i386-options.c (ix86_option_override_internal):
1289 Add run-time assert.
1291 2021-03-24 Martin Jambor <mjambor@suse.cz>
1294 * ipa-cp.c (initialize_node_lattices): Mark as bottom all
1295 parameters with unknown type.
1296 (ipacp_value_safe_for_type): New function.
1297 (propagate_vals_across_arith_jfunc): Verify that the constant type
1298 can be used for a type of the formal parameter.
1299 (propagate_vals_across_ancestor): Likewise.
1300 (propagate_scalar_across_jump_function): Likewise. Pass the type
1301 also to propagate_vals_across_ancestor.
1303 2021-03-24 Christophe Lyon <christophe.lyon@linaro.org>
1306 * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
1308 (movmisalign<mode>_mve_load): Likewise.
1310 2021-03-24 Jakub Jelinek <jakub@redhat.com>
1313 * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
1314 movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
1316 2021-03-24 Alexandre Oliva <oliva@adacore.com>
1318 * doc/sourcebuild.texi (sysconf): New effective target.
1320 2021-03-24 Alexandre Oliva <oliva@adacore.com>
1322 * config/i386/predicates.md (reg_or_const_vec_operand): New.
1323 * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
1324 the now *-prefixed insn_and_split, turn the splitter const vec
1325 into an input for the insn, making it an ignored immediate for
1326 non-split cases, and loaded into the scratch register
1329 2021-03-23 Vladimir N. Makarov <vmakarov@redhat.com>
1332 * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
1333 Use define_relaxed_memory_constraint for them.
1335 2021-03-23 Iain Sandoe <iain@sandoe.co.uk>
1338 * config/host-darwin.c (darwin_gt_pch_use_address): Add a
1339 colon to the diagnostic message.
1341 2021-03-23 Ilya Leoshkevich <iii@linux.ibm.com>
1343 * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
1345 (try_fwprop_subst_note): Use set_info instead of insn_info.
1346 (try_fwprop_subst_pattern): Likewise.
1347 (try_fwprop_subst_notes): Likewise.
1348 (try_fwprop_subst): Likewise.
1349 (forward_propagate_subreg): Likewise.
1350 (forward_propagate_and_simplify): Likewise.
1351 (forward_propagate_into): Likewise.
1352 * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
1354 (set_info::single_nondebug_insn_use): Likewise.
1355 (set_info::single_phi_use): Likewise.
1356 * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
1358 (set_info::single_nondebug_insn_use): Likewise.
1359 (set_info::single_phi_use): Likewise.
1361 2021-03-23 Christophe Lyon <christophe.lyon@linaro.org>
1363 * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
1365 2021-03-23 Jakub Jelinek <jakub@redhat.com>
1368 * config/aarch64/aarch64.c (aarch64_add_offset): Tell
1369 expand_mult to perform an unsigned rather than a signed
1372 2021-03-23 H.J. Lu <hjl.tools@gmail.com>
1375 * config/i386/cpuid.h (__cpuid): Add __volatile__.
1376 (__cpuid_count): Likewise.
1378 2021-03-23 Richard Biener <rguenther@suse.de>
1380 PR tree-optimization/99721
1381 * tree-vect-slp.c (vect_slp_analyze_node_operations):
1382 Make sure we can schedule the node.
1384 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
1386 * config/riscv/riscv.c (riscv_subword): Take endianness into
1387 account when calculating the byte offset.
1389 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
1391 * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
1392 * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
1393 (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
1394 (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
1395 (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
1396 new predicate "subreg_lowpart_operator"
1398 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
1400 * config/riscv/riscv.c (riscv_swap_instruction): New function
1401 to byteswap an SImode rtx containing an instruction.
1402 (riscv_trampoline_init): Byteswap the generated instructions
1405 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
1407 * common/config/riscv/riscv-common.c
1408 (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
1409 * config.gcc (riscv32be-*, riscv64be-*): Set
1410 TARGET_BIG_ENDIAN_DEFAULT to 1.
1411 * config/riscv/elf.h (LINK_SPEC): Change -melf* value
1412 depending on default endianness.
1413 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
1414 * config/riscv/linux.h (LINK_SPEC): Likewise.
1415 * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
1417 * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
1419 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
1421 * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
1422 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
1423 * config/riscv/linux.h (LINK_SPEC): Likewise.
1424 * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
1426 (BYTES_BIG_ENDIAN): Handle big endian.
1427 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
1428 * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
1430 * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
1432 2021-03-23 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1434 * regcprop.c (find_oldest_value_reg): Ask target whether
1435 different mode is fine for replacement register.
1437 2021-03-23 Aldy Hernandez <aldyh@redhat.com>
1439 PR tree-optimization/99296
1440 * value-range.cc (irange::irange_set_1bit_anti_range): New.
1441 (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
1442 * value-range.h (irange::irange_set_1bit_anti_range): New.
1444 2021-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
1447 * config/aarch64/constraints.md (UtQ): Use
1448 define_relaxed_memory_constraint for it.
1449 * doc/md.texi (define_relaxed_memory_constraint): Describe it.
1450 * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
1451 * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
1452 (have_relaxed_memory_constraints): New static var.
1453 (relaxed_memory_start, relaxed_memory_end): Ditto.
1454 (add_constraint): Add arg is_relaxed_memory. Check name for
1455 relaxed memory. Set up is_relaxed_memory in constraint_data and
1456 have_relaxed_memory_constraints. Adjust calls.
1457 (choose_enum_order): Process relaxed memory.
1458 (write_tm_preds_h): Ditto.
1459 (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
1460 * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
1461 * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
1462 * ira-lives.c (single_reg_class): Use
1463 insn_extra_relaxed_memory_constraint.
1464 * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
1465 * lra-constraints.c (valid_address_p): Use
1466 insn_extra_relaxed_memory_constraint instead of other memory
1468 (process_alt_operands): Process CT_RELAXED_MEMORY.
1469 (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
1470 * recog.c (asm_operand_ok, preprocess_constraints): Process
1472 * reload.c (find_reloads): Ditto.
1473 * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
1474 * stmt.c (parse_input_constraint): Use
1475 insn_extra_relaxed_memory_constraint.
1477 2021-03-22 Segher Boessenkool <segher@kernel.crashing.org>
1480 * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
1483 2021-03-22 Alex Coplan <alex.coplan@arm.com>
1486 * config/arm/arm-protos.h (neon_make_constant): Add generate
1487 argument to guard emitting insns, default to true.
1488 * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
1489 CONST_VECTORs which neon_make_constant can't handle.
1490 (neon_vdup_constant): Add generate argument, avoid emitting
1491 insns if it's not set.
1492 (neon_make_constant): Plumb new generate argument through.
1493 * config/arm/constraints.md (Ui): New. Use it...
1494 * config/arm/mve.md (*mve_mov<mode>): ... here.
1495 * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
1496 synthesize constants.
1498 2021-03-22 Richard Biener <rguenther@suse.de>
1500 * debug.h: Add deprecation warning.
1502 2021-03-22 Richard Biener <rguenther@suse.de>
1504 PR tree-optimization/99694
1505 * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
1508 2021-03-22 Kito Cheng <kito.cheng@sifive.com>
1511 * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
1512 after type checking.
1514 2021-03-22 Jakub Jelinek <jakub@redhat.com>
1518 * dwarf2out.c (get_full_len): Use get_precision rather than
1520 (add_const_value_attribute): Make sure add_AT_wide argument has
1521 precision prec rather than some very wide one.
1523 2021-03-22 Kewen Lin <linkw@linux.ibm.com>
1525 * config/rs6000/rs6000.md (*rotldi3_insert_sf,
1526 *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
1527 floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
1528 floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
1529 *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
1530 fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
1531 *round32<mode>2_fprs, *roundu32<mode>2_fprs,
1532 *fix_trunc<mode>si2_internal): Fix empty split condition.
1533 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
1534 vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
1535 *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
1536 *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
1538 2021-03-22 Xionghu Luo <luoxhu@linux.ibm.com>
1541 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
1542 Convert idx to DImode.
1543 (rs6000_expand_vector_set_var_p8): Likewise.
1545 2021-03-21 Jakub Jelinek <jakub@redhat.com>
1548 * dwarf2out.c (insert_float): Change return type from void to
1549 unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
1550 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
1553 2021-03-20 H.J. Lu <hjl.tools@gmail.com>
1556 * config/i386/i386.c (construct_container): Check cfun != NULL
1557 before accessing silent_p.
1559 2021-03-20 Ahamed Husni <ahamedhusni73@gmail.com>
1561 * asan.c: Fix typos in comments.
1563 2021-03-20 Vladimir N. Makarov <vmakarov@redhat.com>
1565 PR rtl-optimization/99680
1566 * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
1567 (process_address_1): Check empty constraint before using
1570 2021-03-19 Pat Haugen <pthaugen@linux.ibm.com>
1572 * config/rs6000/rs6000.c (power10_cost): New.
1573 (rs6000_option_override_internal): Set Power10 costs.
1574 (rs6000_issue_rate): Set Power10 issue rate.
1575 * config/rs6000/power10.md: Rewrite for Power10.
1577 2021-03-19 Vladimir N. Makarov <vmakarov@redhat.com>
1580 * lra-constraints.c (process_address_1): Don't use unknown
1581 constraint for address constraint.
1583 2021-03-19 Iain Sandoe <iain@sandoe.co.uk>
1586 * config.gcc (powerpc-*-darwin8): Delete the reference to
1587 the now removed darwin8.h.
1589 2021-03-19 Olivier Hainque <hainque@adacore.com>
1592 * config/vxworksae.h (VX_CPU_PREFIX): Define.
1594 2021-03-19 John David Anglin <danglin@gcc.gnu.org>
1596 * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
1598 2021-03-19 Tamar Christina <tamar.christina@arm.com>
1600 PR tree-optimization/99656
1601 * tree-vect-slp-patterns.c (linear_loads_p,
1602 complex_add_pattern::matches, is_eq_or_top,
1603 vect_validate_multiplication, complex_mul_pattern::matches,
1604 complex_fms_pattern::matches): Remove complex_perm_kinds_t.
1605 * tree-vectorizer.h: (complex_load_perm_t): Removed.
1606 (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
1607 complex_load_perm_t.
1609 2021-03-19 H.J. Lu <hjl.tools@gmail.com>
1612 * config/i386/i386-options.c (ix86_init_machine_status): Set
1614 * config/i386/i386.c (init_cumulative_args): Set silent_p to
1616 (construct_container): Return early for return and argument
1617 errors if silent_p is true.
1618 * config/i386/i386.h (machine_function): Add silent_p.
1620 2021-03-19 Jakub Jelinek <jakub@redhat.com>
1623 * config/arm/constraints.md (Ds): New constraint.
1624 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
1625 constraint instead of w,Dm.
1627 2021-03-19 Andrew Stubbs <ams@codesourcery.com>
1629 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
1632 2021-03-19 Eric Botcazou <ebotcazou@adacore.com>
1635 * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
1636 array type, do the computation of the current position in sizetype.
1638 2021-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
1641 * lra-constraints.c (process_address_1): Use lookup_constraint
1642 only for a single constraint.
1644 2021-03-18 Martin Sebor <msebor@redhat.com>
1647 * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
1648 (inbounds_memaccess_p): ...to this. Check the ending offset of
1649 the accessed member.
1651 2021-03-18 Andrew Stubbs <ams@codesourcery.com>
1653 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
1654 %> quote markers to error messages.
1655 (gcn_goacc_validate_dims): Likewise.
1656 (gcn_conditional_register_usage): Remove exclaimation mark from error
1658 (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
1660 2021-03-18 Jan Hubicka <hubicka@ucw.cz>
1662 * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
1665 2021-03-18 Sinan Lin <sinan@isrc.iscas.ac.cn>
1666 Kito Cheng <kito.cheng@sifive.com>
1668 * config/riscv/riscv.c (riscv_block_move_straight): Change type
1669 to unsigned HOST_WIDE_INT for parameter and local variable with
1671 (riscv_adjust_block_mem): Ditto.
1672 (riscv_block_move_loop): Ditto.
1673 (riscv_expand_block_move): Ditto.
1675 2021-03-18 Nick Clifton <nickc@redhat.com>
1677 * config/v850/v850.c (construct_restore_jr): Increase static
1679 (construct_save_jarl): Likewise.
1680 * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
1682 2021-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1684 * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
1685 (aarch64_override_options_internal): Use it.
1686 (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
1689 2021-03-17 Sandra Loosemore <sandra@codesourcery.com>
1691 * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
1692 error message format issues.
1693 (nios2_option_override): Likewise.
1694 (nios2_expand_fpu_builtin): Likewise.
1695 (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
1697 (nios2_expand_custom_builtin): More error message format fixes.
1698 (nios2_expand_rdwrctl_builtin): Likewise.
1699 (nios2_expand_rdprs_builtin): Likewise.
1700 (nios2_expand_eni_builtin): Likewise.
1701 (nios2_expand_builtin): Likewise.
1702 (nios2_register_custom_code): Likewise.
1703 (nios2_valid_target_attribute_rec): Likewise.
1704 (nios2_add_insn_asm): Fix uninitialized variable warning.
1706 2021-03-17 Jan Hubicka <jh@suse.cz>
1708 * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
1709 of gather to match reality.
1710 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
1712 2021-03-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1714 * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
1715 to compare against CC_REG rather than NE.
1717 2021-03-17 H.J. Lu <hjl.tools@gmail.com>
1720 * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
1721 inline assembly statements.
1722 (ix86_print_operand): Update 'P' handling for -fno-plt.
1724 2021-03-17 Tamar Christina <tamar.christina@arm.com>
1727 * config/aarch64/aarch64.c
1728 (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
1730 2021-03-16 Segher Boessenkool <segher@kernel.crashing.org>
1733 * config/rs6000/predicates.md (branch_comparison_operator): Allow
1734 ordered and unordered for CCFPmode, if flag_finite_math_only.
1736 2021-03-16 Jakub Jelinek <jakub@redhat.com>
1739 * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
1741 * config/i386/i386.md (mult by 1248 into ashift): New splitter.
1743 2021-03-16 Martin Liska <mliska@suse.cz>
1746 * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
1747 cl_optimization_compare function.
1749 2021-03-16 Ilya Leoshkevich <iii@linux.ibm.com>
1751 * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
1754 2021-03-16 Jakub Jelinek <jakub@redhat.com>
1757 * config/i386/i386.h (struct machine_function): Add
1758 has_explicit_vzeroupper bitfield.
1759 * config/i386/i386-expand.c (ix86_expand_builtin): Set
1760 cfun->machine->has_explicit_vzeroupper when expanding
1761 IX86_BUILTIN_VZEROUPPER.
1762 * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
1763 Do the mode switching only when TARGET_VZEROUPPER, expensive
1764 optimizations turned on and not optimizing for size.
1765 (pass_insert_vzeroupper::gate): Enable even when
1766 cfun->machine->has_explicit_vzeroupper is set.
1768 2021-03-16 Jakub Jelinek <jakub@redhat.com>
1771 * config/aarch64/aarch64.c
1772 (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
1773 definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
1774 instead of DECL_ARGUMENTS. Ignore types for uniform arguments.
1776 2021-03-15 Richard Biener <rguenther@suse.de>
1778 PR tree-optimization/98834
1779 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
1780 subsetting by truncating the access size.
1782 2021-03-15 Jan Hubicka <hubicka@ucw.cz>
1784 * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
1785 * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
1788 2021-03-15 Martin Liska <mliska@suse.cz>
1790 * spellcheck.c: Add missing comma in initialization.
1792 2021-03-14 Uroš Bizjak <ubizjak@gmail.com>
1794 * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
1795 alternative 2 and alternative 1 with alternative 3 using
1796 YW register constraint.
1797 (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
1798 using YW register constraint.
1799 (*vec_extractv16qi_zext): Ditto.
1800 (*vec_extractv4si): Merge alternatives 4 and 5
1801 using Yw register constraint.
1802 (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
1804 2021-03-13 Martin Sebor <msebor@redhat.com>
1806 PR tree-optimization/99489
1807 * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
1808 is not a call statement.
1810 2021-03-13 Jakub Jelinek <jakub@redhat.com>
1812 PR tree-optimization/99544
1813 * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
1814 if for vector types multiplication can't be done in type's mode.
1816 2021-03-12 Eric Botcazou <ebotcazou@adacore.com>
1819 * config/sparc/constraints.md (w): Rename to...
1820 (W): ... this and ditch previous implementation.
1821 * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
1822 (*movdf_insn_sp64): Likewise.
1823 (*mov<VM64:mode>_insn_sp64): Likewise.
1824 * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
1826 (atomic_compare_and_swap_leon3_1): Likewise.
1827 (*atomic_compare_and_swapdi_v8plus): Likewise.
1828 * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
1829 architecture and add missing address validity check during LRA.
1831 2021-03-12 Tobias Burnus <tobias@codesourcery.com>
1834 * gimplify.c (omp_add_variable): Handle NULL_TREE as size
1835 occuring for assumed-size arrays in use_device_{ptr,addr}.
1837 2021-03-12 Jakub Jelinek <jakub@redhat.com>
1840 * config/i386/constraints.md (YW): New internal constraint.
1841 * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
1842 (*<sse2_avx2>_<insn><mode>3<mask_name>,
1843 *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
1844 *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
1846 (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
1847 (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
1848 avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
1849 into one, use Yw instead of former x,v.
1850 (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
1851 the last alternative.
1852 (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
1853 <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
1854 *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
1855 <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
1856 into one, use <v_Yw> instead of former x,v.
1857 (avx2_interleave_highv32qi<mask_name>,
1858 vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
1859 constraints. Add && <mask_avx512bw_condition> to condition.
1860 (avx2_interleave_lowv32qi<mask_name>,
1861 vec_interleave_lowv16qi<mask_name>,
1862 avx2_interleave_highv16hi<mask_name>,
1863 vec_interleave_highv8hi<mask_name>,
1864 avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
1865 avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
1866 avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
1867 avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
1868 *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
1869 Yw instead of v in constraints.
1870 * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
1871 (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
1872 instead of Yv in constraints.
1873 (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
1874 *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
1875 *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
1876 mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
1877 *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
1879 (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
1880 *mmx_pextrb_zext): Use YW instead of Yv in constraints.
1881 (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
1882 (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
1883 two, one with just x, another isa avx512vl with v.
1885 2021-03-12 Martin Liska <mliska@suse.cz>
1887 * doc/invoke.texi: Add missing param documentation.
1889 2021-03-11 David Malcolm <dmalcolm@redhat.com>
1892 * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
1893 analyzer/trimmed-graph.o.
1894 * doc/analyzer.texi (Analyzer Paths): Rewrite description of
1895 feasibility checking to reflect new implementation.
1896 * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
1898 * shortest-paths.h (shortest_paths::get_shortest_distance): New.
1900 2021-03-11 David Malcolm <dmalcolm@redhat.com>
1902 * digraph.cc (selftest::test_shortest_paths): Update
1903 shortest_paths init for new param. Add test of
1904 SPS_TO_GIVEN_TARGET.
1905 * shortest-paths.h (enum shortest_path_sense): New.
1906 (shortest_paths::shortest_paths): Add "sense" param.
1907 Update for renamings. Generalize to use "sense" param.
1908 (shortest_paths::get_shortest_path): Rename param.
1909 (shortest_paths::m_sense): New field.
1910 (shortest_paths::m_prev): Rename...
1911 (shortest_paths::m_best_edge): ...to this.
1912 (shortest_paths::get_shortest_path): Update for renamings.
1913 Conditionalize flipping of path on sense of traversal.
1915 2021-03-11 David Malcolm <dmalcolm@redhat.com>
1917 * digraph.cc (selftest::test_shortest_paths): Add test coverage
1918 for paths from B and C.
1919 * shortest-paths.h (shortest_paths::shortest_paths): Handle
1920 unreachable nodes, rather than asserting.
1922 2021-03-11 David Edelsohn <dje.gcc@gmail.com>
1925 * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
1926 xcoff_tbss_section_name.
1927 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
1928 * xcoffout.c (xcoff_tbss_section_name): Delete.
1929 * xcoffout.h (xcoff_tbss_section_name): Delete.
1931 2021-03-11 Richard Biener <rguenther@suse.de>
1933 PR tree-optimization/99523
1934 * tree-cfg.c (dump_function_to_file): Dump SSA names
1935 w/o identifier to the decls section as well, not only those
1938 2021-03-11 Jakub Jelinek <jakub@redhat.com>
1941 * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
1942 function calls with lhs fail if the lhs don't have compatible types.
1944 2021-03-11 Hans-Peter Nilsson <hp@axis.com>
1946 * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
1947 Change FRAME_POINTER_REGNUM to correspond to a new faked
1948 register faked_fp, part of GENNONACR_REGS like faked_ap.
1949 (CRIS_FAKED_REGS_CONTENTS): New helper macro.
1950 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
1951 (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
1952 (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
1953 * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
1955 (CRIS_REAL_FP_REGNUM): New constant.
1956 * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
1957 for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
1958 (cris_initial_elimination_offset): Handle elimination changes
1959 to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
1960 and add one from FRAME_POINTER_REGNUM to
1961 HARD_FRAME_POINTER_REGNUM.
1962 (cris_expand_prologue, cris_expand_epilogue): Emit code for
1963 hard_frame_pointer_rtx instead of frame_pointer_rtx.
1965 2021-03-10 David Edelsohn <dje.gcc@gmail.com>
1968 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
1969 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
1971 2021-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
1974 * lra-constraints.c (process_address_1): Don't check unknown
1975 constraint, use X for empty constraint.
1977 2021-03-10 Alex Coplan <alex.coplan@arm.com>
1979 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
1980 Fix typo in comment describing "is_ha" argument.
1982 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
1984 * doc/sourcebuild.texi: Document LRA target selector.
1986 2021-03-10 David Malcolm <dmalcolm@redhat.com>
1988 * doc/ux.texi: Add subsection contrasting interactive versus
1991 2021-03-10 Joel Hutton <joel.hutton@arm.com>
1994 * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
1996 (vectorizable_load): Fix gather load mask check condition.
1998 2021-03-10 Richard Biener <rguenther@suse.de>
2000 PR tree-optimization/99510
2001 * tree.c (check_aligned_type): Check that the candidate
2002 has TYPE_USER_ALIGN set instead of matching with the
2005 2021-03-10 Eric Botcazou <ebotcazou@adacore.com>
2007 * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
2008 float and vector integer modes only if the mode is not larger.
2010 2021-03-10 Hans-Peter Nilsson <hp@axis.com>
2012 * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
2014 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
2016 * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
2018 * ira-lives.c (single_reg_class): Ditto.
2020 2021-03-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
2022 * config.gcc (aarch64-*-rtems*): Include general rtems.h after
2023 the architecture-specific rtems.h.
2024 (aarch64-*-rtems*): Likewise.
2025 (arm*-*-rtems*): Likewise.
2026 (epiphany-*-rtems*): Likewise.
2027 (riscv*-*-rtems*): Likewise.
2029 2021-03-09 Jakub Jelinek <jakub@redhat.com>
2031 PR tree-optimization/99305
2032 * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
2033 before integer_all_onesp instead of vice versa.
2035 2021-03-09 Richard Earnshaw <rearnsha@arm.com>
2037 * common/config/arm/arm-common.c (arm_config_default): Change type
2040 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
2043 * lra-constraints.c (process_address_1): Process constraint 'g'
2044 separately and digital constraints containing more one digit.
2046 2021-03-09 Nick Clifton <nickc@redhat.com>
2048 * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
2049 (DWARF"_DEBUGGING_INFO): Define.
2051 2021-03-09 Eric Botcazou <ebotcazou@adacore.com>
2054 * calls.c (initialize_argument_information): When the argument
2055 is passed by reference, do not make a copy in a thunk only if
2056 the argument is already in memory. Remove redundant test for
2057 the case of callee copy.
2059 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
2062 * lra-constraints.c (process_address_1): Process 0..9 constraints
2063 in process_address_1.
2065 2021-03-09 Andreas Krebbel <krebbel@linux.ibm.com>
2067 * config/s390/s390.c (struct s390_processor processor_table):
2068 Binutils name string must not be empty.
2070 2021-03-09 Claudiu Zissulescu <claziss@synopsys.com>
2072 * config/arc/arc.c (arc_attr_type): Remove function.
2074 2021-03-09 Martin Liska <mliska@suse.cz>
2077 * config/i386/i386-options.c (ix86_option_override_internal):
2078 Set isa_flags for OPTS argument and not for the global
2081 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
2083 * config/rs6000/predicates.md (ds_form_mem_operand): Check
2086 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
2089 * config/rs6000/predicates.md (ds_form_mem_operand) New
2091 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
2092 ds_form_mem_operand in ld/lwa patterns.
2093 * config/rs6000/fusion.md: Regenerate file.
2095 2021-03-08 Martin Sebor <msebor@redhat.com>
2098 * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
2099 (array_bounds_checker::check_array_bounds): Call it.
2101 2021-03-08 Martin Sebor <msebor@redhat.com>
2104 * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
2105 (handle_builtin_stxncpy_strncat): Rename locals. Determine
2106 destination size from allocation calls. Issue a more appropriate
2108 (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
2109 (handle_builtin_memset): Same.
2111 2021-03-08 Peter Bergner <bergner@linux.ibm.com>
2114 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
2115 to ensure we do not have an Altivec style address.
2116 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
2117 an Altivec style address.
2118 (*vsx_le_perm_store_<mode>): Likewise.
2119 (splitters after *vsx_le_perm_store_<mode>): Likewise.
2120 (vsx_load_<mode>): Disable special expander if passed an Altivec
2122 (vsx_store_<mode>): Likewise.
2124 2021-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2127 * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
2128 (aarch64_simd_shift_imm_vec_hi): Likewise.
2129 (aarch64_simd_shift_imm_vec_si): Likewise.
2130 (aarch64_simd_shift_imm_vec_di): Likewise.
2131 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
2132 predicate from above.
2133 (aarch64_shrn<mode>_insn_be): Likewise.
2134 (aarch64_rshrn<mode>_insn_le): Likewise.
2135 (aarch64_rshrn<mode>_insn_be): Likewise.
2136 (aarch64_shrn2<mode>_insn_le): Likewise.
2137 (aarch64_shrn2<mode>_insn_be): Likewise.
2138 (aarch64_rshrn2<mode>_insn_le): Likewise.
2139 (aarch64_rshrn2<mode>_insn_be): Likewise.
2141 2021-03-08 Vladimir N. Makarov <vmakarov@redhat.com>
2144 * lra-constraints.c (skip_contraint_modifiers): New function.
2145 (process_address_1): Use it before lookup_constraint call.
2147 2021-03-08 Martin Liska <mliska@suse.cz>
2150 * config/i386/i386-options.c (ix86_option_override_internal):
2151 Enable UINTR and HRESET for -march that supports it.
2153 2021-03-08 Ilya Leoshkevich <iii@linux.ibm.com>
2155 * config/s390/s390.c (f_constraint_p): New function.
2156 (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
2157 (TARGET_MD_ASM_ADJUST): Likewise.
2159 2021-03-08 Tobias Burnus <tobias@codesourcery.com>
2162 * tree-nested.c (convert_local_reference_stmt): Avoid calling
2163 lookup_field_for_decl for Fortran module (= namespace context).
2165 2021-03-08 Andreas Krebbel <krebbel@linux.ibm.com>
2167 * config/s390/s390.c (s390_expand_vec_compare): Implement <0
2168 comparison with arithmetic right shift.
2169 (s390_expand_vcond): No need for a force_reg anymore.
2170 s390_vec_compare will do it.
2171 * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
2174 2021-03-07 Jakub Jelinek <jakub@redhat.com>
2177 * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
2178 but TARGET_AVX512BW or TARGET_AVX512VL is not set. Adjust description
2180 * config/i386/sse.md (v_Yw): New define_mode_attr.
2181 (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
2182 *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
2184 * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
2187 2021-03-06 Julian Brown <julian@codesourcery.com>
2189 * tree-pretty-print.c (dump_generic_node): Emit non-generic
2190 address space info for aggregates.
2192 2021-03-06 Hans-Peter Nilsson <hp@axis.com>
2194 * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
2196 2021-03-05 Jakub Jelinek <jakub@redhat.com>
2199 * tree-cfg.c (bb_to_omp_idx): New variable.
2200 (execute_build_cfg): Release the bb_to_omp_idx vector after
2201 cleanup_tree_cfg returns.
2202 (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
2203 for bb_to_omp_idx being a vec<int> instead of pointer to array
2205 (make_edges): Remove bb_to_omp_idx local variable, don't pass
2206 it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
2207 vec<int> instead of pointer to array of ints and don't free/release
2209 (remove_bb): When removing a bb and placing forced label somewhere
2210 else, ensure it is put into the same OpenMP region during cfg
2211 pass if possible or to entry successor as fallback. Unregister
2212 bb from bb_to_omp_idx.
2214 2021-03-05 Vladimir N. Makarov <vmakarov@redhat.com>
2217 * lra-constraints.c (process_address_1): Skip decomposing address
2218 for asm insn operand with unknown constraint.
2220 2021-03-05 Martin Jambor <mjambor@suse.cz>
2223 * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
2224 corresponding speculative edges if we are about to resolve
2225 sepculation. Make edge direct (and so resolve speculations) before
2226 removing it from call_site_hash.
2227 (cgraph_edge::make_direct): Relax the initial assert to allow calling
2228 the function on speculative direct edges.
2230 2021-03-05 Eric Botcazou <ebotcazou@adacore.com>
2232 PR rtl-optimization/99376
2233 * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
2234 of low-order zero bits is too large, set the result to 0 directly.
2236 2021-03-04 Jakub Jelinek <jakub@redhat.com>
2239 * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
2240 SUBREG and a SUBREG to op_mode can't be created.
2242 2021-03-04 Alex Coplan <alex.coplan@arm.com>
2245 * config/aarch64/aarch64-sve-builtins.cc
2246 (function_resolver::require_vector_type): Handle error_mark_node.
2248 2021-03-04 Ilya Leoshkevich <iii@linux.ibm.com>
2250 * cfgexpand.c (expand_asm_loc): Pass new parameter.
2251 (expand_asm_stmt): Likewise.
2252 * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
2254 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
2255 * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
2256 * config/cris/cris.c (cris_md_asm_adjust): Likewise.
2257 * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
2258 * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
2259 * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
2260 * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
2261 * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
2262 * config/vax/vax.c (vax_md_asm_adjust): Likewise.
2263 * config/visium/visium.c (visium_md_asm_adjust): Likewise.
2264 * doc/tm.texi (md_asm_adjust): Likewise.
2265 * target.def (md_asm_adjust): Likewise.
2267 2021-03-04 Richard Biener <rguenther@suse.de>
2270 * tree-pretty-print.c: Poison pp_printf.
2271 (dump_decl_name): Avoid use of pp_printf.
2272 (dump_block_node): Likewise.
2273 (dump_generic_node): Likewise.
2275 2021-03-04 Martin Sebor <msebor@redhat.com>
2279 * builtins.c (handle_array_ref): New helper.
2280 (handle_mem_ref): New helper.
2281 (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
2282 into new helper functions. Correct a workaround for vectorized
2285 2021-03-03 Pat Haugen <pthaugen@linux.ibm.com>
2287 * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
2288 floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
2289 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
2290 *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
2291 attribute for Power10.
2292 * config/rs6000/mma.md (*movoo): Likewise.
2293 * config/rs6000/rs6000.md (define_attr "size"): Add 256.
2294 (define_mode_attr bits): Add DD/TD modes.
2295 * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
2296 store_conditionalpti): Update size attribute for Power10.
2298 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2301 * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
2302 -Wuninitialized, -Wmaybe-uninitialized.
2303 (wide-int.o-warn): Likewise.
2305 2021-03-03 Richard Earnshaw <rearnsha@arm.com>
2307 * common/config/arm/arm-common.c: Include configargs.h.
2308 (arm_config_default): New function.
2309 (arm_target_mode): Renamed from arm_target_thumb_only. Handle
2310 processors that do not support Thumb. Take into account the
2311 --with-mode configuration setting for selecting the default.
2312 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
2313 (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
2315 2021-03-03 Martin Liska <mliska@suse.cz>
2317 PR gcov-profile/97461
2318 * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
2320 2021-03-03 Eric Botcazou <ebotcazou@adacore.com>
2323 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
2324 point back the hard frame pointer to its default location when the
2325 frame is larger than SEH_MAX_FRAME_SIZE.
2327 2021-03-03 Jakub Jelinek <jakub@redhat.com>
2330 * config/i386/predicates.md (logic_operator): New define_predicate.
2331 * config/i386/i386.md (mov + mem using comm arith peephole2):
2332 Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
2333 and the inner mode is [QH]Imode.
2335 2021-03-03 Jakub Jelinek <jakub@redhat.com>
2338 * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
2339 (new_loc_list): Clear end_entry.
2340 (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
2341 if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx. Fix comment
2343 (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
2344 initialize also end_entry.
2346 2021-03-03 Jakub Jelinek <jakub@redhat.com>
2349 * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
2350 partitions, if in non-layout mode after reorder_blocks also move
2351 affected blocks to ensure a single partition transition.
2353 2021-03-03 Jason Merrill <jason@redhat.com>
2356 * cgraphunit.c (process_function_and_variable_attributes): Don't
2357 warn about flatten on an alias if the target also has it.
2358 * cgraph.h (symtab_node::get_alias_target_tree): New.
2360 2021-03-02 David Edelsohn <dje.gcc@gmail.com>
2362 * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
2363 period to symbol name.
2364 (tls_get_addr_internal<mode>): Same.
2366 2021-03-02 David Malcolm <dmalcolm@redhat.com>
2369 * diagnostic-show-locus.c
2370 (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
2373 2021-03-02 Martin Sebor <msebor@redhat.com>
2376 * builtins.c (warn_for_access): Remove stray warning text.
2378 2021-03-02 Martin Sebor <msebor@redhat.com>
2381 * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
2384 2021-03-02 Jakub Jelinek <jakub@redhat.com>
2387 * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
2388 -gdwarf-5 -gstrict-dwarf. For -gsplit-dwarf -gdwarf-5 use
2389 DW_MACRO_*_strx instead of DW_MACRO_*_strp. Handle
2390 DW_MACRO_define_strx and DW_MACRO_undef_strx.
2391 (save_macinfo_strings): Use DW_MACRO_*_str* even with
2392 -gdwarf-5 -gstrict-dwarf. Handle DW_MACRO_define_strx and
2393 DW_MACRO_undef_strx.
2395 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
2397 * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
2399 (BT_FN_V8HI_V8HI_UINT): Likewise.
2400 (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
2401 * config/s390/s390-builtins.def (B_NNPA): New macro definition.
2402 (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
2403 New builtin definitions.
2404 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
2405 vector extension version.
2406 * config/s390/s390.c (s390_expand_builtin): Check if builtins are
2407 available with current -march level.
2408 * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
2409 (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
2410 (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
2411 * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
2412 (vec_extend_to_fp32_lo): Likewise.
2413 (vec_round_from_fp32): Likewise.
2414 (vec_convert_to_fp16): Likewise.
2415 (vec_convert_from_fp16): Likewise.
2416 * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
2417 (vclfnls_v8hi): Likewise.
2418 (vcrnfs_v8hi): Likewise.
2419 (vcfn_v8hi): Likewise.
2420 (vcnf_v8hi): Likewise.
2422 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
2424 * common/config/s390/s390-common.c (processor_flags_table): New entry.
2425 * config.gcc: Enable arch14 for --with-arch and --with-tune.
2426 * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
2427 arch14 for unknown CPU models.
2428 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
2429 * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
2430 (s390_get_sched_attrmask): Likewise.
2431 (s390_get_unit_mask): Likewise.
2432 * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
2433 (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
2434 (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
2435 (TARGET_NNPA_P): New macro definitions.
2436 * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
2437 * config/s390/s390.opt: Add PROCESSOR_ARCH14.
2439 2021-03-02 Jakub Jelinek <jakub@redhat.com>
2442 * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
2443 condition. Call register_edge_assert_for_1 for == 0, != 0, == 1 and
2444 != 1 comparisons if name is lhs of a comparison.
2446 2021-03-01 Iain Sandoe <iain@sandoe.co.uk>
2450 * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
2451 * config/darwin.c (darwin_should_restore_cfa_state): New.
2452 * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
2453 * doc/tm.texi: Regenerated.
2454 * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
2455 * dwarf2cfi.c (connect_traces): If the target requests, restore
2456 the CFA expression after a DW_CFA_restore.
2457 * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
2459 2021-03-01 Martin Liska <mliska@suse.cz>
2462 * optc-save-gen.awk: Add 4 more exceptions.
2464 2021-03-01 Nathan Sidwell <nathan@acm.org>
2467 * tree.h (TYPE_ALIGN_RAW): New accessor.
2468 (TYPE_ALIGN): Use it.
2470 2021-03-01 Jan Hubicka <jh@suse.cz>
2473 * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
2475 2021-03-01 Eric Botcazou <ebotcazou@adacore.com>
2478 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
2479 point the hard frame pointer to the SSE register save area instead
2480 of the general register save area. Perform only minimal adjustment
2481 for small frames if it is initially not correctly aligned.
2482 (ix86_expand_prologue): Remove early saves for a SEH target.
2483 * config/i386/winnt.c (struct seh_frame_state): Document constraint.
2485 2021-02-28 Jakub Jelinek <jakub@redhat.com>
2488 * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
2489 typo - referneced -> referenced.
2490 * tree.c (component_ref_size): Fix comment typo -
2491 refernce -> reference.
2492 * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
2493 traling -> trailing.
2494 (aliasing_component_refs_p): Fix comment typos -
2495 refernce -> reference and refernece -> reference and
2496 traling -> trailing.
2497 (nonoverlapping_refs_since_match_p): Fix comment typo -
2498 referneces -> references.
2499 * doc/invoke.texi (--param modref-max-bases): Fix a typo -
2500 referneces -> references.
2502 2021-02-27 Iain Sandoe <iain@sandoe.co.uk>
2504 * config/host-darwin.c (darwin_gt_pch_use_address): Modify
2505 diagnostic message to avoid use of a contraction and format
2508 2021-02-27 Jakub Jelinek <jakub@redhat.com>
2511 * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
2512 HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
2513 * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
2514 HOST_WIDE_INT_PRINT_DEC in inform format string. Fix comment
2517 2021-02-26 Richard Biener <rguenther@suse.de>
2520 * expr.c (store_field): For calls with return-slot optimization
2521 and addressable return type expand the store directly.
2523 2021-02-26 Richard Biener <rguenther@suse.de>
2526 * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
2528 2021-02-26 Peter Bergner <bergner@linux.ibm.com>
2531 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
2534 2021-02-26 Aaron Sawdey <acsawdey@linux.ibm.com>
2536 * config.gcc: Add rs6000-pcrel-opt.o.
2537 * config/rs6000/rs6000-pcrel-opt.c: New file.
2538 * config/rs6000/pcrel-opt.md: New file.
2539 * config/rs6000/predicates.md: Add d_form_memory predicate.
2540 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
2541 * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
2542 * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
2543 pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
2544 and make_pass_pcrel_opt().
2545 * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
2546 (rs6000_option_override_internal): Add pcrel-opt.
2547 (rs6000_delegitimize_address): Support pcrel-opt.
2548 (rs6000_opt_masks): Add pcrel-opt.
2549 (pcrel_opt_valid_mem_p): New function.
2550 (reg_to_non_prefixed): Make global.
2551 (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
2552 (output_pcrel_opt_reloc): New function.
2553 * config/rs6000/rs6000.md (loads_extern_addr): New attr.
2554 (pcrel_extern_addr): Set loads_extern_addr.
2555 Add include for pcrel-opt.md.
2556 * config/rs6000/rs6000.opt: Add -mpcrel-opt.
2557 * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
2560 2021-02-26 YunQiang Su <yunqiang.su@cipunited.com>
2563 * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
2564 If TARGET_64BIT and dest is SUBREG, we check the width, if it
2565 equal to SImode, we use SImode operation, just like what we are
2568 2021-02-26 Marek Polacek <polacek@redhat.com>
2570 * builtins.c (warn_for_access): Fix typos.
2572 2021-02-25 Iain Sandoe <iain@sandoe.co.uk>
2574 * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
2575 mark in front of the immediate quantity.
2576 (<optab>_rolsi3_uxtw): Likewise.
2578 2021-02-25 Richard Earnshaw <rearnsha@arm.com>
2581 * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
2582 (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
2583 (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
2584 address and disable when the FPCXT is not available.
2585 (nonsecure_call_value_reg_thumb2): Likewise.
2587 2021-02-25 Nathan Sidwell <nathan@acm.org>
2590 * doc/invoke.texi (flang-info-module-cmi): Renamed option.
2592 2021-02-25 Tamar Christina <tamar.christina@arm.com>
2594 * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
2596 2021-02-25 Richard Biener <rguenther@suse.de>
2598 PR tree-optimization/99253
2599 * tree-vect-loop.c (check_reduction_path): First compute
2600 code, then verify out-of-loop uses.
2602 2021-02-25 Jakub Jelinek <jakub@redhat.com>
2605 * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
2607 2021-02-25 Jakub Jelinek <jakub@redhat.com>
2609 PR tree-optimization/80635
2610 * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
2611 VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
2614 2021-02-25 Richard Biener <rguenther@suse.de>
2616 * tree-vect-slp.c (optimize_load_redistribution_1): Delay
2617 load_map population.
2618 (vect_match_slp_patterns_2): Revert part of last change.
2619 (vect_analyze_slp): Do not interleave optimize_load_redistribution
2620 with pattern detection but do it afterwards. Dump the
2621 whole SLP graph after pattern recognition and load
2622 redistribution optimization finished.
2624 2021-02-24 Jakub Jelinek <jakub@redhat.com>
2627 * omp-low.c (struct omp_context): Add teams_nested_p and
2628 nonteams_nested_p members.
2629 (scan_omp_target): Diagnose teams nested inside of target with other
2630 directives strictly nested inside of the same target.
2631 (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
2632 ctx->nonteams_nested_p as needed.
2634 2021-02-24 Vladimir N. Makarov <vmakarov@redhat.com>
2637 * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
2639 2021-02-24 Hans-Peter Nilsson <hp@axis.com>
2641 * config/cris/cris.c (cris_expand_prologue): Set
2642 current_function_static_stack_size, if flag_stack_usage_info.
2644 2021-02-24 Pat Haugen <pthaugen@linux.ibm.com>
2646 * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
2647 (rs6000_final_prescan_insn): Adjust.
2648 (rs6000_asm_output_opcode): Likewise.
2650 2021-02-24 Martin Sebor <msebor@redhat.com>
2653 * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
2654 from function arguments.
2656 2021-02-24 Tamar Christina <tamar.christina@arm.com>
2658 PR tree-optimization/99220
2659 * tree-vect-slp.c (optimize_load_redistribution_1): Remove
2660 node from cache when it's about to be deleted.
2662 2021-02-24 Jakub Jelinek <jakub@redhat.com>
2664 PR tree-optimization/99225
2665 * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
2666 to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
2667 build_int_cst (..., 1). Formatting fixes.
2669 2021-02-24 Tamar Christina <tamar.christina@arm.com>
2671 PR tree-optimization/99149
2672 * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
2674 (vect_slp_reset_pattern): Remove.
2675 (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
2676 (complex_mul_pattern::build, complex_fma_pattern::build,
2677 complex_fms_pattern::build): Fix ref counts.
2678 * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
2679 when node is being deleted.
2680 (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
2681 (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
2683 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
2685 2021-02-24 Matthias Klose <doko@ubuntu.com>
2688 2020-12-07 Matthias Klose <doko@ubuntu.com>
2690 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
2691 and ENABLE_RTL_FLAG_CHECKING.
2693 2021-02-24 Richard Biener <rguenther@suse.de>
2696 * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
2698 2021-02-23 Peter Bergner <bergner@linux.ibm.com>
2700 * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
2701 (vsx_assemble_pair): ...to this.
2702 (*mma_assemble_pair): Rename from this...
2703 (*vsx_assemble_pair): ...to this.
2704 (mma_disassemble_pair): Rename from this...
2705 (vsx_disassemble_pair): ...to this.
2706 (*mma_disassemble_pair): Rename from this...
2707 (*vsx_disassemble_pair): ...to this.
2708 * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
2709 BU_COMPAT): New macros.
2710 (mma_assemble_pair): Rename from this...
2711 (vsx_assemble_pair): ...to this.
2712 (mma_disassemble_pair): Rename from this...
2713 (vsx_disassemble_pair): ...to this.
2714 (mma_assemble_pair): New compatibility built-in.
2715 (mma_disassemble_pair): Likewise.
2716 * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
2717 (RS6000_BUILTIN_COMPAT): Define.
2718 (bdesc_compat): New.
2719 (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
2720 (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
2721 and VSX_BUILTIN_ASSEMBLE_PAIR.
2722 (rs6000_init_builtins): Register compatibility built-ins.
2723 (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
2724 VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
2725 VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
2726 * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
2727 (__builtin_vsx_assemble_pair): ...to this.
2728 (__builtin_mma_disassemble_pair): Rename from this...
2729 (__builtin_vsx_disassemble_pair): ...to this.
2731 2021-02-23 Martin Liska <mliska@suse.cz>
2734 * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
2735 with different alignment. That leads to an invalid red zone
2736 size allocated in runtime.
2738 2021-02-23 Jakub Jelinek <jakub@redhat.com>
2740 PR tree-optimization/99204
2741 * fold-const.c (fold_read_from_constant_string): Check that
2742 tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
2744 2021-02-23 Segher Boessenkool <segher@kernel.crashing.org>
2745 Kewen Lin <linkw@gcc.gnu.org>
2747 * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
2748 (rotl<mode>3_insert_3): ...this.
2749 (plus_ior_xor): New code_iterator.
2750 (define_split for GPR rl*imi): New splitter.
2751 * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
2752 for integer merging.
2754 2021-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2756 * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
2758 * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
2759 into a register when the above is enabled.
2760 * config/aarch64/aarch64.c (neoversev1_tunings):
2761 AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
2762 (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
2764 2021-02-22 Hans-Peter Nilsson <hp@axis.com>
2766 * config/cris/cris.c (cris_print_operand) <'T'>: Change
2767 valid operand from is now an addi mult-value to shift-value.
2768 * config/cris/cris.md (*addi): Change expression of scaled
2769 operand from mult to ashift.
2770 * config/cris/cris.md (*addi_reload): New insn_and_split.
2772 2021-02-22 John David Anglin <danglin@gcc.gnu.org>
2775 * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
2776 hook_bool_const_tree_hwi_hwi_const_tree_true.
2777 (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
2779 2021-02-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
2781 PR rtl-optimization/98791
2782 * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
2783 for unordered modes.
2785 2021-02-22 Martin Liska <mliska@suse.cz>
2787 * tree-inline.c (inline_forbidden_p): Set
2788 inline_forbidden_reason.
2790 2021-02-22 Richard Biener <rguenther@suse.de>
2792 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
2795 2021-02-22 Richard Biener <rguenther@suse.de>
2797 PR tree-optimization/99165
2798 * gimple-ssa-store-merging.c (pass_store_merging::process_store):
2799 Accumulate changed to ret.
2801 2021-02-21 Uros Bizjak <ubizjak@gmail.com>
2804 2020-12-09 Uroš Bizjak <ubizjak@gmail.com>
2806 * config/i386/i386.h (REG_ALLOC_ORDER): Remove
2808 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
2811 * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
2813 (trunctf<DFP_ALL:mode>2): Likewise.
2814 (trunctdtf2_vr): Likewise.
2815 (trunctdtf2): Likewise.
2816 (extend<DFP_ALL:mode>tf2_vr): Likewise.
2817 (extend<DFP_ALL:mode>tf2): Likewise.
2818 (extendtftd2_vr): Likewise.
2819 (extendtftd2): Likewise.
2821 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
2823 * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
2824 add memory alternative.
2825 (tf_to_fprx2): New pattern.
2827 2021-02-19 Martin Sebor <msebor@redhat.com>
2830 * attribs.c (init_attr_rdwr_indices): Guard vblist use.
2831 (attr_access::free_lang_data): Remove a spurious test.
2833 2021-02-19 Nathan Sidwell <nathan@acm.org>
2835 * doc/invoke.texi (flang-info-module-read): Document.
2837 2021-02-19 Martin Liska <mliska@suse.cz>
2839 PR translation/99167
2840 * params.opt: Fix typo.
2842 2021-02-19 Richard Biener <rguenther@suse.de>
2845 * tree-inline.c (inline_forbidden_p): Do not inline functions
2846 with VLA arguments or return value.
2848 2021-02-19 Jakub Jelinek <jakub@redhat.com>
2851 * config/arm/arm.md (*stack_protect_combined_set_insn,
2852 *stack_protect_combined_test_insn): If force_const_mem result
2853 is not valid general operand, force its address into the destination
2856 2021-02-19 Jakub Jelinek <jakub@redhat.com>
2859 * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
2860 pad or non-local label, put FORCED_LABELs from bb b after that label
2861 rather than before it.
2863 2021-02-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
2866 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
2867 expand_vector_broadcast' to emit the vec_duplicate operand.
2869 2021-02-18 Vladimir N. Makarov <vmakarov@redhat.com>
2871 PR rtl-optimization/96264
2872 * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
2875 2021-02-18 H.J. Lu <hjl.tools@gmail.com>
2878 * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
2879 looking up the retain attribute.
2880 (resolve_unique_section): Likewise.
2881 (get_variable_section): Likewise.
2882 (switch_to_section): Likewise. Warn when a symbol without the
2883 retain attribute and a symbol with the retain attribute are
2884 placed in the section with the same name, instead of the used
2886 * doc/extend.texi: Document the "retain" attribute.
2888 2021-02-18 Nathan Sidwell <nathan@acm.org>
2891 * doc/invoke.texi (flang-info-include-translate): Document header
2894 2021-02-18 Richard Biener <rguenther@suse.de>
2897 * ipa-fnsummary.c (analyze_function_body): Set
2898 CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
2899 * tree-inline.c (insert_init_debug_bind): Pass NULL for
2900 error_mark_node values.
2901 (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
2903 (setup_one_parameter): Delay force_value_to_type until when
2906 2021-02-18 Hans-Peter Nilsson <hp@axis.com>
2908 PR tree-optimization/99142
2909 * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
2911 2021-02-18 Jakub Jelinek <jakub@redhat.com>
2913 * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
2914 wide_int_bitmask::wide_int_bitmask (uint64_t),
2915 wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
2916 wide_int_bitmask::operator ~ () const,
2917 wide_int_bitmask::operator | (wide_int_bitmask) const,
2918 wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
2920 * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
2921 PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
2922 PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
2923 PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
2924 PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
2925 PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
2926 PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
2927 PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
2928 PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
2929 PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
2930 PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
2931 PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
2932 PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
2933 PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
2934 PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
2935 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
2936 PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
2937 PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
2938 PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
2939 PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
2940 PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
2941 PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
2942 PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
2943 PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
2945 2021-02-18 Jakub Jelinek <jakub@redhat.com>
2948 * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
2949 (build_printable_array_type): ... this. Add nelts argument. For
2950 overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead. If
2951 nelts, call build_array_type_nelts.
2952 (array_bounds_checker::check_mem_ref): Use build_printable_array_type
2953 instead of build_zero_elt_array_type and build_array_type_nelts.
2955 2021-02-18 Jakub Jelinek <jakub@redhat.com>
2958 * config/i386/i386.c (distance_non_agu_define): Don't call
2959 extract_insn_cached here.
2960 (ix86_lea_outperforms): Save and restore recog_data around call
2961 to distance_non_agu_define and distance_agu_use.
2962 (ix86_ok_to_clobber_flags): Remove.
2963 (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
2964 (ix86_avoid_lea_for_addr): Likewise. Adjust function comment.
2965 * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
2966 into define_insn. Move the splitting to define_peephole2 and
2967 check there using peep2_regno_dead_p if FLAGS_REG is dead.
2969 2021-02-17 Julian Brown <julian@codesourcery.com>
2971 * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
2974 2021-02-17 Xi Ruoyao <xry111@mengyan1223.wang>
2977 * config/mips/mips.c (mips_symbol_insns): Do not use
2978 MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
2980 2021-02-16 Vladimir N. Makarov <vmakarov@redhat.com>
2983 * stmt.c (resolve_operand_name_1): Take inout operands into account
2984 for access to labels by names.
2985 * doc/extend.texi: Describe counting operands for accessing labels.
2987 2021-02-16 Richard Biener <rguenther@suse.de>
2989 PR tree-optimization/38474
2990 * tree-ssa-structalias.c (variable_info::address_taken): New.
2991 (new_var_info): Initialize address_taken.
2992 (process_constraint): Set address_taken.
2993 (solve_constraints): Use the new address_taken flag rather
2994 than is_reg_var for sorting variables.
2995 (dump_constraint): Dump the variable number if the name
2998 2021-02-16 Jakub Jelinek <jakub@redhat.com>
3001 * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
3002 multiply by 4096 and for inbranch by 8192.
3003 * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
3004 return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
3006 2021-02-15 Maya Rashish <coypu@sdf.org>
3008 * config/aarch64/aarch64.c (aarch64_init_builtins):
3009 Call SUBTARGET_INIT_BUILTINS.
3011 2021-02-15 Peter Bergner <bergner@linux.ibm.com>
3013 PR rtl-optimization/98872
3014 * init-regs.c (initialize_uninitialized_regs): Skip initialization
3015 if CONST0_RTX is NULL.
3017 2021-02-15 Richard Sandiford <richard.sandiford@arm.com>
3019 PR rtl-optimization/98863
3020 * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
3021 (function_info::build_info): Turn into a declaration, moving the
3022 definition to internals.h.
3023 (function_info::bb_walker): Declare.
3024 (function_info::create_reg_use): Likewise.
3025 (function_info::calculate_potential_phi_regs): Take a build_info
3027 (function_info::place_phis, function_info::create_ebbs): Declare.
3028 (function_info::calculate_ebb_live_in_for_debug): Likewise.
3029 (function_info::populate_backedge_phis): Delete.
3030 (function_info::start_block, function_info::end_block): Declare.
3031 (function_info::populate_phi_inputs): Delete.
3032 (function_info::m_potential_phi_regs): Move information to build_info.
3033 * rtl-ssa/internals.h: New file.
3034 (function_info::bb_phi_info): New class.
3035 (function_info::build_info): Moved from functions.h.
3036 Add a constructor and destructor.
3037 (function_info::build_info::ebb_use): Delete.
3038 (function_info::build_info::ebb_def): Likewise.
3039 (function_info::build_info::bb_live_out): Likewise.
3040 (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
3041 (function_info::build_info::potential_phi_regs): Likewise.
3042 (function_info::build_info::potential_phi_regs_for_debug): Likewise.
3043 (function_info::build_info::ebb_def_regs): Likewise.
3044 (function_info::build_info::bb_phis): Likewise.
3045 (function_info::build_info::bb_mem_live_out): Likewise.
3046 (function_info::build_info::bb_to_rpo): Likewise.
3047 (function_info::build_info::def_stack): Likewise.
3048 (function_info::build_info::old_def_stack_limit): Likewise.
3049 * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
3050 Remove the regno argument. Push the previous definition onto the
3051 definition stack where necessary.
3052 * rtl-ssa/accesses.cc: Include internals.h.
3053 * rtl-ssa/changes.cc: Likewise.
3054 * rtl-ssa/blocks.cc: Likewise.
3055 (function_info::build_info::build_info): Define.
3056 (function_info::build_info::~build_info): Likewise.
3057 (function_info::bb_walker): New class.
3058 (function_info::bb_walker::bb_walker): Define.
3059 (function_info::add_live_out_use): Convert a logarithmic-complexity
3060 test into a linear one. Allow the same definition to be passed
3062 (function_info::calculate_potential_phi_regs): Moved from
3063 functions.cc. Take a build_info parameter and store the
3064 information there instead.
3065 (function_info::place_phis): New function.
3066 (function_info::add_entry_block_defs): Update call to record_reg_def.
3067 (function_info::calculate_ebb_live_in_for_debug): New function.
3068 (function_info::add_phi_nodes): Use bb_phis to decide which
3069 registers need phi nodes and initialize ebb_def_regs accordingly.
3070 Do not add degenerate phis here.
3071 (function_info::add_artificial_accesses): Use create_reg_use.
3072 Assert that all definitions are listed in the DF LR sets.
3073 Update call to record_reg_def.
3074 (function_info::record_block_live_out): Record live-out register
3075 values in the phis of successor blocks. Use the live-out set
3076 when processing the last block in an EBB, instead of always
3077 using the live-in sets of successor blocks. AND the live sets
3078 with the set of registers that have been defined in the EBB,
3079 rather than with all potential phi registers. Cope correctly
3080 with branches back to the start of the current EBB.
3081 (function_info::start_block): New function.
3082 (function_info::end_block): Likewise.
3083 (function_info::populate_phi_inputs): Likewise.
3084 (function_info::create_ebbs): Likewise.
3085 (function_info::process_all_blocks): Rewrite into a multi-phase
3087 * rtl-ssa/functions.cc: Include internals.h.
3088 (function_info::calculate_potential_phi_regs): Move to blocks.cc.
3089 (function_info::init_function_data): Remove caller.
3090 * rtl-ssa/insns.cc: Include internals.h
3091 (function_info::create_reg_use): New function. Lazily any
3092 degenerate phis needed by the linear RPO view.
3093 (function_info::record_use): Use create_reg_use. When processing
3094 debug uses, use potential_phi_regs and test it before checking
3095 whether the register is live on entry to the current EBB. Lazily
3096 calculate ebb_live_in_for_debug.
3097 (function_info::record_call_clobbers): Update call to record_reg_def.
3098 (function_info::record_def): Likewise.
3100 2021-02-15 Martin Liska <mliska@suse.cz>
3102 * toplev.c (init_asm_output): Free output of
3103 gen_command_line_string function.
3104 (process_options): Likewise.
3106 2021-02-15 Martin Liska <mliska@suse.cz>
3108 * params.opt: Add 2 missing Param keywords.
3110 2021-02-15 Eric Botcazou <ebotcazou@adacore.com>
3112 * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
3114 2021-02-15 Jakub Jelinek <jakub@redhat.com>
3116 PR tree-optimization/99079
3117 * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
3118 useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead
3119 require both type and TREE_TYPE (@1) to be integral types and either
3120 type having smaller or equal precision, or TREE_TYPE (@1) being
3121 unsigned type, or type being signed type. If TREE_TYPE (@1)
3122 doesn't have wrapping overflow, perform the subtraction of one in
3125 2021-02-14 Jan Hubicka <hubicka@ucw.cz>
3126 Richard Biener <rguether@suse.de>
3129 * ipa-reference.c (ipa_init): Only conditinally initialize
3130 reference_vars_to_consider.
3131 (propagate): Conditionally deninitialize reference_vars_to_consider.
3132 (ipa_reference_write_optimization_summary): Sanity check that
3133 reference_vars_to_consider is not allocated.
3135 2021-02-13 Levy Hsu <admin@levyhsu.com>
3138 * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
3139 extend parameter to get_si_mem_base_reg declaration.
3140 (get_si_mem_base_reg): Add extend parameter. Set it.
3141 (analyze): Pass extend arg to get_si_mem_base_reg.
3142 (transform): Likewise. Use it when rewriting mems.
3143 * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
3144 loads and emit sign/zero extending load followed by subreg move.
3146 2021-02-13 Jim Wilson <jimw@sifive.com>
3149 * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
3150 exit when !reload_completed. Only perform check for compressed reg
3151 if reload_completed.
3152 (riscv_rtx_costs): In MEM case, when optimizing for size and
3153 shorten memrefs, if not compressible, then increase cost.
3155 2021-02-13 Jakub Jelinek <jakub@redhat.com>
3157 PR rtl-optimization/98439
3158 * recog.c (pass_split_before_regstack::gate): Enable even when
3159 pass_split_before_sched2 is enabled if -fselective-scheduling2 is
3162 2021-02-13 Jakub Jelinek <jakub@redhat.com>
3165 * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
3166 swap of V2SImode elements in memory into DImode memory rotate by 32.
3168 2021-02-12 Martin Sebor <msebor@redhat.com>
3170 * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
3172 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
3174 * rtl-ssa/accesses.cc (function_info::make_use_available): Use
3175 m_temp_obstack rather than m_obstack to allocate the temporary use.
3177 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
3179 * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
3180 as read-modify operations.
3182 2021-02-12 Richard Biener <rguenther@suse.de>
3185 * ipa-fnsummary.c (unmodified_parm_1): Only walk when
3186 fbi->aa_walk_budget is bigger than zero. Update
3187 fbi->aa_walk_budget.
3188 (param_change_prob): Likewise.
3189 * ipa-prop.c (detect_type_change_from_memory_writes):
3190 Properly account walk_aliased_vdefs.
3191 (parm_preserved_before_stmt_p): Canonicalize updates.
3192 (parm_ref_data_preserved_p): Likewise.
3193 (parm_ref_data_pass_through_p): Likewise.
3194 (determine_known_aggregate_parts): Account own alias queries.
3196 2021-02-12 Martin Liska <mliska@suse.cz>
3198 * opts-common.c (decode_cmdline_option): Release werror_arg.
3199 * opts.c (gen_producer_string): Release output of
3200 gen_command_line_string.
3202 2021-02-12 Richard Biener <rguenther@suse.de>
3204 PR tree-optimization/38474
3205 * params.opt (-param=max-store-chains-to-track=): New param.
3206 (-param=max-stores-to-track=): Likewise.
3207 * doc/invoke.texi (max-store-chains-to-track): Document.
3208 (max-stores-to-track): Likewise.
3209 * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
3211 (pass_store_merging::m_n_stores): Likewise.
3212 (pass_store_merging::terminate_and_process_chain): Update
3213 m_n_stores and m_n_chains.
3214 (pass_store_merging::process_store): Likewise. Terminate
3215 oldest chains if the number of stores or chains get too large.
3216 (imm_store_chain_info::terminate_and_process_chain): Dump
3219 2021-02-11 Eric Botcazou <ebotcazou@adacore.com>
3221 * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
3222 the cold section, emit a nop before the directive if the previous
3223 active instruction can throw.
3225 2021-02-11 Peter Bergner <bergner@linux.ibm.com>
3228 * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
3229 memory addresses that are legal for quad word accesses.
3231 2021-02-11 Andrea Corallo <andrea.corallo@arm.com>
3234 * config/arm/thumb2.md (*doloop_end_internal): Generate
3235 alternative sequence to handle long range branches.
3237 2021-02-11 Joel Hutton <joel.hutton@arm.com>
3239 PR tree-optimization/98772
3240 * optabs-tree.c (supportable_half_widening_operation): New function
3241 to check for supportable V8QI->V8HI widening patterns.
3242 * optabs-tree.h (supportable_half_widening_operation): New function.
3243 * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
3244 to create promotion stmts for V8QI->V8HI widening patterns.
3245 (vectorizable_conversion): Add case for V8QI->V8HI.
3247 2021-02-11 Richard Biener <rguenther@suse.de>
3249 * sparseset.h (SPARSESET_ELT_BITS): Remove.
3250 (SPARSESET_ELT_TYPE): Use unsigned int.
3251 * fwprop.c: Do not include sparseset.h.
3253 2021-02-10 Jakub Jelinek <jakub@redhat.com>
3256 * varasm.c (declare_weak): For -fsyntax-only, allow even
3257 TREE_ASM_WRITTEN function decls.
3259 2021-02-10 Jakub Jelinek <jakub@redhat.com>
3262 * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
3263 <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
3264 <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
3265 <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
3266 calling simplify_gen_subreg on it.
3268 2021-02-10 Martin Liska <mliska@suse.cz>
3270 * config/nvptx/nvptx.c (nvptx_option_override): Use
3271 flag_patchable_function_entry instead of the removed
3272 function_entry_patch_area_size.
3274 2021-02-10 Martin Liska <mliska@suse.cz>
3276 PR tree-optimization/99002
3277 PR tree-optimization/99026
3278 * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
3279 leak when adjacent cases are merged.
3280 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
3282 (make_pass_lower_switch): Remove trailing whitespace.
3283 * tree-switch-conversion.h (release_clusters): New.
3285 2021-02-10 Richard Biener <rguenther@suse.de>
3287 PR rtl-optimization/99054
3288 * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
3289 (fixup_partitions): Adjust.
3290 (rtl_verify_edges): Likewise.
3292 2021-02-10 Jakub Jelinek <jakub@redhat.com>
3295 * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
3296 temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
3299 2021-02-10 Richard Biener <rguenther@suse.de>
3302 * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
3305 2021-02-10 Richard Biener <rguenther@suse.de>
3307 PR tree-optimization/99024
3308 * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
3309 clear loop->aux if it is associated with the destroyed loop_vinfo.
3311 2021-02-10 Martin Liska <mliska@suse.cz>
3313 PR tree-optimization/99002
3314 * gimple-if-to-switch.cc (find_conditions): Fix memory leak
3317 2021-02-10 Martin Liska <mliska@suse.cz>
3320 * ipa-icf.c (sem_item::add_reference): Fix memory leak when
3323 2021-02-10 Jakub Jelinek <jakub@redhat.com>
3326 * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
3327 at class scope for DWARF5+.
3329 2021-02-09 Eric Botcazou <ebotcazou@adacore.com>
3331 PR rtl-optimization/96015
3332 * reorg.c (skip_consecutive_labels): Minor comment tweaks.
3333 (relax_delay_slots): When deleting a jump to the next active
3334 instruction over a barrier, first delete the barrier if the
3335 jump is the only way to reach the target label.
3337 2021-02-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
3339 * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
3340 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
3341 vector multiplies and vect.alu for SSRA.
3342 * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
3343 vect.mul cost field.
3344 * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
3345 * config/arm/arm.c: Likewise.
3347 2021-02-09 Richard Biener <rguenther@suse.de>
3349 PR tree-optimization/98863
3350 * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
3351 * tree-ssa-sccvn.c (last_pushed_avail): New global.
3352 (rpo_elim::eliminate_push_avail): Chain pushed avails.
3353 (unwind_state::avail_top): Add.
3354 (do_unwind): Rewrite unwinding of avail entries.
3355 (do_rpo_vn): Initialize last_pushed_avail and
3356 avail_top of the undo state.
3358 2021-02-09 Jakub Jelinek <jakub@redhat.com>
3361 * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
3362 const char * to char * and free those pointers after use.
3364 2021-02-09 Richard Biener <rguenther@suse.de>
3366 PR tree-optimization/99017
3367 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
3368 zero vector cost entries.
3370 2021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
3373 * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
3374 parameter in vectorizable_condition.
3376 2021-02-08 Richard Biener <rguenther@suse.de>
3379 * tree.c (walk_tree_1): Walk VECTOR_CST elements.
3381 2021-02-08 Martin Liska <mliska@suse.cz>
3384 * cfgexpand.c (pass_expand::execute): Parse per-function option
3385 flag_patchable_function_entry and use it.
3386 * common.opt: Remove function_entry_patch_area_size and
3387 function_entry_patch_area_start global variables.
3388 * opts.c (parse_and_check_patch_area): New function.
3389 (common_handle_option): Use it.
3390 * opts.h (parse_and_check_patch_area): New function.
3391 * toplev.c (process_options): Parse and use
3392 function_entry_patch_area_size.
3394 2021-02-08 Martin Sebor <msebor@redhat.com>
3396 * doc/extend.texi (attribute malloc): Correct typos.
3398 2021-02-05 Nathan Sidwell <nathan@acm.org>
3401 * gcc.c (driver::maybe_run_linker): Check for input file
3402 accessibility if not linking.
3404 2021-02-05 Richard Biener <rguenther@suse.de>
3406 PR tree-optimization/98855
3407 * tree-vectorizer.h (add_stmt_cost): New overload.
3408 * tree-vect-slp.c (li_cost_vec_cmp): New.
3409 (vect_bb_slp_scalar_cost): Cost individual loop regions
3410 separately. Account for the scalar instance root stmt.
3412 2021-02-05 Tom de Vries <tdevries@suse.de>
3415 * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
3417 (bit_test_cluster::emit): Reuse location_t for newly created
3419 (switch_decision_tree::try_switch_expansion): Preserve
3421 * tree-switch-conversion.h: Change function signatures.
3423 2021-02-05 Jakub Jelinek <jakub@redhat.com>
3426 * config/i386/i386-options.c (m_NONE, m_ALL): Define.
3427 * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
3428 X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
3429 (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
3431 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3433 * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
3434 * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
3435 * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
3436 (vget_high_f16): Reimplement using new builtin.
3437 (vget_high_f32): Likewise.
3438 (vget_high_f64): Likewise.
3439 (vget_high_p8): Likewise.
3440 (vget_high_p16): Likewise.
3441 (vget_high_p64): Likewise.
3442 (vget_high_s8): Likewise.
3443 (vget_high_s16): Likewise.
3444 (vget_high_s32): Likewise.
3445 (vget_high_s64): Likewise.
3446 (vget_high_u8): Likewise.
3447 (vget_high_u16): Likewise.
3448 (vget_high_u32): Likewise.
3449 (vget_high_u64): Likewise.
3451 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3453 * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
3454 * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
3455 * config/aarch64/arm_neon.h (__GET_LOW): Delete.
3456 (vget_low_f16): Reimplement using new builtin.
3457 (vget_low_f32): Likewise.
3458 (vget_low_f64): Likewise.
3459 (vget_low_p8): Likewise.
3460 (vget_low_p16): Likewise.
3461 (vget_low_p64): Likewise.
3462 (vget_low_s8): Likewise.
3463 (vget_low_s16): Likewise.
3464 (vget_low_s32): Likewise.
3465 (vget_low_s64): Likewise.
3466 (vget_low_u8): Likewise.
3467 (vget_low_u16): Likewise.
3468 (vget_low_u32): Likewise.
3469 (vget_low_u64): Likewise.
3471 2021-02-05 Kito Cheng <kito.cheng@sifive.com>
3473 * gcc.c (print_multilib_info): Check all required argument is provided
3476 2021-02-05 liuhongt <hongtao.liu@intel.com>
3479 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
3480 generate integer mask comparison for 128/256-bits vector when
3481 op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
3482 delete redundant !maskcmp condition.
3483 (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
3485 (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
3486 condition directly to if (maskcmp), add extra check for
3487 cmpmode, it should be MODE_INT.
3488 (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
3489 parameters op_true/op_false.
3490 (ix86_use_mask_cmp_p): New.
3492 2021-02-05 liuhongt <hongtao.liu@intel.com>
3495 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
3496 Remove m_GENERIC from ~list.
3497 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
3499 2021-02-04 David Malcolm <dmalcolm@redhat.com>
3502 * diagnostic-show-locus.c (compatible_locations_p): Require
3503 locations in the same macro map to be either both from the
3504 macro definition, or both from the macro arguments.
3506 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
3508 * config/aarch64/aarch64-simd-builtins.def: Add
3509 [su]mull_hi_lane[q] builtin generator macros.
3510 * config/aarch64/aarch64-simd.md
3511 (aarch64_<su>mull_hi_lane<mode>_insn): Define.
3512 (aarch64_<su>mull_hi_lane<mode>): Define.
3513 (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
3514 (aarch64_<su>mull_hi_laneq<mode>): Define.
3515 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
3516 builtin instead of inline asm.
3517 (vmull_high_lane_s32): Likewise.
3518 (vmull_high_lane_u16): Likewise.
3519 (vmull_high_lane_u32): Likewise.
3520 (vmull_high_laneq_s16): Likewise.
3521 (vmull_high_laneq_s32): Likewise.
3522 (vmull_high_laneq_u16): Likewise.
3523 (vmull_high_laneq_u32): Liekwise.
3525 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
3527 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
3528 builtin generator macros.
3529 * config/aarch64/aarch64-simd.md
3530 (aarch64_<su>mull_hi_n<mode>_insn): Define.
3531 (aarch64_<su>mull_hi_n<mode>): Define.
3532 * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
3533 instead of inline asm.
3534 (vmull_high_n_s32): Likewise.
3535 (vmull_high_n_u16): Likewise.
3536 (vmull_high_n_u32): Likewise.
3538 2021-02-04 Richard Biener <rguenther@suse.de>
3540 PR tree-optimization/98855
3541 * tree-vect-loop.c (vectorizable_phi): Do not cost
3542 single-argument PHIs.
3543 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
3544 * tree-vect-stmts.c (vectorizable_bswap): Also perform
3545 costing for SLP operation.
3547 2021-02-04 Martin Liska <mliska@suse.cz>
3549 * doc/extend.texi: Mention -mprefer-vector-width in target
3552 2021-02-03 Martin Sebor <msebor@redhat.com>
3554 PR tree-optimization/98937
3555 * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
3556 Flush pointer_query cache.
3558 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
3560 * config/rs6000/genfusion.pl (gen_2logical): Add missing
3561 fixes based on patch review.
3562 * config/rs6000/fusion.md: Regenerate file.
3564 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
3566 * config/rs6000/t-rs6000: Comment out auto generation of
3569 2021-02-03 Andrew Stubbs <ams@codesourcery.com>
3571 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
3572 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
3573 (output_file_start): Add gfx908.
3574 * config/gcn/gcn.opt (gpu_type): Add gfx908.
3575 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
3576 (MULTILIB_DIRNAMES): Add gfx908.
3577 * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
3578 (main): Recognize gfx908.
3579 * config/gcn/t-omp-device: Add gfx908.
3581 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
3583 * config/aarch64/aarch64-simd-builtins.def: Add
3584 [su]mlsl_hi_lane[q] builtin macro generators.
3585 * config/aarch64/aarch64-simd.md
3586 (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
3587 (aarch64_<su>mlsl_hi_lane<mode>): Define.
3588 (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
3589 (aarch64_<su>mlsl_hi_laneq<mode>): Define.
3590 * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
3591 builtin instead of inline asm.
3592 (vmlsl_high_lane_s32): Likewise.
3593 (vmlsl_high_lane_u16): Likewise.
3594 (vmlsl_high_lane_u32): Likewise.
3595 (vmlsl_high_laneq_s16): Likewise.
3596 (vmlsl_high_laneq_s32): Likewise.
3597 (vmlsl_high_laneq_u16): Likewise.
3598 (vmlsl_high_laneq_u32): Likewise.
3599 (vmlal_high_laneq_u32): Likewise.
3601 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
3603 * config/aarch64/aarch64-simd-builtins.def: Add
3604 [su]mlal_hi_lane[q] builtin generator macros.
3605 * config/aarch64/aarch64-simd.md
3606 (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
3607 (aarch64_<su>mlal_hi_lane<mode>): Define.
3608 (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
3609 (aarch64_<su>mlal_hi_laneq<mode>): Define.
3610 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
3611 builtin instead of inline asm.
3612 (vmlal_high_lane_s32): Likewise.
3613 (vmlal_high_lane_u16): Likewise.
3614 (vmlal_high_lane_u32): Likewise.
3615 (vmlal_high_laneq_s16): Likewise.
3616 (vmlal_high_laneq_s32): Likewise.
3617 (vmlal_high_laneq_u16): Likewise.
3618 (vmlal_high_laneq_u32): Likewise.
3620 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
3622 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
3623 builtin generator macros.
3624 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
3626 (aarch64_<su>mlsl_hi_n<mode>): Define.
3627 * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
3628 instead of inline asm.
3629 (vmlsl_high_n_s32): Likewise.
3630 (vmlsl_high_n_u16): Likewise.
3631 (vmlsl_high_n_u32): Likewise.
3633 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
3635 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
3636 builtin generator macros.
3637 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
3639 (aarch64_<su>mlal_hi_n<mode>): Define.
3640 * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
3641 instead of inline asm.
3642 (vmlal_high_n_s32): Likewise.
3643 (vmlal_high_n_u16): Likewise.
3644 (vmlal_high_n_u32): Likewise.
3646 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
3648 * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
3650 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
3652 (aarch64_<su>mlal_hi<mode>_insn): This.
3653 (aarch64_<su>mlal_hi<mode>): Define.
3654 * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
3655 instead of inline asm.
3656 (vmlal_high_s16): Likewise.
3657 (vmlal_high_s32): Likewise.
3658 (vmlal_high_u8): Likewise.
3659 (vmlal_high_u16): Likewise.
3660 (vmlal_high_u32): Likewise.
3662 2021-02-03 Ilya Leoshkevich <iii@linux.ibm.com>
3664 * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
3665 after calling alter_subreg() on a (mem).
3667 2021-02-03 Martin Liska <mliska@suse.cz>
3670 * lto-streamer-out.c (produce_lto_section): Fill up missing
3672 * lto-streamer.h (struct lto_section): Add _padding field.
3674 2021-02-03 Richard Biener <rguenther@suse.de>
3676 * lto-streamer.c (lto_get_section_name): Free temporary
3678 * tree-loop-distribution.c
3679 (loop_distribution::merge_dep_scc_partitions): Free edge data.
3681 2021-02-03 Jakub Jelinek <jakub@redhat.com>
3684 * ifcvt.c (noce_can_force_operand): New function.
3685 (noce_emit_move_insn): Use it.
3686 (noce_try_sign_mask): Likewise. Formatting fix.
3688 2021-02-03 Jakub Jelinek <jakub@redhat.com>
3691 * lra-constraints.c (process_alt_operands): For inline asm, don't call
3692 fatal_insn, but instead return false.
3694 2021-02-03 Jakub Jelinek <jakub@redhat.com>
3696 PR tree-optimization/98287
3697 * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
3700 2021-02-03 Tamar Christina <tamar.christina@arm.com>
3702 PR tree-optimization/98928
3703 * tree-vect-loop.c (vect_analyze_loop_2): Change
3704 STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
3705 * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
3706 * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
3707 (class _stmt_vec_info): Add slp_vect_pattern_only_p.
3709 2021-02-02 Richard Biener <rguenther@suse.de>
3711 * gimple-loop-interchange.cc (prepare_data_references):
3713 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
3714 * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
3715 * tree-vect-stmts.c (vectorizable_condition): Do not
3717 (vectorizable_comparison): Likewise.
3719 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3721 * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
3722 * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
3723 * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
3724 (vrsqrteq_u32): Likewise.
3726 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3728 * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
3729 * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
3730 (aarch64_sqxtun2<mode>_be): Likewise.
3731 (aarch64_sqxtun2<mode>): Likewise.
3732 * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
3733 (vqmovun_high_s32): Likewise.
3734 (vqmovun_high_s64): Likewise.
3735 * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
3737 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3739 * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
3741 (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
3743 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3745 * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
3746 fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
3747 fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
3748 ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
3749 fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
3750 fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
3751 fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
3752 fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
3754 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3756 * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
3757 * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
3758 ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
3760 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3762 * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
3763 uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
3765 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3767 * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
3768 vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
3769 vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
3770 ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
3771 udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
3772 ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
3773 ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
3774 ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
3777 2021-02-02 Jakub Jelinek <jakub@redhat.com>
3779 PR tree-optimization/98848
3780 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
3781 STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
3783 2021-02-02 Kito Cheng <kito.cheng@sifive.com>
3786 * expr.c: Check mode before calling store_expr.
3788 2021-02-02 Christophe Lyon <christophe.lyon@linaro.org>
3790 * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
3792 * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
3793 instruction using expression ior.
3794 (mve_vornq_u<mode>): New expander.
3795 (mve_vornq_f<mode>): Use ior code instead of unspec.
3796 * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
3798 2021-02-02 Alexandre Oliva <oliva@adacore.com>
3800 * tree-nested.c (convert_nonlocal_reference_op): Move
3801 current_function_decl restore after re-gimplification.
3802 (convert_local_reference_op): Likewise.
3804 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3806 * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
3808 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
3810 (aarch64_rshrn<mode>_insn_be): Likewise.
3811 (aarch64_rshrn<mode>): Likewise.
3812 (aarch64_rshrn2<mode>_insn_le): Likewise.
3813 (aarch64_rshrn2<mode>_insn_be): Likewise.
3814 (aarch64_rshrn2<mode>): Likewise.
3815 * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
3816 * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
3818 (vrshrn_high_n_s32): Likewise.
3819 (vrshrn_high_n_s64): Likewise.
3820 (vrshrn_high_n_u16): Likewise.
3821 (vrshrn_high_n_u32): Likewise.
3822 (vrshrn_high_n_u64): Likewise.
3823 (vrshrn_n_s16): Likewise.
3824 (vrshrn_n_s32): Likewise.
3825 (vrshrn_n_s64): Likewise.
3826 (vrshrn_n_u16): Likewise.
3827 (vrshrn_n_u32): Likewise.
3828 (vrshrn_n_u64): Likewise.
3830 2021-02-01 Sergei Trofimovich <siarheit@google.com>
3832 PR tree-optimization/98499
3833 * ipa-modref.c (analyze_ssa_name_flags): treat RVO
3834 conservatively and assume all possible side-effects.
3836 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3838 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
3839 vec_unpacku_hi_): Define builtins.
3840 * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
3842 (vmovl_high_s16): Likewise.
3843 (vmovl_high_s32): Likewise.
3844 (vmovl_high_u8): Likewise.
3845 (vmovl_high_u16): Likewise.
3846 (vmovl_high_u32): Likewise.
3848 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3850 * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
3852 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
3854 * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
3856 * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
3858 (vabdl_s16): Likewise.
3859 (vabdl_s32): Likewise.
3860 (vabdl_u8): Likewise.
3861 (vabdl_u16): Likewise.
3862 (vabdl_u32): Likewise.
3863 * config/aarch64/iterators.md (ABDL): New int iterator.
3864 (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
3866 2021-02-01 Martin Sebor <msebor@redhat.com>
3868 * tree.h (BLOCK_VARS): Add comment.
3869 (BLOCK_SUBBLOCKS): Same.
3870 (BLOCK_SUPERCONTEXT): Same.
3871 (BLOCK_ABSTRACT_ORIGIN): Same.
3872 (inlined_function_outer_scope_p): Same.
3874 2021-02-01 Martin Sebor <msebor@redhat.com>
3877 * attribs.c (attr_access::free_lang_data): Define new function.
3878 * attribs.h (attr_access::free_lang_data): Declare new function.
3880 2021-02-01 Richard Biener <rguenther@suse.de>
3882 * vec.h (auto_vec::auto_vec): Add memory stat parameters
3884 * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
3886 2021-02-01 Tamar Christina <tamar.christina@arm.com>
3888 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
3889 aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
3891 2021-02-01 Richard Biener <rguenther@suse.de>
3893 PR rtl-optimization/98863
3894 * config/i386/i386-features.c (convert_scalars_to_vector):
3895 Set DF_RD_PRUNE_DEAD_DEFS.
3897 2021-01-31 Eric Botcazou <ebotcazou@adacore.com>
3899 * system.h (SIZE_MAX): Define if not already defined.
3901 2021-01-30 Aaron Sawdey <acsawdey@linux.ibm.com>
3903 * config/rs6000/genfusion.pl (gen_2logical): New function to
3904 generate patterns for logical-logical fusion.
3905 * config/rs6000/fusion.md: Regenerated patterns.
3906 * config/rs6000/rs6000-cpus.def: Add
3907 OPTION_MASK_P10_FUSION_2LOGICAL.
3908 * config/rs6000/rs6000.c (rs6000_option_override_internal):
3909 Enable logical-logical fusion for p10.
3910 * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
3912 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
3914 * config/rs6000/rs6000.opt: Add periods to new AIX options.
3916 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
3918 * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
3919 (mabi=vec-default): New.
3920 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3921 __EXTABI__ for AIX Vector extended ABI.
3922 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
3924 (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
3926 * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
3928 2021-01-30 Jakub Jelinek <jakub@redhat.com>
3930 * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
3931 DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
3933 2021-01-29 Vladimir N. Makarov <vmakarov@redhat.com>
3936 * lra-constraints.c (in_class_p): Don't narrow class only for REG
3939 2021-01-29 Will Schmidt <will_schmidt@vnet.ibm.com>
3941 * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
3942 clauses for CODE_FOR_vsx_xvcvuxddp_scale and
3943 CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
3945 2021-01-29 Andrew MacLeod <amacleod@redhat.com>
3947 PR tree-optimization/98866
3948 * gimple-range-gori.h (gori_compute:set_range_invariant): New.
3949 * gimple-range-gori.cc (gori_map::set_range_invariant): New.
3950 (gori_map::m_maybe_invariant): Rename from all_outgoing.
3951 (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
3952 (gori_map::is_export_p): Ditto.
3953 (gori_map::calculate_gori): Ditto.
3954 (gori_compute::set_range_invariant): New.
3955 * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
3956 invariant for pointers evaluating to [1, +INF].
3958 2021-01-29 Richard Biener <rguenther@suse.de>
3960 PR rtl-optimization/98863
3961 * config/i386/i386-features.c (remove_partial_avx_dependency):
3962 Do not perform DF analysis.
3963 (pass_data_remove_partial_avx_dependency): Remove
3966 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
3968 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
3969 builtin generator macros.
3970 * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
3972 * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
3973 instead of inline asm.
3974 (vmull_n_s32): Likewise.
3975 (vmull_n_u16): Likewise.
3976 (vmull_n_u32): Likewise.
3978 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3980 * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
3982 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
3984 (aarch64_<sur>abdl2<mode>): ... This.
3985 (<sur>sadv16qi): Adjust use of above.
3986 * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
3988 (vabdl_high_s16): Likewise.
3989 (vabdl_high_s32): Likewise.
3990 (vabdl_high_u8): Likewise.
3991 (vabdl_high_u16): Likewise.
3992 (vabdl_high_u32): Likewise.
3994 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3996 * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
3999 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
4001 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
4003 * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
4005 (vabal_high_s16): Likewise.
4006 (vabal_high_s32): Likewise.
4007 (vabal_high_u8): Likewise.
4008 (vabal_high_u16): Likewise.
4009 (vabal_high_u32): Likewise.
4010 * config/aarch64/iterators.md (ABAL2): New mode iterator.
4011 (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
4013 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4015 * config/aarch64/aarch64-simd-builtins.def (sabal): Define
4018 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
4020 (aarch64_<sur>abal<mode>): ... This
4021 (<sur>sadv16qi): Adust use of the above.
4022 * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
4024 (vabal_s16): Likewise.
4025 (vabal_s32): Likewise.
4026 (vabal_u8): Likewise.
4027 (vabal_u16): Likewise.
4028 (vabal_u32): Likewise.
4030 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4032 * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
4034 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
4036 * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
4038 (vaddlv_s16): Likewise.
4039 (vaddlv_u8): Likewise.
4040 (vaddlv_u16): Likewise.
4041 (vaddlvq_s8): Likewise.
4042 (vaddlvq_s16): Likewise.
4043 (vaddlvq_s32): Likewise.
4044 (vaddlvq_u8): Likewise.
4045 (vaddlvq_u16): Likewise.
4046 (vaddlvq_u32): Likewise.
4047 (vaddlv_s32): Likewise.
4048 (vaddlv_u32): Likewise.
4049 * config/aarch64/iterators.md (VDQV_L): New mode iterator.
4050 (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
4051 (Vwstype): New mode attribute.
4053 (VWIDE_S): Likewise.
4054 (USADDLV): New int iterator.
4055 (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
4057 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
4059 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
4060 builtin generator macros.
4061 * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
4063 * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
4064 instead of inline asm.
4065 (vmlsl_lane_s32): Likewise.
4066 (vmlsl_lane_u16): Likewise.
4067 (vmlsl_lane_u32): Likewise.
4068 (vmlsl_laneq_s16): Likewise.
4069 (vmlsl_laneq_s32): Likewise.
4070 (vmlsl_laneq_u16): Likewise.
4071 (vmlsl_laneq_u32): Likewise.
4073 2021-01-29 Richard Biener <rguenther@suse.de>
4075 * doc/invoke.texi (--param max-gcse-memory): Document unit
4077 * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
4078 * params.opt (--param max-gcse-memory): Adjust default and
4079 document unit of size.
4081 2021-01-29 Richard Biener <rguenther@suse.de>
4083 PR rtl-optimization/98863
4084 * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
4085 HOST_WIDE_INT for the memory estimate.
4087 2021-01-29 Bin Cheng <bin.cheng@linux.alibaba.com>
4088 Richard Biener <rguenther@suse.de>
4090 PR tree-optimization/97627
4091 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
4092 Do not analyze fake edges.
4094 2021-01-29 Richard Biener <rguenther@suse.de>
4096 PR rtl-optimization/98144
4097 * df.h (df_mir_bb_info): Add con_visited member.
4098 * df-problems.c (df_mir_alloc): Initialize con_visited,
4099 do not fully populate IN and OUT.
4100 (df_mir_reset): Likewise.
4101 (df_mir_confluence_0): Set con_visited.
4102 (df_mir_confluence_n): Properly handle implicitely
4103 fully populated IN and OUT as designated by con_visited
4104 and update con_visited accordingly.
4106 2021-01-29 Jakub Jelinek <jakub@redhat.com>
4109 * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
4110 vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
4111 && !TARGET_REALLY_IWMMXT to conditions.
4113 2021-01-29 Jakub Jelinek <jakub@redhat.com>
4116 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
4119 2021-01-28 Marek Polacek <polacek@redhat.com>
4122 * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
4123 the main variant, maybe reset it in its variants too.
4124 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
4125 (check_aligned_type): Check if TYPE_USER_ALIGN match.
4127 2021-01-28 Christophe Lyon <christophe.lyon@linaro.org>
4130 * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
4131 of constant zero for comparisons.
4133 2021-01-28 Michael Meissner <meissner@linux.ibm.com>
4135 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
4136 support for mapping built-in function names for long double
4137 built-in functions if long double is IEEE 128-bit.
4139 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
4141 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
4142 builtin generator macros.
4143 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
4145 * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
4146 instead of inline asm.
4147 (vmlsl_n_s32): Likewise.
4148 (vmlsl_n_u16): Likewise.
4149 (vmlsl_n_u32): Likewise.
4151 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
4153 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
4154 builtin generator macros.
4155 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
4157 * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
4158 instead of inline asm.
4159 (vmlal_n_s32): Likewise.
4160 (vmlal_n_u16): Likewise.
4161 (vmlal_n_u32): Likewise.
4163 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4165 * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
4167 * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
4169 (aarch64_shrn2<mode>_insn_be): Likewise.
4170 (aarch64_shrn2<mode>): Likewise.
4171 * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
4173 (vshrn_high_n_s32): Likewise.
4174 (vshrn_high_n_s64): Likewise.
4175 (vshrn_high_n_u16): Likewise.
4176 (vshrn_high_n_u32): Likewise.
4177 (vshrn_high_n_u64): Likewise.
4179 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4181 * config/aarch64/aarch64-simd-builtins.def (shrn): Define
4183 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
4185 (aarch64_shrn<mode>_insn_be): Likewise.
4186 (aarch64_shrn<mode>): Likewise.
4187 * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
4189 (vshrn_n_s32): Likewise.
4190 (vshrn_n_s64): Likewise.
4191 (vshrn_n_u16): Likewise.
4192 (vshrn_n_u32): Likewise.
4193 (vshrn_n_u64): Likewise.
4194 * config/aarch64/iterators.md (vn_mode): New mode attribute.
4196 2021-01-28 Richard Biener <rguenther@suse.de>
4198 PR rtl-optimization/80960
4199 * dse.c (check_mem_read_rtx): Call get_addr on the
4202 2021-01-28 Xionghu Luo <luoxhu@linux.ibm.com>
4203 David Edelsohn <dje.gcc@gmail.com>
4206 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4207 Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
4209 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
4211 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
4212 wrapper call rs6000_expand_vector_set_var for cleanup. Call
4213 rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
4215 (rs6000_expand_vector_set_var): Delete.
4216 (rs6000_expand_vector_set_var_p9): Make static.
4217 (rs6000_expand_vector_set_var_p8): Make static.
4219 2021-01-28 Xing GUO <higuoxing@gmail.com>
4221 * common/config/riscv/riscv-common.c
4222 (riscv_subset_list::parsing_subset_version): Fix -march option parsing
4223 when `p` extension exists.
4225 2021-01-27 Vladimir N. Makarov <vmakarov@redhat.com>
4227 PR rtl-optimization/97684
4228 * ira.c (ira): Call ira_set_pseudo_classes before
4229 update_equiv_regs when it is necessary.
4231 2021-01-27 Jakub Jelinek <jakub@redhat.com>
4234 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
4235 %w0, %w1 and %2 instead of %0, %1 and %2.
4237 2021-01-27 Aaron Sawdey <acsawdey@linux.ibm.com>
4239 * config/rs6000/genfusion.pl: New script to generate
4240 define_insn_and_split patterns so combine can arrange fused
4241 instructions next to each other.
4242 * config/rs6000/fusion.md: New file, generated fused instruction
4243 patterns for combine.
4244 * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
4245 (non_update_memory_operand): New predicate.
4246 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
4247 OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
4249 * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
4251 * config/rs6000/rs6000.c (rs6000_option_override_internal):
4252 Automatically set OPTION_MASK_P10_FUSION and
4253 OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
4254 (rs600_opt_masks): Allow -mpower10-fusion
4255 in function attributes.
4256 (address_is_non_pfx_d_or_x): New function.
4257 * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
4258 * config/rs6000/rs6000.md: Include fusion.md.
4259 * config/rs6000/rs6000.opt: Add -mpower10-fusion
4260 and -mpower10-fusion-ld-cmpi.
4261 * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
4263 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
4265 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
4266 builtin generator macros.
4267 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
4269 (aarch64_<su>mlal<mode>): This.
4270 * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
4271 instead of inline asm.
4272 (vmlal_s16): Likewise.
4273 (vmlal_s32): Likewise.
4274 (vmlal_u8): Likewise.
4275 (vmlal_u16): Likewise.
4276 (vmlal_u32): Likewise.
4278 2021-01-27 Richard Biener <rguenther@suse.de>
4280 PR tree-optimization/98854
4281 * tree-vect-slp.c (vect_build_slp_tree_2): Also build
4282 PHIs from scalars when the number of CTORs matches the
4285 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
4287 * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
4289 * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
4291 (aarch64_mls_n<mode>): This.
4292 * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
4294 (vmls_n_s32): Likewise.
4295 (vmls_n_u16): Likewise.
4296 (vmls_n_u32): Likewise.
4297 (vmlsq_n_s16): Likewise.
4298 (vmlsq_n_s32): Likewise.
4299 (vmlsq_n_u16): Likewise.
4300 (vmlsq_n_u32): Likewise.
4302 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
4304 * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
4306 * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
4308 (vmls_s16): Likewise.
4309 (vmls_s32): Likewise.
4310 (vmls_u8): Likewise.
4311 (vmls_u16): Likewise.
4312 (vmls_u32): Likewise.
4313 (vmlsq_s8): Likewise.
4314 (vmlsq_s16): Likewise.
4315 (vmlsq_s32): Likewise.
4316 (vmlsq_u8): Likewise.
4317 (vmlsq_u16): Likewise.
4318 (vmlsq_u32): Likewise.
4320 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
4322 * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
4324 * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
4326 (aarch64_mla_n<mode>): This.
4327 * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
4329 (vmla_n_s32): Likewise.
4330 (vmla_n_u16): Likewise.
4331 (vmla_n_u32): Likewise.
4332 (vmlaq_n_s16): Likewise.
4333 (vmlaq_n_s32): Likewise.
4334 (vmlaq_n_u16): Likewise.
4335 (vmlaq_n_u32): Likewise.
4337 2021-01-27 liuhongt <hongtao.liu@intel.com>
4340 * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
4341 (*sse2_eq<mode>3): Ditto.
4343 2021-01-27 Jakub Jelinek <jakub@redhat.com>
4345 * tree-pass.h (PROP_trees): Rename to ...
4346 (PROP_gimple): ... this.
4347 * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
4348 * passes.c (execute_function_dump, execute_function_todo,
4349 execute_one_ipa_transform_pass, execute_one_pass): Likewise.
4350 * varpool.c (ctor_for_folding): Likewise.
4352 2021-01-27 Jakub Jelinek <jakub@redhat.com>
4354 PR tree-optimization/97260
4355 * varpool.c: Include tree-pass.h.
4356 (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
4357 non-TREE_SIDE_EFFECTS automatic variables.
4359 2021-01-26 Paul Fee <paul.f.fee@gmail.com>
4361 * doc/cpp.texi (__cplusplus): Document value for -std=c++23
4363 * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
4364 * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
4365 (gen_compile_unit_die): Recognise C++23.
4367 2021-01-26 Jakub Jelinek <jakub@redhat.com>
4370 * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
4373 2021-01-26 Jakub Jelinek <jakub@redhat.com>
4376 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
4377 Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
4378 and INTVAL (mask). Add && INTVAL (mask) > 0 condition.
4380 2021-01-26 Richard Biener <rguenther@suse.de>
4382 * gimple-pretty-print.c (dump_binary_rhs): Handle
4383 VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
4385 2021-01-26 Richard Biener <rguenther@suse.de>
4388 * tree.h (vector_cst_int_elt): Remove.
4389 * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
4392 2021-01-26 Andrew Stubbs <ams@codesourcery.com>
4394 * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
4395 for V64DFmode min/max reductions.
4397 2021-01-26 Jakub Jelinek <jakub@redhat.com>
4399 * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
4400 as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
4401 two halves, one with x and the other with const0_rtx, ordered
4402 depending on endianity.
4404 2021-01-26 Alexandre Oliva <oliva@adacore.com>
4406 * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
4407 temporaries not seen in binding block, and not about to be
4408 added as gimple variables.
4410 2021-01-25 Martin Sebor <msebor@redhat.com>
4413 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
4415 2021-01-25 Martin Liska <mliska@suse.cz>
4417 * value-prof.c (get_nth_most_common_value): Use %s instead
4420 2021-01-25 Jakub Jelinek <jakub@redhat.com>
4423 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
4424 readelf -wi is able to read the emitted .debug_info back.
4425 * configure: Regenerated.
4427 2021-01-25 Martin Liska <mliska@suse.cz>
4429 PR gcov-profile/98739
4430 * common.opt: Add missing sign symbol.
4431 * value-prof.c (get_nth_most_common_value): Restore handling
4432 of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
4433 PROFILE_REPRODUCIBILITY_MULTITHREADED.
4435 2021-01-25 Richard Biener <rguenther@suse.de>
4438 * tree.c (vector_element_bits): Always use precision of
4439 the element type for boolean vectors.
4441 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
4443 * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
4444 (ENDFILE_SPEC): Evaluate qnolinkcmds.
4446 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
4448 * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
4449 nostartfiles handling since this is already done by
4450 LINK_COMMAND_SPEC. Evaluate qnolinkcmds.
4451 (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
4452 is already done by LINK_COMMAND_SPEC.
4453 (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
4454 this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds
4457 2021-01-25 Jakub Jelinek <jakub@redhat.com>
4460 * fold-const-call.c (host_size_t_cst_p): Renamed to ...
4461 (size_t_cst_p): ... this. Check and store unsigned HOST_WIDE_INT
4462 value rather than host size_t.
4463 (fold_const_call): Change type of s2 from size_t to
4464 unsigned HOST_WIDE_INT. Use size_t_cst_p instead of
4465 host_size_t_cst_p. For strncmp calls, pass MIN (s2, SIZE_MAX)
4466 instead of s2 as last argument.
4468 2021-01-25 Tamar Christina <tamar.christina@arm.com>
4470 * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
4471 VCMLA_OP, VCMUL_OP): New.
4472 * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
4473 * config/arm/neon.md (cmul<conj_op><mode>3): New.
4474 * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
4475 UNSPEC_VCMUL_CONJ): New.
4476 * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
4477 cml<fcmac1><conj_op><mode>4): New.
4479 2021-01-23 Jakub Jelinek <jakub@redhat.com>
4482 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
4484 2021-01-22 Jonathan Wright <jonathan.wright@arm.com>
4486 * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
4488 * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
4490 (vmla_s16): Likewise.
4491 (vmla_s32): Likewise.
4492 (vmla_u8): Likewise.
4493 (vmla_u16): Likewise.
4494 (vmla_u32): Likewise.
4495 (vmlaq_s8): Likewise.
4496 (vmlaq_s16): Likewise.
4497 (vmlaq_s32): Likewise.
4498 (vmlaq_u8): Likewise.
4499 (vmlaq_u16): Likewise.
4500 (vmlaq_u32): Likewise.
4502 2021-01-22 David Malcolm <dmalcolm@redhat.com>
4504 * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
4507 2021-01-22 Jakub Jelinek <jakub@redhat.com>
4510 * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
4511 filenames to emit, still emit the required 0 index directory and
4512 filename entries that match DW_AT_comp_dir and DW_AT_name of the
4515 2021-01-22 Marek Polacek <polacek@redhat.com>
4518 * doc/invoke.texi: Update C++ ABI Version 15 description.
4520 2021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4522 PR tree-optimization/98766
4523 * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
4524 comparing against type size with param_avoid_fma_max_bits.
4526 2021-01-22 Richard Biener <rguenther@suse.de>
4529 * tree.c (vector_element_bits): Key single-bit bool vector on
4530 integer mode rather than not vector mode.
4532 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
4535 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4536 Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
4538 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
4539 to call different path for P8 and P9.
4540 (rs6000_expand_vector_set_var_p9): New function.
4541 (rs6000_expand_vector_set_var_p8): New function.
4543 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
4547 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4548 Ajdust variable index vec_insert from address dereference to
4549 ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
4550 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
4552 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
4554 2021-01-22 Martin Liska <mliska@suse.cz>
4556 PR gcov-profile/98739
4557 * profile.c (compute_value_histograms): Drop time profile for
4558 -fprofile-reproducible=multithreaded.
4560 2021-01-22 Nathan Sidwell <nathan@acm.org>
4562 * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
4565 2021-01-22 Richard Biener <rguenther@suse.de>
4568 * tree-data-ref.c (initalize_matrix_A): Revert previous
4569 change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
4571 2021-01-22 Jakub Jelinek <jakub@redhat.com>
4573 PR tree-optimization/90248
4574 * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
4575 X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
4577 (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
4578 X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
4580 2021-01-22 Jakub Jelinek <jakub@redhat.com>
4582 PR tree-optimization/98255
4583 * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
4584 extend index - low_bound from sizetype's precision rather than index
4586 (get_addr_base_and_unit_offset_1): Likewise.
4587 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
4588 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
4590 2021-01-22 Richard Biener <rguenther@suse.de>
4592 PR tree-optimization/98786
4593 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
4594 adding new uses of abnormals. Verify we deal with a conditional
4597 2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4600 * optc-save-gen.awk: Add arm_fp16_format to checked_options.
4602 2021-01-22 liuhongt <hongtao.liu@intel.com>
4606 * config/i386/sse.md (VI_128_256): New mode iterator.
4607 (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
4608 *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
4609 *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
4610 define_insn_and_split to lower avx512 vector comparison to avx
4611 version when dest is vector.
4612 (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
4613 define_insn_and_split for negating the comparison result.
4614 * config/i386/predicates.md (float_vector_all_ones_operand):
4616 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
4617 general NOT operator without UNSPEC_MASKOP.
4619 2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
4621 PR rtl-optimization/98777
4622 * lra-int.h (lra_pmode_pseudo): New extern.
4623 * lra.c (lra_pmode_pseudo): New global.
4625 * lra-eliminations.c (eliminate_regs_in_insn): Use it.
4627 2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com>
4629 * fwprop.c (fwprop_propagation::classify_result): Allow
4630 (subreg (mem)) simplifications.
4632 2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4634 * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
4636 (aarch64_sqdmlal<mode>): ... This...
4637 (aarch64_sqdmlsl<mode>): ... And this.
4638 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
4639 (aarch64_sqdmlal_lane<mode>): ... This...
4640 (aarch64_sqdmlsl_lane<mode>): ... And this.
4641 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
4642 (aarch64_sqdmlsl_laneq<mode>): ... This...
4643 (aarch64_sqdmlal_laneq<mode>): ... And this.
4644 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
4645 (aarch64_sqdmlsl_n<mode>): ... This...
4646 (aarch64_sqdmlal_n<mode>): ... And this.
4647 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
4648 (aarch64_sqdmlal2<mode>_internal): ... This...
4649 (aarch64_sqdmlsl2<mode>_internal): ... And this.
4651 2021-01-21 Christophe Lyon <christophe.lyon@linaro.org>
4653 * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
4655 2021-01-21 Andrea Corallo <andrea.corallo@arm.com>
4658 * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
4660 2021-01-21 liuhongt <hongtao.liu@intel.com>
4662 PR rtl-optimization/98694
4663 * regcprop.c (copy_value): If SRC had been assigned a mode
4664 narrower than the copy, we can't link DEST into the chain even
4665 they have same hard_regno_nregs(i.e. HImode/SImode in i386
4668 2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4670 * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
4671 Convert to define_insn_and_split. Split into simple move when moving
4674 2021-01-20 Segher Boessenkool <segher@kernel.crashing.org>
4676 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
4677 Adjust comment. Simplify code.
4679 2021-01-20 Jakub Jelinek <jakub@redhat.com>
4682 * dwarf2out.c (reset_indirect_string): Also reset indirect strings
4683 with DW_FORM_line_strp form.
4684 (prune_unused_types_update_strings): Don't add into debug_str_hash
4685 indirect strings with DW_FORM_line_strp form.
4686 (adjust_name_comp_dir): New function.
4687 (dwarf2out_finish): Call it on CU DIEs after resetting
4688 debug_line_str_hash.
4690 2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
4692 PR rtl-optimization/98722
4693 * lra-eliminations.c (eliminate_regs_in_insn): Check that target
4694 has no 3-op add insn to transform insns containing two pluses.
4696 2021-01-20 Richard Biener <rguenther@suse.de>
4698 * hwint.h (add_hwi): New function.
4699 (mul_hwi): Likewise.
4700 * tree-data-ref.c (initialize_matrix_A): Properly translate
4701 tree constants and avoid HOST_WIDE_INT_MIN.
4702 (lambda_matrix_row_add): Avoid undefined integer overflow
4703 and return true on such overflow.
4704 (lambda_matrix_right_hermite): Handle overflow from
4705 lambda_matrix_row_add gracefully. Simplify previous fix.
4706 (analyze_subscript_affine_affine): Likewise.
4708 2021-01-20 Eugene Rozenfeld <erozen@microsoft.com>
4710 PR tree-optimization/96674
4711 * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
4712 x >= y && y != XXX_MIN --> x > y - 1
4714 2021-01-20 Richard Sandiford <richard.sandiford@arm.com>
4716 PR tree-optimization/98535
4717 * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
4718 If the high and low permutes are the same, remove the high permutes
4719 from the working set and only continue with the low ones.
4721 2021-01-20 Jakub Jelinek <jakub@redhat.com>
4723 PR tree-optimization/98721
4724 * builtins.c (access_ref::inform_access): Don't assume
4725 SSA_NAME_IDENTIFIER must be non-NULL. Print messages about
4726 object whenever allocfn is NULL, rather than only when DECL_P
4727 is true. Use %qE instead of %qD for that. Formatting fixes.
4729 2021-01-20 Richard Biener <rguenther@suse.de>
4731 PR tree-optimization/98758
4732 * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
4733 (lambda_matrix_right_hermite): Avoid undefinedness with
4734 signed integer abs and multiplication.
4735 (analyze_subscript_affine_affine): Use lambda_int.
4737 2021-01-20 David Malcolm <dmalcolm@redhat.com>
4740 * dwarf2out.c (output_line_info): Rename static variable
4741 "generation", moving it out of the function to...
4742 (output_line_info_generation): New.
4743 (init_sections_and_labels): Likewise, renaming the variable to...
4744 (init_sections_and_labels_generation): New.
4745 (dwarf2out_c_finalize): Reset the new variables.
4747 2021-01-19 Martin Sebor <msebor@redhat.com>
4750 * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
4751 all functions, even if they're not declared artificial or inline.
4752 * tree.c (tree_inlined_location): Use macro expansion location
4753 only if scope traversal fails to expose one.
4755 2021-01-19 Richard Sandiford <richard.sandiford@arm.com>
4757 PR rtl-optimization/92294
4758 * alias.c (compare_base_symbol_refs): Take an extra parameter
4759 and add the distance between two symbols to it. Enshrine in
4760 comments that -1 means "either 0 or 1, but we can't tell
4761 which at compile time".
4762 (memrefs_conflict_p): Update call accordingly.
4763 (rtx_equal_for_memref_p): Likewise. Take the distance between symbols
4766 2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4768 * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
4769 sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
4770 uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
4771 sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
4772 sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
4773 sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
4774 sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
4775 sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
4776 sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
4777 uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
4778 sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
4779 sqmovun): Use NONE flags.
4781 2021-01-19 Richard Biener <rguenther@suse.de>
4784 * ipa-modref.c (analyze_stmt): Only record a summary for a
4787 2021-01-19 Richard Biener <rguenther@suse.de>
4790 * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
4792 2021-01-19 Daniel Hellstrom <daniel@gaisler.com>
4794 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
4795 built-in define __FIX_LEON3FT_TN0018.
4797 2021-01-19 Richard Biener <rguenther@suse.de>
4800 * tree-inline.c (tree_function_versioning): Set input_location
4801 to UNKNOWN_LOCATION throughout the function.
4803 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
4806 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
4808 2021-01-19 Martin Jambor <mjambor@suse.cz>
4811 * ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check
4812 whether non-call exceptions allow removal of a statement.
4813 (isra_analyze_call): Pass the appropriate function to
4814 ssa_name_only_returned_p.
4816 2021-01-19 Geng Qi <gengqi@linux.alibaba.com>
4818 * config/riscv/arch-canonicalize (longext_sort): New function for
4819 sorting 'multi-letter'.
4820 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
4821 'alts'. The 'arch' may not be the first of 'alts'.
4822 (_expand_combination): Add underline for the 'ext' without '*'.
4823 This is because, a single-letter extension can always be treated well
4824 with a '_' prefix, but it cannot be separated out if it is appended
4827 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
4830 * ira.c (ira): Skip abnormal critical edge splitting.
4832 2021-01-18 Jakub Jelinek <jakub@redhat.com>
4834 PR tree-optimization/98727
4835 * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
4836 second .MUL_OVERFLOW operand for signed multiplication with overflow
4837 checking if the second operand of multiplication is not constant.
4839 2021-01-18 David Edelsohn <dje.gcc@gmail.com>
4841 * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
4842 defaults to version 4.
4844 2021-01-18 David Malcolm <dmalcolm@redhat.com>
4846 * attribs.h (fndecl_dealloc_argno): New decl.
4847 * builtins.c (call_dealloc_argno): Split out second half of
4849 (fndecl_dealloc_argno): New.
4850 * doc/extend.texi (Common Function Attributes): Document the
4851 interaction between the analyzer and the malloc attribute.
4852 * doc/invoke.texi (Static Analyzer Options): Likewise.
4854 2021-01-17 David Edelsohn <dje.gcc@gmail.com>
4856 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
4858 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4860 2021-01-17 Martin Jambor <mjambor@suse.cz>
4863 * cgraph.c (clone_of_p): Check also former_clone_of as we climb
4866 2021-01-17 Mark Wielaard <mark@klomp.org>
4868 * common.opt (gdwarf-): Init(5).
4869 * doc/invoke.texi (-gdwarf): Document default to 5.
4871 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
4874 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
4876 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
4877 ...this. Add extra argument.
4878 * gimplify.c (omp_default_clause): Ensure that event handle is
4879 firstprivate in a task region.
4880 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
4881 (gimplify_adjust_omp_clauses): Likewise.
4882 * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
4883 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
4884 * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
4885 if detach clause specified. Add detach argument when generating
4887 * omp-low.c (scan_sharing_clauses): Setup data environment for detach
4889 (finish_taskreg_scan): Move field for variable containing the event
4890 handle to the front of the struct.
4891 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix
4893 * tree-nested.c (convert_nonlocal_omp_clauses): Handle
4894 OMP_CLAUSE_DETACH clause.
4895 (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
4896 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
4897 * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
4899 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
4901 (walk_tree_1): Handle OMP_CLAUSE_DETACH.
4903 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
4905 * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten
4906 multilib directory names. Use MULTILIB_REQUIRED instead of
4907 MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div
4908 -mcustom-fpu-cfg=fph2 multilib.
4910 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
4912 * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
4913 (nios2_init_fpu_configs): Provide register values for new
4914 -mcustom-fpu-cfg=fph2 option variant.
4915 * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
4918 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
4920 * config/nios2/nios2.c (nios2_custom_check_insns): Remove
4921 custom instruction warnings.
4923 2021-01-16 Jakub Jelinek <jakub@redhat.com>
4925 PR tree-optimization/96669
4926 * match.pd ((CST << x) & 1 -> x == 0): New simplification.
4928 2021-01-16 Jakub Jelinek <jakub@redhat.com>
4930 PR tree-optimization/96271
4931 * passes.def: Pass false argument to first two pass_cd_dce
4932 instances and true to last instance. Add comment that
4933 last instance rewrites no longer addressed locals.
4934 * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
4936 (pass_cd_dce::set_pass_param): New method.
4937 (pass_cd_dce::execute): Return TODO_update_address_taken from
4938 last cd_dce instance.
4940 2021-01-15 Carl Love <cel@us.ibm.com>
4942 * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
4944 * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
4945 * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
4946 DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
4947 DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
4948 MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
4950 (MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions.
4951 * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
4952 VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
4953 New overloaded definitions.
4954 (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
4955 P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
4956 P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
4957 P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
4958 P10V_BUILTIN_MULHU_V4SI]: Add case
4959 statement for builtins.
4960 * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
4961 * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
4962 (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
4963 (vsx_mul_v2di): Add if TARGET_POWER10 statement.
4964 (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
4965 (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
4966 mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
4967 Add define_insn, mode is VIlong.
4968 * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
4969 Add builtin descriptions.
4971 2021-01-15 Eric Botcazou <ebotcazou@adacore.com>
4973 * final.c (final_start_function_1): Reset force_source_line.
4975 2021-01-15 Jakub Jelinek <jakub@redhat.com>
4977 PR tree-optimization/96669
4978 * match.pd (((1 << A) & 1) != 0 -> A == 0,
4979 ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
4980 possibly different power of two constants and to right shift too.
4982 2021-01-15 Jakub Jelinek <jakub@redhat.com>
4984 PR tree-optimization/96681
4985 * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
4986 ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
4987 ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
4988 ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
4990 2021-01-15 Alexandre Oliva <oliva@adacore.com>
4992 * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
4994 2021-01-15 Tamar Christina <tamar.christina@arm.com>
4996 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
4997 cmul<conj_op><mode>3): New.
4998 * config/aarch64/iterators.md (UNSPEC_FCMUL,
4999 UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
5000 UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
5001 FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
5002 sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
5003 (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
5004 (rot_op): Renamed to conj_op.
5005 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
5006 cmul<conj_op><mode>3): New.
5007 * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
5008 cmul<conj_op><mode>3): New.
5010 2021-01-15 David Malcolm <dmalcolm@redhat.com>
5014 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
5015 Escape the tempfile name when constructing the expected output.
5017 2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5019 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
5021 (aarch64_<su>mlsl_hi<mode>): ... This.
5022 (aarch64_<su>mlsl_hi<mode>): Define.
5023 (*aarch64_<su>mlsl<mode): Rename to...
5024 (aarch64_<su>mlsl<mode): ... This.
5025 * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
5026 smlsl_hi, umlsl_hi): Define builtins.
5027 * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
5028 vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
5029 vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
5030 vmlsl_u16, vmlsl_u32): Reimplement with builtins.
5032 2021-01-15 Uroš Bizjak <ubizjak@gmail.com>
5034 * config/i386/i386-c.c (ix86_target_macros):
5035 Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
5037 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
5040 * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
5041 * Makefile.in (RTL_SSA_H): New variable.
5042 * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
5043 * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
5044 * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
5046 * config/aarch64/aarch64-cc-fusion.cc: New file.
5048 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
5050 * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
5051 calling cancel_changes for changes that no longer exist.
5053 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
5055 * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
5056 (function_info::reg_defs): ...this.
5057 * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
5058 (function_info::reg_defs): ...this.
5060 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
5063 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
5065 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
5068 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
5071 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
5073 2021-01-15 Richard Biener <rguenther@suse.de>
5075 PR tree-optimization/96376
5076 * tree-vect-stmts.c (get_load_store_type): Disregard alignment
5079 2021-01-15 Martin Liska <mliska@suse.cz>
5081 * doc/install.texi: Document that some tests need pytest module.
5082 * doc/sourcebuild.texi: Likewise.
5084 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
5087 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
5089 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
5091 * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
5092 (mve_vshrq_n_u<mode>_imm): Likewise.
5093 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
5094 * config/arm/vec-common.md: ... here.
5096 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
5098 * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
5100 * config/arm/neon.md (vashl<mode>3): Delete.
5101 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
5102 (vasl<mode>3): New expander.
5104 2021-01-15 Richard Biener <rguenther@suse.de>
5106 PR tree-optimization/98685
5107 * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
5108 of vector extern defs.
5110 2021-01-14 David Malcolm <dmalcolm@redhat.com>
5113 * diagnostic.c (diagnostic_kind_text): Break out this array
5115 (diagnostic_build_prefix): ...here.
5116 (fancy_abort): Detect when diagnostic_initialize has not yet been
5117 called and fall back to a minimal implementation of printing the
5118 ICE, rather than segfaulting in internal_error.
5120 2021-01-14 David Malcolm <dmalcolm@redhat.com>
5122 * diagnostic.c (diagnostic_initialize): Eliminate
5123 parseable_fixits_p in favor of initializing extra_output_kind from
5124 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
5125 (convert_column_unit): New function, split out from...
5126 (diagnostic_converted_column): ...this.
5127 (print_parseable_fixits): Add "column_unit" and "tabstop" params.
5128 Use them to call convert_column_unit on the column values.
5129 (diagnostic_report_diagnostic): Eliminate conditional on
5130 parseable_fixits_p in favor of a switch statement on
5131 extra_output_kind, passing the appropriate values to the new
5132 params of print_parseable_fixits.
5133 (selftest::test_print_parseable_fixits_none): Update for new
5134 params of print_parseable_fixits.
5135 (selftest::test_print_parseable_fixits_insert): Likewise.
5136 (selftest::test_print_parseable_fixits_remove): Likewise.
5137 (selftest::test_print_parseable_fixits_replace): Likewise.
5138 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
5140 (selftest::diagnostic_c_tests): Call it.
5141 * diagnostic.h (enum diagnostics_extra_output_kind): New.
5142 (diagnostic_context::parseable_fixits_p): Delete field in favor
5144 (diagnostic_context::extra_output_kind): ...this new field.
5145 * doc/invoke.texi (Environment Variables): Add
5146 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
5147 * opts.c (common_handle_option): Update handling of
5148 OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
5151 2021-01-14 Tamar Christina <tamar.christina@arm.com>
5153 * tree-vect-slp-patterns.c (class complex_operations_pattern,
5154 complex_operations_pattern::matches,
5155 complex_operations_pattern::recognize,
5156 complex_operations_pattern::build): New.
5157 (slp_patterns): Use it.
5159 2021-01-14 Tamar Christina <tamar.christina@arm.com>
5161 * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
5162 * optabs.def (cmls_optab, cmls_conj_optab): New.
5163 * doc/md.texi: Document them.
5164 * tree-vect-slp-patterns.c (class complex_fms_pattern,
5165 complex_fms_pattern::matches, complex_fms_pattern::recognize,
5166 complex_fms_pattern::build): New.
5168 2021-01-14 Tamar Christina <tamar.christina@arm.com>
5170 * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
5171 * optabs.def (cmla_optab, cmla_conj_optab): New.
5172 * doc/md.texi: Document them.
5173 * tree-vect-slp-patterns.c (vect_match_call_p,
5174 class complex_fma_pattern, vect_slp_reset_pattern,
5175 complex_fma_pattern::matches, complex_fma_pattern::recognize,
5176 complex_fma_pattern::build): New.
5178 2021-01-14 Tamar Christina <tamar.christina@arm.com>
5180 * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
5181 * optabs.def (cmul_optab, cmul_conj_optab): New.
5182 * doc/md.texi: Document them.
5183 * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
5184 vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
5185 vect_build_combine_node, class complex_mul_pattern,
5186 complex_mul_pattern::matches, complex_mul_pattern::recognize,
5187 complex_mul_pattern::build): New.
5189 2021-01-14 Tamar Christina <tamar.christina@arm.com>
5191 * tree-vect-slp.c (optimize_load_redistribution_1): New.
5192 (optimize_load_redistribution, vect_is_slp_load_node): New.
5193 (vect_match_slp_patterns): Use it.
5195 2021-01-14 Tamar Christina <tamar.christina@arm.com>
5197 * tree-vect-slp-patterns.c (complex_add_pattern::build):
5200 2021-01-14 Thomas Schwinge <thomas@codesourcery.com>
5202 * config/gcn/mkoffload.c (main): Create an offload image only in
5203 64-bit configurations.
5205 2021-01-14 H.J. Lu <hjl.tools@gmail.com>
5208 * config/i386/i386-options.c (ix86_option_override_internal):
5209 Issue an error for -fcf-protection with CF_BRANCH when compiling
5210 for 32-bit non-TARGET_CMOV targets.
5212 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
5215 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
5216 Remove declaration and initialization of shadow variable "ret".
5217 (ix86_option_override_internal): Remove delcaration of
5218 shadow variable "i". Redeclare shadowed variable to unsigned.
5219 * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
5220 * config/i386/i386-builtins.c (get_builtin_code_for_version):
5221 Update for redeclaration.
5222 * config/i386/i386.h (pta_size): Ditto.
5224 2021-01-14 Richard Biener <rguenther@suse.de>
5226 PR tree-optimization/98674
5227 * tree-data-ref.c (base_supports_access_fn_components_p): New.
5228 (initialize_data_dependence_relation): For two bases without
5229 possible access fns resort to type size equality when determining
5230 shape compatibility.
5232 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5235 * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
5236 <=, >= operators in vcle and vcge intrinsics respectively.
5237 * config/arm/arm_neon_builtins.def: Remove entry for
5240 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
5243 * config/i386/i386-options.c (ix86_function_specific_save):
5244 Remove redundant assignment to opts->x_ix86_branch_cost.
5245 * config/i386/i386.c (ix86_prefetch_sse):
5246 Rename from x86_prefetch_sse. Update all uses.
5247 * config/i386/i386.h: Update for rename.
5248 * config/i386/i386-options.h: Ditto.
5250 2021-01-14 Jakub Jelinek <jakub@redhat.com>
5253 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
5254 *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
5255 Use Bm instead of m for non-avx. Add isa attribute.
5257 2021-01-14 Jakub Jelinek <jakub@redhat.com>
5259 PR tree-optimization/96688
5260 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
5261 ~X can be simplified.
5263 2021-01-14 Richard Sandiford <richard.sandiford@arm.com>
5265 * tree-vect-stmts.c (vect_model_load_cost): Account for unused
5266 IFN_LOAD_LANES results.
5268 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5270 * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
5272 (aarch64_xtn<mode>): Likewise.
5273 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
5276 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
5278 (vmovl_s16): Likewise.
5279 (vmovl_s32): Likewise.
5280 (vmovl_u8): Likewise.
5281 (vmovl_u16): Likewise.
5282 (vmovl_u32): Likewise.
5283 (vmovn_s16): Likewise.
5284 (vmovn_s32): Likewise.
5285 (vmovn_s64): Likewise.
5286 (vmovn_u16): Likewise.
5287 (vmovn_u32): Likewise.
5288 (vmovn_u64): Likewise.
5290 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5292 * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
5294 (aarch64_<su>qxtn2<mode>_be): Likewise.
5295 (aarch64_<su>qxtn2<mode>): Likewise.
5296 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
5298 * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
5299 (su): Handle ss_truncate and us_truncate.
5300 * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
5302 (vqmovn_high_s32): Likewise.
5303 (vqmovn_high_s64): Likewise.
5304 (vqmovn_high_u16): Likewise.
5305 (vqmovn_high_u32): Likewise.
5306 (vqmovn_high_u64): Likewise.
5308 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5310 * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
5312 (aarch64_xtn2<mode>_be): Likewise.
5313 (aarch64_xtn2<mode>): Likewise.
5314 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
5316 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
5318 (vmovn_high_s32): Likewise.
5319 (vmovn_high_s64): Likewise.
5320 (vmovn_high_u16): Likewise.
5321 (vmovn_high_u32): Likewise.
5322 (vmovn_high_u64): Likewise.
5324 2021-01-13 Stafford Horne <shorne@gmail.com>
5326 * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
5328 2021-01-13 Stafford Horne <shorne@gmail.com>
5330 * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
5332 2021-01-13 Stafford Horne <shorne@gmail.com>
5334 * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
5335 define for __or1k_hard_float__.
5337 2021-01-13 Stafford Horne <shorne@gmail.com>
5339 * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
5340 (PROFILE_HOOK): Define to call _mcount.
5341 (FUNCTION_PROFILER): Change from abort to no-op.
5343 2021-01-13 Jakub Jelinek <jakub@redhat.com>
5345 PR tree-optimization/96691
5346 * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
5347 (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
5348 (~D ^ C) or (D ^ C) can be simplified.
5350 2021-01-13 Richard Biener <rguenther@suse.de>
5352 PR tree-optimization/92645
5353 * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
5354 until after vector lowering.
5356 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
5358 * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
5360 (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
5361 (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
5363 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
5365 * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
5367 (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
5368 (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
5370 2021-01-13 Richard Biener <rguenther@suse.de>
5372 PR tree-optimization/92645
5373 * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
5374 BIT_FIELD_REF argument.
5375 (vect_build_slp_tree_2): Record the desired vector type
5376 on the external vector def.
5377 (vectorizable_slp_permutation): Handle required punning
5378 of existing vector defs.
5380 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
5382 * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
5384 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
5386 * config/sh/sh.md (movsf_ie): Remove operands[2] test.
5388 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
5390 * config.gcc [$target == *-*-gnu*]: Enable
5391 'default_gnu_indirect_function'.
5393 2021-01-13 Jakub Jelinek <jakub@redhat.com>
5396 * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
5397 registers before calling targetm.vectorize.vec_perm_const, only after
5399 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
5400 two argument permutation when one operand is zero vector and only
5401 after that force operands into registers.
5402 * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
5403 define_insn_and_split pattern.
5404 (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
5405 (*avx512f_zero_extendv16hiv16si2_1): Likewise.
5406 (*avx2_zero_extendv8hiv8si2_1): Likewise.
5407 (*avx512f_zero_extendv8siv8di2_1): Likewise.
5408 (*avx2_zero_extendv4siv4di2_1): Likewise.
5409 * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
5411 * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
5412 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
5413 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
5414 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
5415 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
5416 * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap.
5418 2021-01-13 Martin Liska <mliska@suse.cz>
5420 PR tree-optimization/98455
5421 * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
5422 Record also virtual PHIs.
5423 (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
5426 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
5428 * doc/invoke.texi (C++ Modules): Fix typos.
5430 2021-01-13 Richard Biener <rguenther@suse.de>
5432 PR tree-optimization/98640
5433 * tree-ssa-sccvn.c (visit_nary_op): Do not try to
5434 handle plus or minus from a truncated operand to be
5437 2021-01-13 Jakub Jelinek <jakub@redhat.com>
5440 * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
5441 define_insn_and_split patterns.
5442 (splitter after *btr<mode>_2): New splitter.
5444 2021-01-13 Martin Liska <mliska@suse.cz>
5447 * cgraphunit.c (analyze_functions): Remove dead code.
5449 2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com>
5451 * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
5452 * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
5453 (a64fx_regmove_cost, a64fx_vector_cost): New.
5454 (a64fx_tunings): Use the new added cost tables.
5456 2021-01-13 Jakub Jelinek <jakub@redhat.com>
5459 * config/i386/predicates.md (pmovzx_parallel): New predicate.
5460 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
5461 define_insn_and_split pattern.
5462 (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
5463 (*sse4_1_zero_extendv2siv2di2_3): Likewise.
5465 2021-01-13 Julian Brown <julian@codesourcery.com>
5467 * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
5470 2021-01-13 Julian Brown <julian@codesourcery.com>
5472 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
5475 2021-01-13 Julian Brown <julian@codesourcery.com>
5477 * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
5478 for reciprocal-approximation instructions.
5479 (div<mode>3): Use fused multiply-accumulate operations for reciprocal
5480 refinement and division result.
5481 * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
5483 2021-01-13 Julian Brown <julian@codesourcery.com>
5485 * config/gcn/gcn-valu.md (subdf): Rename to...
5488 2021-01-12 Martin Liska <mliska@suse.cz>
5490 * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
5492 2021-01-12 Andrea Corallo <andrea.corallo@arm.com>
5494 * function-abi.h: Fix typo.
5496 2021-01-12 Christophe Lyon <christophe.lyon@linaro.org>
5500 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
5501 (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
5502 (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
5503 (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
5504 (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
5505 (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
5506 (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
5507 (ARM_HAVE_NEON_V2DI_LDST): Likewise.
5508 (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
5509 (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
5510 (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
5511 (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
5512 (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
5513 (ARM_HAVE_V2DI_LDST): Likewise.
5514 * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
5515 (*movmisalign<mode>_mve_load): New pattern.
5516 * config/arm/neon.md (movmisalign<mode>): Move to ...
5517 * config/arm/vec-common.md: ... here.
5519 2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
5522 * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
5523 of pattern 'plus (plus (hard reg, const), pseudo)'.
5525 2021-01-12 Richard Biener <rguenther@suse.de>
5527 PR tree-optimization/98550
5528 * tree-vect-slp.c (vect_record_max_nunits): Check whether
5529 the group size is a multiple of the vector element count.
5530 (vect_build_slp_tree_1): When we need to fail because
5531 the vector type choosen causes unrolling do so lazily
5532 without affecting matches only at the end to guide group splitting.
5534 2021-01-12 Martin Liska <mliska@suse.cz>
5537 * optc-save-gen.awk: Compare also n_target_save vars with
5540 2021-01-12 Martin Liska <mliska@suse.cz>
5542 * gcov.c (source_info::debug): New.
5543 (print_usage): Add --debug (-D) option.
5544 (process_args): Likewise.
5545 (generate_results): Call src->debug after
5546 accumulate_line_counts.
5547 (read_graph_file): Properly assign id for EXIT_BLOCK.
5548 * profile.c (branch_prob): Dump function body before it is
5551 2021-01-12 Jakub Jelinek <jakub@redhat.com>
5553 PR tree-optimization/98629
5554 * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
5555 unless returning non-zero.
5557 2021-01-12 Jakub Jelinek <jakub@redhat.com>
5559 PR tree-optimization/95731
5560 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
5561 x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
5562 (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
5563 only after optimize_range_tests_var_bound.
5565 2021-01-12 Jakub Jelinek <jakub@redhat.com>
5567 * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
5568 * configure: Regenerated.
5570 2021-01-12 liuhongt <hongtao.liu@intel.com>
5573 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
5575 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
5578 2021-01-12 Alexandre Oliva <oliva@adacore.com>
5580 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
5582 (auto_end_imm_use_stmt_traverse): New struct.
5583 (FOR_EACH_IMM_USE_STMT): Use it.
5584 (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
5586 * gimple-ssa-strength-reduction.c: ... here, ...
5587 * graphite-scop-detection.c: ... here, ...
5588 * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
5589 * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
5590 * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
5591 * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
5592 * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
5593 * tree-vect-slp.c: ... and here, ...
5594 * doc/tree-ssa.texi: ... and the example here.
5596 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5598 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
5599 SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X.
5600 (*sdiv_pow2<mode>3): New pattern.
5601 (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
5602 Wrap the ASRD in an UNSPEC_PRED_X.
5603 (*cond_<sve_int_op><mode>_2): Likewise. Replace the UNSPEC_PRED_X
5604 predicate with a constant PTRUE, if it isn't already.
5605 (*cond_<sve_int_op><mode>_z): Replace with...
5606 (*cond_<sve_int_op><mode>_any): ...this new pattern.
5608 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5610 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
5611 SVE_FULL_I to SVE_I.
5612 (*cond_bic<mode>_any): Likewise.
5614 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5616 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
5617 (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
5620 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5622 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
5623 SVE_FULL_I to SVE_I.
5624 (*aarch64_cond_<su>abd<mode>_2): Likewise.
5625 (*aarch64_cond_<su>abd<mode>_any): Likewise.
5626 (@aarch64_pred_<su>abd<mode>): Likewise. Use UNSPEC_PRED_X
5627 for the max and min but not for the minus.
5628 (*aarch64_cond_<su>abd<mode>_3): New pattern.
5630 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5632 * config/aarch64/iterators.md (SVE_24I): New iterator.
5633 * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
5634 SVE_FULL_SDI to SVE_24I. Use containers rather than elements.
5636 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5638 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
5639 (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
5641 (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
5642 (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
5643 (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
5644 (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
5646 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5648 * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
5649 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
5650 (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
5653 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5655 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
5656 (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
5657 (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
5659 2021-01-11 Martin Liska <mliska@suse.cz>
5662 * symtab-clones.h (clone_info::release): Release
5663 symtab::m_clones with ggc_delete as it's a GGC memory.
5665 2021-01-11 Matthias Klose <doko@ubuntu.com>
5667 * Makefile.in (LINK_PROGRESS): Show the link target.
5669 2021-01-11 Richard Biener <rguenther@suse.de>
5671 PR tree-optimization/91403
5672 * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
5673 single-element interleaving group size at 4096 elements.
5675 2021-01-11 Richard Biener <rguenther@suse.de>
5677 PR tree-optimization/98526
5678 * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
5679 of the actual reduction op for the regular case.
5680 (vectorizable_reduction): Cost the stmts
5681 vect_transform_reduction produces here.
5683 2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
5685 * tree-ssa-forwprop.c (simplify_vector_constructor): For
5686 big-endian, use UNPACK[_FLOAT]_HI.
5688 2021-01-11 Tamar Christina <tamar.christina@arm.com>
5690 * tree-vect-slp-patterns.c (class complex_pattern,
5691 class complex_add_pattern): Add parameters to matches.
5692 (complex_add_pattern::build): Free memory.
5693 (complex_add_pattern::matches): Move validation end of match.
5694 (complex_add_pattern::recognize): Likewise.
5696 2021-01-11 Tamar Christina <tamar.christina@arm.com>
5698 * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
5700 2021-01-11 Tamar Christina <tamar.christina@arm.com>
5702 * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
5704 2021-01-11 Jakub Jelinek <jakub@redhat.com>
5706 PR tree-optimization/95867
5707 * tree-ssa-math-opts.h: New header.
5708 * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
5709 (powi_as_mults): No longer static. Use build_one_cst instead of
5710 build_real. Formatting fix.
5711 * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
5712 (attempt_builtin_powi): Handle multiplication reassociation without
5713 powi_fndecl using powi_as_mults.
5714 (reassociate_bb): For integral types don't require
5715 -funsafe-math-optimizations to call attempt_builtin_powi.
5717 2021-01-11 Jakub Jelinek <jakub@redhat.com>
5719 PR tree-optimization/95852
5720 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
5721 mul_stmts parameter type to vec<gimple *> &. Before cond_stmt
5722 allow in the bb any of the stmts in that vector, div_stmt and
5724 (arith_cast_equal_p): New function.
5725 (arith_overflow_check_p): Add cast_stmt argument, handle signed
5726 multiply overflow checks.
5727 (match_arith_overflow): Adjust caller. Handle signed multiply
5730 2021-01-11 Jakub Jelinek <jakub@redhat.com>
5732 PR tree-optimization/95852
5733 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
5734 (uaddsub_overflow_check_p): Renamed to ...
5735 (arith_overflow_check_p): ... this. Handle also multiplication
5736 with overflow check.
5737 (match_uaddsub_overflow): Renamed to ...
5738 (match_arith_overflow): ... this. Add cfg_changed argument. Handle
5739 also multiplication with overflow check. Adjust function comment.
5740 (math_opts_dom_walker::after_dom_children): Adjust callers. Call
5741 match_arith_overflow also for MULT_EXPR.
5743 2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5745 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
5746 __builtin_convertvector.
5747 (vmovl_s16): Likewise.
5748 (vmovl_s32): Likewise.
5749 (vmovl_u8): Likewise.
5750 (vmovl_u16): Likewise.
5751 (vmovl_u32): Likewise.
5752 (vmovn_s16): Likewise.
5753 (vmovn_s32): Likewise.
5754 (vmovn_s64): Likewise.
5755 (vmovn_u16): Likewise.
5756 (vmovn_u32): Likewise.
5757 (vmovn_u64): Likewise.
5759 2021-01-11 Martin Liska <mliska@suse.cz>
5761 * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
5762 (if_chain::is_beneficial): Delete clusters
5763 (find_conditions): Make second argument of conditions_in_bbs a
5764 pointer so that we control over it's lifetime.
5765 (pass_if_to_switch::execute): Delete them.
5767 2021-01-11 Kewen Lin <linkw@linux.ibm.com>
5769 * ira.c (move_unallocated_pseudos): Check other_reg and skip if
5772 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
5774 * config/vax/vax.md (cc): Remove mode attribute.
5775 (subst_<cc>, subst_f<cc>): Rename to...
5776 (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
5777 (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
5778 (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
5779 (*branch_<mode>, *branch_<mode>_reversed): Likewise.
5781 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
5783 * config/vax/vax.md (subst_f<cc>): Add mode to operands and
5784 `const_double_zero'.
5786 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
5788 * config/pdp11/pdp11.md (PDPfp): New mode iterator.
5789 (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and
5792 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
5794 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
5796 * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
5797 with `const_double_zero'.
5798 * doc/rtl.texi (Constant Expression Types): Document it.
5800 2021-01-09 Jakub Jelinek <jakub@redhat.com>
5803 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
5804 POINTER_DIFF_EXPR to be any integral type.
5806 2021-01-09 Jakub Jelinek <jakub@redhat.com>
5808 PR rtl-optimization/98603
5809 * function.c (instantiate_virtual_regs_in_insn): For asm goto
5810 with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
5811 if any, set ASM_OPERANDS mode to VOIDmode and change
5812 ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
5814 2021-01-09 Alexandre Oliva <oliva@gnu.org>
5817 * final.c (notice_source_line): Narrow down the condition to
5818 skip a line-0 marker.
5820 2021-01-08 Sergei Trofimovich <siarheit@google.com>
5822 * ipa-modref.c (merge_call_side_effects): Fix
5823 linebreak split by reordering two print calls.
5825 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
5827 * config/s390/vector.md (*tf_to_fprx2_0): Rename from
5828 "*mov_tf_to_fprx2_0" for consistency, fix constraint.
5829 (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
5830 consistency, fix constraint.
5832 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
5834 * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
5835 callables instead of mask values.
5836 (struct target_flag_set_p): New predicate.
5837 (s390_cpu_cpp_builtins_internal): Define or undefine
5838 __LONG_DOUBLE_VX__ macro.
5840 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
5843 * config/i386/i386.c (x86_function_profiler): Use R10 and R11
5844 to call mcount in large model with PIC for NO_PROFILE_COUNTERS
5847 2021-01-08 Richard Biener <rguenther@suse.de>
5849 * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
5851 2021-01-08 Richard Biener <rguenther@suse.de>
5853 * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
5854 (vect_build_slp_tree): On cache hit release the matched
5855 scalar stmts vector.
5856 * tree-vect-stmts.c (vectorizable_store): Properly free
5857 vec_oprnds before possibly gathering them again.
5859 2021-01-08 Richard Biener <rguenther@suse.de>
5861 PR tree-optimization/98544
5862 * tree-vect-slp.c (vect_optimize_slp): Always materialize
5863 permutes at a permute node.
5865 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
5868 * config/i386/i386.c (x86_function_profiler): Use R10 to call
5869 mcount in large model. Sorry for large model with PIC.
5871 2021-01-08 Jakub Jelinek <jakub@redhat.com>
5874 * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
5875 ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
5876 ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
5877 TargetSave and initialize for variables with enum types.
5878 (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
5879 mstack-protector-guard-symbol=): Add Save.
5880 * config/i386/i386-options.c (ix86_function_specific_save,
5881 ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
5882 x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
5883 x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
5884 x_ix86_veclibabi_type.
5886 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
5888 * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
5889 SVE_FULL_I to SVE_I.
5890 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
5892 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
5894 * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
5895 SVE_FULL_I to SVE_I.
5896 (*cond_uxt<mode>_any): Likewise.
5898 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5900 * config/aarch64/iterators.md (Vwhalf): New iterator.
5901 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
5903 (aarch64_<sur>adalp<mode>): ... This. Make more
5905 (<sur>sadv16qi): Adjust callsite of the above.
5906 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
5908 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
5910 (vpadal_s16): Likewise.
5911 (vpadal_u8): Likewise.
5912 (vpadal_u16): Likewise.
5913 (vpadalq_s8): Likewise.
5914 (vpadalq_s16): Likewise.
5915 (vpadalq_s32): Likewise.
5916 (vpadalq_u8): Likewise.
5917 (vpadalq_u16): Likewise.
5918 (vpadalq_u32): Likewise.
5920 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5922 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
5924 (aarch64_<su>abd<mode>): ... This.
5925 (<sur>sadv16qi): Adjust callsite of the above.
5926 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
5928 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
5930 (vabd_s16): Likewise.
5931 (vabd_s32): Likewise.
5932 (vabd_u8): Likewise.
5933 (vabd_u16): Likewise.
5934 (vabd_u32): Likewise.
5935 (vabdq_s8): Likewise.
5936 (vabdq_s16): Likewise.
5937 (vabdq_s32): Likewise.
5938 (vabdq_u8): Likewise.
5939 (vabdq_u16): Likewise.
5940 (vabdq_u32): Likewise.
5942 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5944 * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
5946 * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
5947 (vaba_s16): Likewise.
5948 (vaba_s32): Likewise.
5949 (vaba_u8): Likewise.
5950 (vaba_u16): Likewise.
5951 (vaba_u32): Likewise.
5952 (vabaq_s8): Likewise.
5953 (vabaq_s16): Likewise.
5954 (vabaq_s32): Likewise.
5955 (vabaq_u8): Likewise.
5956 (vabaq_u16): Likewise.
5957 (vabaq_u32): Likewise.
5959 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5961 * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
5962 (aarch64_<su>aba<mode>): ... This. Handle uaba as well.
5963 Change RTL pattern to match.
5965 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
5967 * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
5968 * config/riscv/riscv-c.c (riscv-subset.h): New.
5969 (INCLUDE_STRING): Define.
5970 (riscv_cpu_cpp_builtins): Add new style architecture extension
5972 * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
5973 (riscv_subset_list::end): New.
5974 (riscv_current_subset_list): New.
5976 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
5978 * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
5979 Move to riscv-subset.h.
5980 (struct riscv_subset_t): Ditto.
5981 (class riscv_subset_list): Ditto.
5982 * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
5983 from riscv-common.c.
5984 (struct riscv_subset_t): Ditto.
5985 (class riscv_subset_list): Ditto.
5986 * config/riscv/t-riscv ($(common_out_file)): Add file
5989 2021-01-07 Jakub Jelinek <jakub@redhat.com>
5992 * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
5993 New define_insn patterns.
5995 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
5997 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
5998 (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
5999 (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
6001 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
6003 PR tree-optimization/98560
6004 * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
6005 * internal-fn.c (vec_cond_mask_direct): Get the data mode from
6007 (vec_cond_direct): Likewise argument 2.
6008 (vec_condu_direct, vec_condeq_direct): Delete.
6009 (expand_vect_cond_optab_fn): Rename to...
6010 (expand_vec_cond_optab_fn): ...this, replacing old macro.
6011 (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
6012 (expand_vect_cond_mask_optab_fn): Rename to...
6013 (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
6014 (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
6016 (direct_vec_cond_optab_supported_p): Likewise.
6017 (direct_vec_condu_optab_supported_p): Delete.
6018 (direct_vec_condeq_optab_supported_p): Delete.
6019 * gimple-isel.cc: Include internal-fn.h.
6020 (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
6023 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
6025 PR tree-optimization/98560
6026 * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
6027 IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
6029 2021-01-07 Uroš Bizjak <ubizjak@gmail.com>
6031 * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
6032 rotate_insn and optab code attributes.
6033 Update all uses to merged code attribute.
6034 * config/i386/sse.md: Update all uses to merged code attribute.
6035 * config/i386/mmx.md: Update all uses to merged code attribute.
6037 2021-01-07 Jakub Jelinek <jakub@redhat.com>
6039 PR tree-optimization/98568
6040 * gimple-ssa-store-merging.c (bswap_view_convert): New function.
6041 (bswap_replace): Use it.
6043 2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com>
6045 PR rtl-optimization/97978
6046 * lra-int.h (lra_hard_reg_split_p): New external.
6047 * lra.c (lra_hard_reg_split_p): New global.
6048 (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
6049 * lra-assigns.c (lra_assign): Don't check allocation correctness
6050 after hard reg splitting.
6052 2021-01-06 Martin Sebor <msebor@redhat.com>
6055 * builtins.c (new_delete_mismatch_p): New overload.
6056 (new_delete_mismatch_p (tree, tree)): Call it.
6058 2021-01-06 Alexandre Oliva <oliva@adacore.com>
6060 * Makefile.in (T_GLIMITS_H): New.
6061 (stmp-int-hdrs): Depend on it, use it.
6062 * config/t-vxworks (T_GLIMITS_H): Override it.
6063 (vxw-glimits.h): New.
6065 2021-01-06 Richard Biener <rguenther@suse.de>
6067 PR tree-optimization/98513
6068 * value-range.cc (intersect_ranges): Compare the upper bounds
6069 for the expected relation.
6071 2021-01-06 Gerald Pfeifer <gerald@pfeifer.com>
6074 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com>
6076 * doc/standards.texi (HSAIL): Remove section.
6078 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
6080 * configure: Re-generate.
6082 2021-01-05 Jakub Jelinek <jakub@redhat.com>
6084 * doc/invoke.texi (-std=c++20): Adjust for the publication of
6085 ISO 14882:2020 standard.
6086 * doc/standards.texi: Likewise.
6088 2021-01-05 Jakub Jelinek <jakub@redhat.com>
6090 PR tree-optimization/94802
6091 * expr.h (maybe_optimize_sub_cmp_0): Declare.
6092 * expr.c: Include tree-pretty-print.h and flags.h.
6093 (maybe_optimize_sub_cmp_0): New function.
6094 (do_store_flag): Use it.
6095 * cfgexpand.c (expand_gimple_cond): Likewise.
6097 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
6099 * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
6100 * rtlanal.c (simple_regno_set): Tweak description to clarify the
6103 2021-01-05 Richard Biener <rguenther@suse.de>
6105 PR tree-optimization/98516
6106 * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
6107 lanes when materializing on a VEC_PERM node.
6108 (vectorizable_slp_permutation): Dump the permute properly.
6110 2021-01-05 Richard Biener <rguenther@suse.de>
6112 * tree-vect-slp.c (vect_slp_region): Move debug counter
6113 to cover individual subgraphs.
6115 2021-01-05 Richard Biener <rguenther@suse.de>
6117 PR tree-optimization/98428
6118 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
6119 vector lane extracts for loop vectorization.
6121 2021-01-05 Jakub Jelinek <jakub@redhat.com>
6123 PR tree-optimization/98514
6124 * tree-ssa-reassoc.c (bb_rank): Change type from long * to
6126 (operand_rank): Change type from hash_map<tree, long> to
6127 hash_map<tree, int64_t>.
6128 (phi_rank): Change return type from long to int64_t.
6129 (loop_carried_phi): Change block_rank variable type from long to
6131 (propagate_rank): Change return type, rank parameter type and
6132 op_rank variable type from long to int64_t.
6133 (find_operand_rank): Change return type from long to int64_t
6134 and change slot variable type from long * to int64_t *.
6135 (insert_operand_rank): Change rank parameter type from long to
6137 (get_rank): Change return type and rank variable type from long to
6138 int64_t. Use PRId64 instead of ld to print the rank.
6139 (init_reassoc): Change rank variable type from long to int64_t
6140 and adjust correspondingly bb_rank and operand_rank initialization.
6142 2021-01-05 Jakub Jelinek <jakub@redhat.com>
6144 PR tree-optimization/96928
6145 * tree-ssa-phiopt.c (xor_replacement): New function.
6146 (tree_ssa_phiopt_worker): Call it.
6148 2021-01-05 Jakub Jelinek <jakub@redhat.com>
6150 PR tree-optimization/96930
6151 * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
6152 from narrower value which has the same type as 1 << B, perform
6153 the right shift on the narrower value followed by extension.
6155 2021-01-05 Jakub Jelinek <jakub@redhat.com>
6157 PR tree-optimization/96239
6158 * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
6160 (get_status_for_store_merging): Don't return BB_INVALID for blocks
6161 with potential bswap optimizable CONSTRUCTORs.
6162 (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
6165 2021-01-05 Richard Biener <rguenther@suse.de>
6167 PR tree-optimization/98381
6168 * tree.c (vector_element_bits): Properly compute bool vector
6170 * tree-vect-loop.c (vectorizable_live_operation): Properly
6171 compute the last lane bit offset.
6173 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
6176 * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
6177 Clear the top 64 bytes of the input XMM register.
6178 (sse_cvttps2pi): Ditto.
6180 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
6183 * config/i386/xopintrin.h (_mm256_cmov_si256): New.
6185 2021-01-05 H.J. Lu <hjl.tools@gmail.com>
6188 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
6191 2021-01-05 Claudiu Zissulescu <claziss@synopsys.com>
6193 * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
6194 (umaddsidi4_split): Likewise.
6196 2021-01-05 liuhongt <hongtao.liu@intel.com>
6199 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
6200 define_insn_and_split for zero_extend of subreg HI of pmovskb
6202 (*sse2_pmovskb_zexthisi): Add new combine splitters for
6203 zero_extend of not of subreg HI of pmovskb result.
6205 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
6208 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
6210 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
6211 convert_memory_address to convert symbolic immediates to ptr_mode
6212 before forcing them to memory.
6214 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
6216 PR rtl-optimization/97144
6217 * recog.c (constrain_operands): Initialize matching_operand
6218 for each alternative, rather than only doing it once.
6220 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
6222 PR rtl-optimization/98403
6223 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
6224 why we don't remove call clobbers.
6225 (function_info::apply_changes_to_insn): Don't attempt to add
6228 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
6230 PR tree-optimization/98371
6231 * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
6232 (vect_analyze_loop): If an epilogue loop appears to be cheaper
6233 than the main loop, re-analyze it as a main loop before adopting
6236 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6239 * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
6240 * aclocal.m4, configure: Regenerate.
6241 * Makefile.in (NETLIBS): Define.
6242 (BACKEND): Remove $(CODYLIB).
6244 2021-01-05 Jakub Jelinek <jakub@redhat.com>
6246 PR rtl-optimization/98334
6247 * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
6248 Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
6250 2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
6252 * tree-inline.c (expand_call_inline): Restore input_location.
6253 Return result from recursive call.
6255 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
6257 PR tree-optimization/95401
6258 * config/aarch64/aarch64-sve-builtins.cc
6259 (gimple_folder::load_store_cookie): Use bits rather than bytes
6260 for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
6261 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
6262 * tree-vect-stmts.c (vectorizable_store): Likewise.
6263 (vectorizable_load): Likewise.
6265 2021-01-04 Richard Biener <rguenther@suse.de>
6267 PR tree-optimization/98308
6268 * tree-vect-stmts.c (vectorizable_load): Set invariant mask
6271 2021-01-04 Jakub Jelinek <jakub@redhat.com>
6273 PR tree-optimization/95771
6274 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
6275 with precision smaller than int's precision and types with precision
6276 twice as large as long long. Formatting fixes.
6278 2021-01-04 Richard Biener <rguenther@suse.de>
6280 PR tree-optimization/98464
6281 * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
6282 (vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb.
6283 (process_bb): Adjust.
6285 2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com>
6288 * doc/invoke.texi (-fsanitize=address): Fix wording describing
6289 clash with -fsanitize=hwaddress.
6291 2021-01-04 Richard Biener <rguenther@suse.de>
6293 PR tree-optimization/98282
6294 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
6295 invariants as VN_NARY.
6297 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
6300 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
6301 aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns
6302 to handle zero operands.
6304 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
6306 * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
6307 (offset_6bit_unsigned_scaled_p): Fix typo in comment.
6308 (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
6311 2021-01-04 Richard Biener <rguenther@suse.de>
6313 PR tree-optimization/98393
6314 * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
6315 when hitting the limit.
6317 2021-01-04 Richard Biener <rguenther@suse.de>
6319 PR tree-optimization/98291
6320 * tree-vect-loop.c (vectorizable_reduction): Bypass
6321 associativity check for SLP reductions with VF 1.
6323 2021-01-04 Jakub Jelinek <jakub@redhat.com>
6325 PR tree-optimization/96782
6326 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
6328 2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6330 * collect-utils.c (collect_execute): Check dumppfx.
6331 * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
6333 (do_link): Add new parameter atsuffix.
6334 (main): Handle -dumpdir option. Skip one argument for
6335 -o, -isystem and -B options.
6336 * gcc.c (make_at_file): New helper function.
6337 (close_at_file): Use it.
6339 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
6341 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
6342 Amend handling for LD64_VERSION fallback defaults.
6344 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
6346 * config.gcc: Compute default version information
6347 from the configured target. Likewise defaults for
6349 * config/darwin10.h: Removed.
6350 * config/darwin12.h: Removed.
6351 * config/darwin9.h: Removed.
6352 * config/rs6000/darwin8.h: Removed.
6354 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
6356 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
6358 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
6360 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
6361 * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
6363 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
6365 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
6367 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
6369 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
6371 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
6372 for the Darwin10 unwinder stub from here ...
6373 * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
6375 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
6377 * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
6378 (ASM_DEBUG_SPEC):Only define if the assembler supports
6380 (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
6381 (DARWIN_PREFER_DWARF): Define.
6382 * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
6383 (DARWIN_PREFER_DWARF): Likewise
6384 (DSYMUTIL_SPEC): Likewise.
6385 (COLLECT_RUN_DSYMUTIL): Likewise.
6386 (ASM_DEBUG_SPEC): Likewise.
6387 (ASM_DEBUG_OPTION_SPEC): Likewise.
6389 2021-01-02 Jan Hubicka <jh@suse.cz>
6391 * cfg.c (free_block): ggc_free bb.
6393 2021-01-01 Jakub Jelinek <jakub@redhat.com>
6395 * gcc.c (process_command): Update copyright notice dates.
6396 * gcov-dump.c (print_version): Ditto.
6397 * gcov.c (print_version): Ditto.
6398 * gcov-tool.c (print_version): Ditto.
6399 * gengtype.c (create_file): Ditto.
6400 * doc/cpp.texi: Bump @copying's copyright year.
6401 * doc/cppinternals.texi: Ditto.
6402 * doc/gcc.texi: Ditto.
6403 * doc/gccint.texi: Ditto.
6404 * doc/gcov.texi: Ditto.
6405 * doc/install.texi: Ditto.
6406 * doc/invoke.texi: Ditto.
6408 2021-01-01 Jakub Jelinek <jakub@redhat.com>
6410 * ChangeLog-2020: Rotate ChangeLog. New file.
6413 Copyright (C) 2021 Free Software Foundation, Inc.
6415 Copying and distribution of this file, with or without modification,
6416 are permitted in any medium without royalty provided the copyright
6417 notice and this notice are preserved.