| 2025-12-29 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * ifcvt.cc (noce_try_cond_zero_arith): Remove restriction on comparison |
| against 0. |
| |
| 2025-12-29 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/123308 |
| * ifcvt.cc (noce_try_cond_zero_arith): If noce_emit_cmove fails |
| for a lowpart subreg case, then try the full reg cmove and |
| take the lowpart subreg afterwards. |
| |
| 2025-12-29 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * ifcvt.cc (noce_try_cond_zero_arith): Don't swap if_info->cond |
| but use it directly with if_info->rev_cond. |
| |
| 2025-12-29 Jakub Jelinek <jakub@redhat.com> |
| |
| * auto-profile.cc (string_table::get_original_name): Avoid using |
| init-statement in selection statement. |
| |
| 2025-12-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure: Regenerate. |
| |
| 2025-12-29 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386.md (*setcc_qi): Force output setzucc for |
| reg operand[0]. |
| (*setcc_qi_slp): Likewise. |
| |
| 2025-12-29 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/123295 |
| * lra-eliminations.cc (lra_eliminate_regs_1): For a debug |
| insn, create a raw SUBREG if simplify_gen_subreg fails. |
| |
| 2025-12-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_ctf): New check. |
| (gcc_cv_have_ctfmerge): Likewise. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/sol2.h (SCTF_CC1_SPEC): Define. |
| (LINK_SCTF_SPEC): Define. |
| (LINK_SPEC): Add LINK_SCTF_SPEC. |
| * config/i386/sol2.h (CC1_SPEC): Add SCTF_CC1_SPEC. |
| * config/sparc/sol2.h: Likewise. |
| * config/sol2.opt (gsctf): Declare. |
| * config/sol2.opt.urls: Regenerate. |
| * doc/invoke.texi (Option Summary): Add -gsctf. |
| (Solaris 2 Options): Document it. |
| |
| 2025-12-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_as_ix86_xbrace_comment): Remove. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Adapt guard. |
| |
| 2025-12-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/123114 |
| * simplify-rtx.cc (simplify_context::simplify_relational_operation): |
| Verify XEXP (XEXP (op0, 0), 0) mode and use CONST0_RTX (cmp_mode) |
| instead of CONST0_RTX (mode). |
| |
| 2025-12-27 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| Revert: |
| 2025-12-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * ifcvt.cc (noce_process_if_block): Move noce_try_cond_zero_arith |
| last. |
| |
| 2025-12-26 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/123283 |
| * config/riscv/sync.md (subword_atomic_fetch_strong_nand): Add |
| USEs for naked operands that might be pseudos. |
| (subword_atomic_fetch_strong_<atomic_optab>): Likewise. |
| (subword_atomic_exchange_strong): Likewise. |
| (subword_atomic_cas_strong): Likewise. |
| |
| 2025-12-26 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * config/i386/i386.opt.urls: Regenerated. |
| * config/riscv/riscv.opt.urls: Regenerated. |
| |
| 2025-12-26 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * config/riscv/gen-riscv-ext-texi.cc: Fix table markup and |
| layout. |
| * config/riscv/riscv-ext-corev.def: Document missing extensions, |
| regularize spelling/capitalization in existing descriptions |
| * config/riscv/riscv-ext-mips.def: Likewise. |
| * config/riscv/riscv-ext-sifive.def: Likewise. |
| * config/riscv/riscv-ext-thead.def: Likewise. |
| * config/riscv/riscv-ext.def: Likewise. |
| * doc/riscv-ext.texi: Regenerated. |
| |
| 2025-12-26 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/riscv/riscv.opt (mplt): Mark deprecated option Undocumented. |
| (msmall-data-limit=): Mark RejectNegative. |
| * doc/invoke.texi (Option Summary) <RISC-V Options>: Remove -mplt |
| documentation. Only list one form of each option. Add missing |
| options -mcpu, -mscalar-strict-align, -mno-vector-strict-align, |
| -momit-leaf-frame-pointer, -mstringop-strategy, -mrvv-vector-bits, |
| -mrvv-max-lmul, -madjust-lmul-cost, -mmax-vectorization, and |
| -mno-autovec-segment. |
| (RISC-V Options): Remove -mplt documentation. Add documentation for |
| missing options listed above. Add missing index entries for negative |
| forms. Correct the default for the -minline-str* options, which |
| has changed. Copy-edit for markup, spelling, and usage. Trivial |
| whitespace fixes. |
| |
| 2025-12-25 Arsen Arsenović <aarsenovic@baylibre.com> |
| |
| * tree-ssa-math-opts.cc (execute_cse_sincos_1): If |
| mathfn_built_in_type fails to determine a type for our |
| operation, presume that it is the same as the input type. |
| |
| 2025-12-24 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/predicates.md: Add geu to the swappable |
| cmp operator iterator. |
| * config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Take |
| care of the swapped rtx code correspondly. |
| |
| 2025-12-24 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-base.cc: (svmul_impl::fold): |
| Replace use of type_suffix_pair with type_suffix_triple. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc: (parse_element_type): |
| Handle third type suffix. |
| (parse_type): Handle c2 in function signature. Add the u signature with |
| the ability to pass a tuple with twice as many vectors as the base type. |
| Calculate number of vectors against the type with the maximum number of |
| bits rather than "the other one". |
| (load_contiguous_base::resolve): Add argument to resolve_to call. |
| (compare_scalar_def::resolve): Likewise. |
| (ternary_mfloat8_def::resolve): Likewise. |
| (ternary_mfloat8_lane_def::resolve): Likewise. |
| (ternary_mfloat8_opt_n_def::resolve): Likewise. |
| * config/aarch64/aarch64-sve-builtins.cc: (TYPES_all_pred, |
| TYPES_all_count, TYPES_all_pred_count, TYPES_all_float, |
| TYPES_all_signed, TYPES_all_float_and_signed, TYPES_all_unsigned, |
| TYPES_all_integer, TYPES_all_arith, TYPES_all_data, TYPES_b, TYPES_c, |
| TYPES_b_unsigned, TYPES_b_integer, TYPES_b_data, TYPES_bh_integer, |
| TYPES_bs_unsigned, TYPES_bhs_signed, TYPES_bhs_unsigned, |
| TYPES_bhs_integer, TYPES_bh_data, TYPES_bhs_data, TYPES_bhs_widen, |
| TYPES_h_bfloat, TYPES_h_float, TYPES_h_integer, TYPES_h_data, |
| TYPES_hs_signed, TYPES_hs_integer, TYPES_hs_float, TYPES_hs_data, |
| TYPES_hd_unsigned, TYPES_hsd_signed, TYPES_hsd_integer, TYPES_hsd_data, |
| TYPES_h_float_mf8, TYPES_s_float, TYPES_s_float_mf8, |
| TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer, TYPES_s_signed, |
| TYPES_s_unsigned, TYPES_s_integer, TYPES_s_data, TYPES_sd_signed, |
| TYPES_sd_unsigned, TYPES_sd_integer, TYPES_sd_data, |
| TYPES_all_float_and_sd_integer, TYPES_d_float, TYPES_d_unsigned, |
| TYPES_d_integer, TYPES_d_data, TYPES_cvt, TYPES_cvt_bfloat, |
| TYPES_cvt_h_s_float, TYPES_cvt_f32_f16, TYPES_cvt_long, |
| TYPES_cvt_narrow_s, TYPES_cvt_narrow, TYPES_cvt_s_s, TYPES_cvt_mf8, |
| TYPES_cvtn_mf8, TYPES_cvtnx_mf8, TYPES_inc_dec_n, TYPES_qcvt_x2, |
| TYPES_qcvt_x4, TYPES_qrshr_x2,TYPES_qrshru_x2, TYPES_qrshr_x4, |
| TYPES_qrshru_x4, TYPES_reinterpret, TYPES_reinterpret_b,TYPES_while, |
| TYPES_while_x, TYPES_while_x_c, TYPES_s_narrow_fsu,TYPES_all_za, |
| TYPES_d_za, TYPES_za_bhsd_data,TYPES_za_all_data, TYPES_za_h_mf8, |
| TYPES_za_hs_mf8, TYPES_za_h_bfloat, TYPES_za_h_float, |
| TYPES_za_s_b_signed, TYPES_za_s_b_unsigned, TYPES_za_s_b_integer, |
| TYPES_za_s_h_integer,TYPES_za_s_h_data, TYPES_za_s_unsigned, |
| TYPES_za_s_integer, TYPES_za_s_mf8, TYPES_za_s_float, TYPES_za_s_data, |
| TYPES_za_d_h_integer, TYPES_za_d_float, TYPES_za_d_integer, |
| TYPES_mop_base, TYPES_mop_base_signed, TYPES_mop_base_unsigned, |
| TYPES_mop_i16i64, TYPES_mop_i16i64_signed, TYPES_mop_i16i64_unsigned, |
| ΤYPES_za): Extend defines to three arguments. |
| (DEF_VECTOR_TYPE, DEF_DOUBLE_TYPE): Likewise. |
| (DEF_TRIPLE_TYPE): Add new define. |
| (DEF_SVE_TYPES_ARRAY): Redefine all types_ arrays into arrays of |
| type_suffix_triple. |
| (types_none): Likewise. |
| (function_instance::hash): Add third type to hash calculation. |
| (function_builder::get_name): Add third type to function name. |
| (function_builder::add_overloaded_functions): Handle third type. |
| (function_resolver::lookup_form): Likewise. |
| (function_resolver::resolve_to): Likewise. |
| (function_resolver::resolve_unary): Likewise. |
| * config/aarch64/aarch64-sve-builtins.h: (type_suffix_triple): replace |
| type_suffix_pair. |
| (function_group_info::types): Likewise. |
| (function_instance::ctor): Likewise. |
| (function_instance::type_suffix_ids): Likewise. |
| (function_resolver::lookup_form): Add third type argument. |
| (function_resolver::resolve_to): Likewise. |
| (function_instance::operator==): Add third type to equality calculation. |
| |
| 2025-12-24 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-sme.md |
| (@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x24:mode>): New insn. |
| (@aarch64_fvdot_half<optab>): Likewise. |
| (@aarch64_fvdot_half<optab>_plus): Likewise. |
| * config/aarch64/aarch64-sve-builtins-functions.h |
| (class svvdot_half_impl): New function impl. |
| * config/aarch64/aarch64-sve-builtins-sme.cc (FUNCTION): Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc (struct dot_half_za_slice_lane_def): |
| New function shape. |
| * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.def (svdot): New function. |
| (svdot_lane): Likewise. |
| (svvdot_lane): Likewise. |
| (svvdotb_lane): Likewise. |
| (svvdott_lane): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.h (svvdotb_lane_za): New function. |
| (svvdott_lane_za): Likewise. |
| * config/aarch64/aarch64-sve-builtins.cc (TYPES_za_s_mf8): New types array. |
| (TYPES_za_hs_mf8): Likewise. |
| (za_hs_mf8): Likewise. |
| * config/aarch64/iterators.md (SME_ZA_F8F16): New mode iterator. |
| (SME_ZA_F8F32): Likewise. |
| (SME_ZA_FP8_x1): Likewise. |
| (SME_ZA_FP8_x2): Likewise. |
| (SME_ZA_FP8_x4): Likewise. |
| (UNSPEC_SME_FDOT_FP8): New unspec. |
| (UNSPEC_SME_FVDOT_FP8): Likewise. |
| (UNSPEC_SME_FVDOTT_FP8): Likewise. |
| (UNSPEC_SME_FVDOTB_FP8): Likewise. |
| (SME_FP8_DOTPROD): New int iterator. |
| (SME_FP8_FVDOT): Likewise. |
| (SME_FP8_FVDOT_HALF): Likewise. |
| |
| 2025-12-24 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64-sme.md |
| (@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><VNx16QI_ONLY:mode>): Add |
| new define_insn. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc |
| (struct binary_za_m_base): Support fpm argument. |
| * config/aarch64/aarch64-sve-builtins-sme.cc (svmopa_za): Extend for |
| fp8. |
| * config/aarch64/aarch64-sve-builtins-sme.def (svmopa): Add new |
| DEF_SME_ZA_FUNCTION_GS_FPM entries. |
| |
| 2025-12-24 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64-sme.md |
| (@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x24:mode>): Add |
| new define_insn. |
| (*aarch64_sme_<optab><VNx8HI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus, |
| *aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus, |
| @aarch64_sme_<optab><SME_ZA_F8F16_32:mode><VNx16QI_ONLY:mode>, |
| *aarch64_sme_<optab><VNx8HI_ONLY:mode><VNx16QI_ONLY:mode>_plus, |
| *aarch64_sme_<optab><VNx4SI_ONLY:mode><VNx16QI_ONLY:mode>_plus, |
| @aarch64_sme_single_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x24:mode>, |
| *aarch64_sme_single_<optab><VNx8HI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus, |
| *aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus, |
| @aarch64_sme_lane_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x124:mode>, |
| *aarch64_sme_lane_<optab><VNx8HI_ONLY:mode><SME_ZA_FP8_x124:mode>, |
| *aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_FP8_x124:mode>): |
| Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc |
| (struct binary_za_slice_lane_base): Support fpm argument. |
| (struct binary_za_slice_opt_single_base): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.cc (svmla_za): Extend for fp8. |
| (svmla_lane_za): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.def (svmla_lane): Add new |
| DEF_SME_ZA_FUNCTION_GS_FPM entries. |
| (svmla): Likewise. |
| * config/aarch64/iterators.md (SME_ZA_F8F16_32): Add new mode iterator. |
| (SME_ZA_FP8_x24, SME_ZA_FP8_x124): Likewise. |
| (UNSPEC_SME_FMLAL): Add new unspec. |
| (za16_offset_range): Add new mode_attr. |
| (za16_32_long): Likewise. |
| (za16_32_last_offset): Likewise. |
| (SME_FP8_TERNARY_SLICE): Add new iterator. |
| (optab): Add entry for UNSPEC_SME_FMLAL. |
| |
| 2025-12-24 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64.h: |
| (TARGET_STREAMING_SME_F8F16, TARGET_STREAMING_SME_F8F32): Add defines. |
| * config/aarch64/aarch64-c.cc: |
| (__ARM_FEATURE_SME_F8F16, __ARM_FEATURE_SME_F8F32): Add defines. |
| * config/aarch64/aarch64-option-extensions.def: |
| (sme-f8f16, sme-f8f32): Add arch options in command line. |
| * config/aarch64/aarch64-sve-builtins-functions.h: |
| (sme_2mode_function_t): Pass unspec_for_mfp8 parameter through ctor. |
| * config/aarch64/aarch64-sve-builtins-sme.def: |
| (DEF_SME_FUNCTION_GS, DEF_SME_FUNCTION): Redefine based on |
| DEF_SME_FUNCTION_GS_FPM. |
| (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Redefine based on |
| DEF_SME_ZA_FUNCTION_GS_FPM. |
| (AARCH64_FL_SME_F8F16, AARCH64_FL_SME_F8F32): Add new |
| REQUIRED_EXTENSIONS sections. |
| * config/aarch64/aarch64-sve-builtins.cc: |
| (TYPES_za_h_mf8): Add new types. |
| (TYPES_za_s_mf8): Likewise. |
| (sme_function_groups): Define using DEF_SME_FUNCTION_GS_FPM instead of |
| DEF_SME_FUNCTION_GS. |
| * doc/invoke.texi: (sme-f8f16, sme-f8f32): Add documentation of option. |
| |
| 2025-12-24 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-base.cc (svscale_impl): Added new |
| class for dealing with all svscale functions (including sve) |
| (svscale): updated FUNCTION macro call to make use of new class. |
| * config/aarch64/aarch64-sve-builtins-sve2.def: (svscale): |
| Added new DEF_SVE_FUNCTION_GS call to enable recognition of new variant. |
| * config/aarch64/aarch64-sve2.md (@aarch64_sve_fscale<mode>): Added |
| new define_insn. (@aarch64_sve_single_fscale<mode>): Likewise. |
| * config/aarch64/iterators.md: (SVE_Fx24_NOBF): Added new iterator, |
| similar to SVE_Fx24 but without brainfloat. |
| (SVE_Fx24): Updated to make use of SVE_Fx24_NOBF. |
| (SVSCALE_SINGLE_INTARG): Added new mode_attr. |
| (SVSCALE_INTARG): Likewise. |
| |
| 2025-12-24 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-base.cc (svcvt_impl): Update to |
| handle fp8 cases. |
| * config/aarch64/aarch64-sve-builtins-sve2.def (svcvt, svcvtn): Added |
| DEF_SVE_FUNCTION_GS_FPM instances. |
| * config/aarch64/aarch64-sve2.md |
| (@aarch64_sve2_fp8_cvtn<mode>): Updated define_insn for additional case. |
| (@aarch64_sme2_fp8_cvt<mode>): Added new define_insn. |
| * config/aarch64/iterators.md (VNx16F_NARROW): Added new iterator to |
| handle narrowing SVE floating point operations. |
| (UNSPEC_FCVT): Added new unspec. |
| |
| 2025-12-24 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtl1, svcvtl2): Added |
| new FUNTIONs. |
| * config/aarch64/aarch64-sve-builtins-sve2.def |
| (svcvt1, svcvt2, svcvtl1, svcvtl2): Added new DEF_SVE_FUNCTION_GS_FPM. |
| * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtl1, svcvtl2): Added |
| new function_base. |
| * config/aarch64/aarch64-sve-builtins.cc |
| (function_resolver::resolve_unary): use group_suffix_id when resolving |
| C overloads. |
| * config/aarch64/aarch64-sve2.md |
| (@aarch64_sve2_fp8_cvt_<fp8_cvt_uns_op><mode>): Added new define_insn. |
| * config/aarch64/aarch64.h (TARGET_SSME2_FP8): Added new define. |
| * config/aarch64/iterators.md |
| (UNSPEC_F1CVTL. UNSPEC_F2CVTL): Added new unspecs. |
| (FP8CVT_UNS): Extended int_iterator. |
| (fp8_cvt_uns_op): Likewise. |
| |
| 2025-12-24 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins.cc (TYPES_za_bhsd_data): Add |
| D (za8, mf8) combination to za_bhsd_data. |
| |
| 2025-12-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * ifcvt.cc (noce_process_if_block): Move noce_try_cond_zero_arith |
| last. |
| |
| 2025-12-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/123276 |
| * ifcvt.cc (noce_try_cond_zero_arith): Reject non-scalar integral modes. |
| |
| 2025-12-23 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/123274 |
| * config/riscv/riscv.md (usmul<mode>3): Add proper condition. |
| |
| 2025-12-23 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/123278 |
| * config/riscv/andes-45-series.md (andes_45_fpu_alu_s): Handle |
| BF/HF modes too. |
| (andes_45_fpu_mul_s, andes_45_fpu_mac_s): Likewise. |
| |
| 2025-12-23 Milan Tripkovic <Milan.Tripkovic@rt-rk.com> |
| |
| * config/riscv/spacemit-x60.md (spacemit_x60_clmul): Adjust latency. |
| |
| 2025-12-23 Xi Ruoyao <xry111@xry111.site> |
| |
| * config.gcc: Relax the check for LoongArch with_tune. |
| |
| 2025-12-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/123267 |
| * ifcvt.cc (noce_try_cond_zero_arith): Pass the original operands |
| of a instead of the stripped off values. The mode of the operand |
| which is being used. |
| |
| 2025-12-23 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * auto-profile.cc (struct summary_info): New struct. |
| (summary_info::read): New function. |
| (summary_info::get_threshold_count): Likewise. |
| (function_instance::read_function_instance): Read |
| afdo_profile_info->sum_max directly from summary info. |
| (autofdo_source_profile::read): Set afdo_hot_bb_threshold from |
| param_hot_bb_count_ws_permille. |
| (read_profile): Call summary_info->read. |
| (end_auto_profile): Free afdo_summary_info. |
| * gcov-io.h (GCOV_TAG_AFDO_SUMMARY): New define. |
| |
| 2025-12-23 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * auto-profile.cc (string_table::~string_table): Update to free |
| original_names_map_. |
| (string_table::original_names_map_): New member. |
| (string_table::clashing_names_map_): Likewise. |
| (string_table::get_original_name): New function. |
| (string_table::read): Figure out clashes while reading. |
| (autofdo_source_profile::offline_external_functions): Call |
| get_original_name. |
| |
| 2025-12-23 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * auto-profile.cc (AUTO_PROFILE_VERSION): Bump to 3. |
| (class function_instance_descriptor): New class. |
| (get_normalized_path): New function. |
| (string_table::~string_table): Update to free filenames. |
| (string_table::vector_): Rename to ... |
| (string_table::symbol_names_): ... this. |
| (string_table::map_): Rename to ... |
| (string_table::symbol_name_map_): ... this. |
| (string_table::filenames_): New member. |
| (string_table::filename_map_): Likewise. |
| (string_table::symbol_to_filename_map_): Likewise. |
| (string_table::get_index): Update to lookup symbol_name_map_. |
| (string_table::get_name): Rename to ... |
| (string_table::get_symbol_name): ... this. |
| (string_table::add_name): Rename to ... |
| (string_table::add_symbol_name): ... this. |
| (string_table::get_filename): New function. |
| (string_table::get_filename_by_symbol): Likewise. |
| (string_table::get_filename_index): Likewise. |
| (string_table::add_filename): Likewise. |
| (string_table::read): Read file names from the GCOV profile. |
| (function_instance::offline): Call |
| get_function_instance_by_descriptor. |
| (string_table::get_cgraph_node): Call get_symbol_name and |
| symbol_name. |
| (function_instance::get_function_instance_by_decl): Likewise. |
| (function_instance::get_cgraph_node): Likewise. |
| (function_instance::merge): Likewise. |
| (match_with_target): Likewise. |
| (function_instance::match): Likewise. |
| (function_instance::dump): Likewise. |
| (function_instance::dump_inline_stack): Likewise. |
| (function_instance::find_icall_target_map): Likewise. |
| (autofdo_source_profile::offline_unrealized_inlines): Likewise. |
| (autofdo_source_profile::offline_external_functions): Likewise. |
| (function_instance::read_function_instance): Likewise. |
| (afdo_indirect_call): |
| Also call find_function_instance, add_function_instance and |
| remove_function_instance. |
| (autofdo_source_profile::read): Likewise. |
| (autofdo_source_profile::get_function_instance_by_decl): Call |
| find_function_instance. |
| (autofdo_source_profile::get_function_instance_by_name_index): |
| Rename to ... |
| (autofdo_source_profile::get_function_instance_by_descriptor): |
| ... this. |
| (autofdo_source_profile::find_iter_for_function_instance): New |
| function. |
| (autofdo_source_profile::find_function_instance): Likewise. |
| (autofdo_source_profile::add_function_instance): Likewise. |
| (autofdo_source_profile::remove_function_instance): Likewise. |
| |
| 2025-12-22 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| PR middle-end/123067 |
| * tree-ssa-loop-im.cc(is_self_write): Check |
| load and store refer to same location. |
| |
| 2025-12-22 Vineet Gupta <vineetg@rivosinc.com> |
| |
| * ifcvt.cc (get_base_reg): Handle subreg. |
| |
| 2025-12-22 Vineet Gupta <vineetg@rivosinc.com> |
| Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR target/122769 |
| * ifcvt.cc (noce_try_cond_zero_arith): Use noce_emit_cmove. |
| Delete noce_emit_czero () no longer used. |
| |
| 2025-12-22 Vineet Gupta <vineetg@rivosinc.com> |
| |
| * ifcvt.cc (noce_try_cond_zero_arith): Use expand_simple_binop |
| to re-expand the final pattern. |
| |
| 2025-12-22 Vineet Gupta <vineetg@rivosinc.com> |
| |
| * ifcvt.cc (noce_try_cond_zero_arith): Refactor. |
| |
| 2025-12-22 Vineet Gupta <vineetg@rivosinc.com> |
| |
| * ifcvt.cc (noce_bbs_ok_for_cond_zero_arith): Move logic out. |
| (noce_try_cond_zero_arith): Into here. |
| |
| 2025-12-22 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_expand_mult_with_const_int): Signal |
| when this creates a simple copy that may be optimized. |
| (riscv_legitimate_poly_move): Try to optimize away any copy created |
| by riscv_expand_mult_with_const_int. |
| |
| 2025-12-22 Filip Kastl <fkastl@suse.cz> |
| |
| * doc/invoke.texi: Document |
| --param=memtag-instrument-mem-intrinsics |
| |
| 2025-12-21 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/123089 |
| * tree-vect-loop.cc (vect_update_ivs_after_vectorizer_for_early_breaks): |
| Add conversion if required, Note that if we did truncate the original |
| scalar loop had an overflow here anyway. |
| (vect_get_max_nscalars_per_iter): Expose. |
| * tree-vect-stmts.cc (vect_compute_type_for_early_break_scalar_iv): New. |
| (vectorizable_early_exit): Find smallest type where we won't have UB in |
| the signed IV and store it. |
| * tree-vectorizer.h (LOOP_VINFO_EARLY_BRK_IV_TYPE): New. |
| (class _loop_vec_info): Add early_break_iv_type. |
| (vect_min_prec_for_max_niters): New. |
| * tree-vect-loop-manip.cc (vect_do_peeling): Use it. |
| |
| 2025-12-20 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/123222 |
| * doc/extend.texi: Fix copy-and-pasto for __builtin_*_overflow_p. |
| |
| 2025-12-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/123216 |
| * common/config/i386/i386-common.cc (OPTION_MASK_ISA_AVX512FP16_UNSET): |
| Remove unused macro. |
| (OPTION_MASK_ISA2_AVX512FP16_UNSET, OPTION_MASK_ISA2_AVX512BF16_UNSET, |
| OPTION_MASK_ISA2_AVX512BW_UNSET): Or in OPTION_MASK_ISA2_AVX10_1_UNSET. |
| (OPTION_MASK_ISA2_AVX512CD_UNSET, OPTION_MASK_ISA2_AVX512DQ_UNSET, |
| OPTION_MASK_ISA2_AVX512VL_UNSET, OPTION_MASK_ISA2_AVX512IFMA_UNSET, |
| OPTION_MASK_ISA2_AVX512VNNI_UNSET, |
| OPTION_MASK_ISA2_AVX512VPOPCNTDQ_UNSET, |
| OPTION_MASK_ISA2_AVX512VBMI_UNSET, OPTION_MASK_ISA2_AVX512VBMI2_UNSET, |
| OPTION_MASK_ISA2_AVX512BITALG_UNSET): Define. |
| (ix86_handle_option): For |
| -mno-avx512{cd,dq,vl,ifma,vnni,vpopcntdq,vbmi,vbmi2,bitalg} also remove |
| corresponding OPTION_MASK_ISA2_AVX512*_UNSET from ix86_isa_flags2 |
| and add it to ix86_isa_flags2_explicit. |
| |
| 2025-12-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/123217 |
| * config/i386/i386-expand.cc (ix86_expand_builtin) |
| <case IX86_BUILTIN_ENCODEKEY128U32, case IX86_BUILTIN_ENCODEKEY256U32, |
| case IX86_BUILTIN_URDMSR>: Set target to a new pseudo even if it is |
| non-NULL but doesn't satisfy register_operand predicate. |
| |
| 2025-12-19 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| PR tree-optimization/123152 |
| * tree-vect-loop-manip.cc |
| (slpeel_tree_duplicate_loop_to_edge_cfg): Correct order of |
| dominator update. |
| |
| 2025-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * alias.cc (alias_set_subset_of): Fix comment typo, explicitely |
| -> explicitly. |
| * builtins.cc (get_object_alignment_2): Likewise. |
| * combine.cc (make_extraction): Fix comment typos, potentionally |
| -> potentially and implicitely -> implicitly. |
| (simplify_comparison): Fix comment typo, outmost -> outermost. |
| (record_truncated_values): Fix comment typo, truning -> turning. |
| (distribute_notes): Fix comment typo, recourse -> recurse. |
| * config/avr/avr.md (*<extend_u>maddqihi4_split): Fix comment |
| typo, explicitely -> explicitly. |
| (*mulu<mode>si3): Likewise. Fix comment typo, implicitely |
| -> implicitly. |
| * config/i386/i386.cc (ix86_get_drap_rtx): Fix comment typo, |
| statment -> statement. |
| * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Fix comment typo, |
| transfered -> transferred. |
| * config/s390/s390.cc (s390_encode_section_info): Fix comment typo, |
| catched -> caught. |
| * dwarf2out.cc (dwarf_proc_stack_usage_map): Fix comment typo, |
| invokation -> invocation. |
| (dwarf2out_die_ref_for_decl): Fix comment typo, refering -> referring. |
| (loc_list_from_tree_1): Fix message typo, INDCREMENT -> INCREMENT. |
| (field_byte_offset): Fix comment typo, simplier -> simpler. |
| (add_data_member_location_attribute): Fix comment typo, catched |
| -> caught. |
| (gen_lexical_block_die): Fix comment typo, conrecte -> concrete. |
| (analyze_variants_discr): Fix comment typo, consistant -> consistent. |
| (gen_decl_die): Fix comment typo, prunning -> pruning. |
| (resolve_variable_values): Fix comment typo, refering -> referring. |
| * genmatch.cc (expr::expr_type): Fix comment typo, explicitely |
| -> explicitly. |
| * gimple-range-phi.cc (phi_group::is_modifier_p): Fix comment typo, |
| statment -> statement. |
| * gimple-ssa-store-merging.cc (pass_optimize_bswap::execute): Fix |
| comment typo, invokation -> invocation. Add second space after dot. |
| * gimple-walk.cc (walk_gimple_op): Fix comment typo, explicitely |
| -> explicitly. |
| * gimplify.cc (mostly_copy_tree_r): Fix comment typo, gimplication |
| -> gimplification. |
| (var_needs_auto_init_p): Fix comment typo, automaticly |
| -> automatically. |
| (gimplify_decl_expr): Fix comment typos, varaible -> variable |
| and compatiple -> compatible. |
| (emit_warn_switch_unreachable): Fix comment typo, statment |
| -> statement. |
| (should_warn_for_implicit_fallthrough): Fix comment typo, fallthough |
| -> fallthrough. |
| (modify_call_for_omp_dispatch): Fix comment typo, interobject |
| -> interop. |
| (oacc_default_clause): Fix comment typo, tranfered -> transferred. |
| (omp_notice_variable): Likewise. |
| * graphite-isl-ast-to-gimple.cc (binary_op_to_tree): Fix comment |
| typo, explicitely -> explicitly. |
| * ipa-param-manipulation.cc (push_function_arg_decls): Likewise. |
| * ipa-prop.cc (ipa_make_edge_direct_to_target): Likewise. |
| * ipa-prop.h (ipa_node_params::node_within_scc): Fix comment typo, |
| potentionally -> potentially. |
| * loop-init.cc (fix_loop_structure): Fix comment typo, refering |
| -> referring. |
| * match.pd (1 / X -> X == 1): Fix comment typo, simplier -> simpler. |
| * opts.cc (global_options): Fix comment typo, explicitely |
| -> explicitly. |
| * sanopt.cc (sanopt_optimize_walker): Fix comment typo, potentionally |
| -> potentially. |
| * tree.cc (variably_modified_type_p): Fix comment typo, refering |
| -> referring. |
| * tree-cfg.cc (group_case_labels_stmt): Likewise. |
| (dump_function_to_file): Fix comment typo, explicitely -> explicitly. |
| (make_forwarders_with_degenerate_phis): Likewise. |
| * tree-inline.cc (replace_locals_op): Likewise. |
| * tree-loop-distribution.cc (loop_distribution::execute): Fix comment |
| typo, refering -> referring. |
| * tree-sra.cc (generate_subtree_deferred_init): Fix comment typo, |
| statment -> statement. |
| * tree-ssa-alias.cc (ptrs_compare_unequal): Fix comment typo, |
| explicitely -> explicitly. |
| * tree-ssa-forwprop.cc (_vec_perm_simplify_seq::stmt): Fix comment |
| typo, statment -> statement. |
| (narrow_vec_perm_simplify_seq): Fix message typo, statment |
| -> statement. |
| (blend_vec_perm_simplify_seqs): Likewise. |
| * tree-ssa-pre.cc (compute_antic_aux): Fix comment typo, explicitely |
| -> explicitly. |
| * tree-vect-loop-manip.cc (vect_do_peeling): Fix comment typo, |
| refering -> referring. |
| * tree-vect-patterns.cc: Fix comment typo, transfered -> transferred. |
| * tree-vect-slp.cc (vect_build_slp_tree_2): Fix comment typo, |
| explicitely -> explicitly. |
| (vect_build_slp_instance): Fix comment typo, transfered |
| -> transferred. |
| (vect_optimize_slp_pass::build_vertices): Fix comment typo, |
| explicitely -> explicitly. |
| (vect_slp_analyze_node_operations): Likewise. Fix comment typo, |
| refering -> referring. |
| * tree-vect-stmts.cc (vectorizable_store): Fix comment typo, catched |
| -> caught. |
| * vec.h (auto_vec::auto_vec): Fix comment typo, refering -> referring. |
| |
| 2025-12-19 Robin Dapp <rdapp@qti.qualcomm.com> |
| |
| PR target/122970 |
| * config/riscv/riscv-v.cc (expand_const_vector_interleaved_stepped_npatterns): |
| Reinterpret base as smaller type. |
| |
| 2025-12-19 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/riscv-v.cc (expand_vector_subreg_extract): New |
| function that checks for and performs "vector extracts". |
| (legitimize_move): Call new function. |
| |
| 2025-12-19 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/autovec.md: Ditto. |
| * config/riscv/autovec-opt.md: Add VLS modes. |
| * config/riscv/vector-crypto.md: Ditto. |
| * config/riscv/vector-iterators.md: Ditto. |
| * config/riscv/vector.md (@pred_ffs<VB:mode><P:mode>): Ditto. |
| (@pred_ffs<VB_VLS:mode><P:mode>): Ditto. |
| |
| 2025-12-19 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Rename. |
| * config/riscv/riscv-protos.h (riscv_v_ext_vector_mode_p): |
| Rename. |
| (riscv_v_ext_tuple_mode_p): Ditto. |
| (riscv_v_ext_vls_mode_p): Ditto. |
| (riscv_vla_mode_p): To new name. |
| (riscv_tuple_mode_p): Ditto. |
| (riscv_vls_mode_p): Ditto. |
| * config/riscv/riscv-selftests.cc (run_const_vector_selftests): |
| Use new name. |
| (BROADCAST_TEST): Ditto. |
| * config/riscv/riscv-v.cc (imm_avl_p): Ditto. |
| (legitimize_move): Ditto. |
| (get_vlmul): Ditto. |
| (get_vlmax_rtx): Ditto. |
| (get_nf): Ditto. |
| (get_subpart_mode): Ditto. |
| (get_ratio): Ditto. |
| (get_mask_mode): Ditto. |
| (get_vector_mode): Ditto. |
| (get_tuple_mode): Ditto. |
| (can_find_related_mode_p): Ditto. |
| (cmp_lmul_le_one): Ditto. |
| (cmp_lmul_gt_one): Ditto. |
| (vls_mode_valid_p): Ditto. |
| * config/riscv/riscv-vector-builtins-bases.cc: Ditto. |
| * config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher): Ditto. |
| (register_builtin_type): Ditto. |
| * config/riscv/riscv-vector-costs.cc (max_number_of_live_regs): |
| Ditto. |
| (compute_estimated_lmul): Ditto. |
| (costs::costs): Ditto. |
| (costs::better_main_loop_than_p): Ditto. |
| (costs::adjust_stmt_cost): Ditto. |
| * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): Ditto. |
| (riscv_vla_mode_p): Ditto. |
| (riscv_v_ext_tuple_mode_p): Ditto. |
| (riscv_tuple_mode_p): Ditto. |
| (riscv_v_ext_vls_mode_p): Ditto. |
| (riscv_vls_mode_p): Ditto. |
| (riscv_v_ext_mode_p): Ditto. |
| (riscv_vector_mode_p): Ditto. |
| (riscv_v_adjust_nunits): Ditto. |
| (riscv_v_adjust_bytesize): Ditto. |
| (riscv_classify_address): Ditto. |
| (riscv_legitimate_address_p): Ditto. |
| (riscv_address_insns): Ditto. |
| (riscv_const_insns): Ditto. |
| (riscv_legitimize_move): Ditto. |
| (riscv_binary_cost): Ditto. |
| (riscv_rtx_costs): Ditto. |
| (riscv_pass_vls_aggregate_in_gpr): Ditto. |
| (riscv_get_vector_arg): Ditto. |
| (riscv_pass_vls_in_vr): Ditto. |
| (riscv_get_arg_info): Ditto. |
| (riscv_pass_by_reference): Ditto. |
| (riscv_vector_required_min_vlen): Ditto. |
| (riscv_get_v_regno_alignment): Ditto. |
| (riscv_print_operand): Ditto. |
| (riscv_secondary_memory_needed): Ditto. |
| (riscv_hard_regno_nregs): Ditto. |
| (riscv_hard_regno_mode_ok): Ditto. |
| (riscv_modes_tieable_p): Ditto. |
| (riscv_can_change_mode_class): Ditto. |
| (riscv_vector_mode_supported_p): Ditto. |
| (riscv_regmode_natural_size): Ditto. |
| (riscv_get_mask_mode): Ditto. |
| (riscv_vectorize_preferred_vector_alignment): Ditto. |
| (riscv_vectorize_vec_perm_const): Ditto. |
| (get_common_costs): Ditto. |
| (riscv_preferred_else_value): Ditto. |
| |
| 2025-12-19 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/autovec.md (mask_len_gather_load<RATIO64:mode><RATIO64I:mode>): |
| Change from this... |
| (mask_len_gather_load<mode><vindex>): ...to this. |
| (mask_len_gather_load<RATIO32:mode><RATIO32I:mode>): Ditto. |
| (mask_len_gather_load<mode><vindex_double_trunc>): Ditto. |
| (mask_len_gather_load<RATIO16:mode><RATIO16I:mode>): Ditto. |
| (mask_len_gather_load<mode><vindex_quad_trunc>): Ditto. |
| (mask_len_gather_load<RATIO8:mode><RATIO8I:mode>): Ditto. |
| (mask_len_gather_load<mode><vindex_oct_trunc>): Ditto. |
| (mask_len_gather_load<RATIO4:mode><RATIO4I:mode>): Ditto. |
| (mask_len_gather_load<mode><vindex_double_ext>): Ditto. |
| (mask_len_gather_load<RATIO2:mode><RATIO2I:mode>): Ditto. |
| (mask_len_gather_load<mode><vindex_quad_ext>): Ditto. |
| (mask_len_gather_load<mode><mode>): Ditto. |
| (mask_len_gather_load<mode><vindex_oct_ext>): Ditto. |
| (mask_len_scatter_store<RATIO64:mode><RATIO64I:mode>): Ditto. |
| (mask_len_scatter_store<mode><vindex>): Ditto. |
| (mask_len_scatter_store<RATIO32:mode><RATIO32I:mode>): Ditto. |
| (mask_len_scatter_store<mode><vindex_double_trunc>): Ditto. |
| (mask_len_scatter_store<RATIO16:mode><RATIO16I:mode>): Ditto. |
| (mask_len_scatter_store<mode><vindex_quad_trunc>): Ditto. |
| (mask_len_scatter_store<RATIO8:mode><RATIO8I:mode>): Ditto. |
| (mask_len_scatter_store<mode><vindex_oct_trunc>): Ditto. |
| (mask_len_scatter_store<RATIO4:mode><RATIO4I:mode>): Ditto. |
| (mask_len_scatter_store<mode><vindex_double_ext>): Ditto. |
| (mask_len_scatter_store<RATIO2:mode><RATIO2I:mode>): Ditto. |
| (mask_len_scatter_store<mode><vindex_quad_ext>): Ditto. |
| (mask_len_scatter_store<mode><mode>): Ditto. |
| (mask_len_scatter_store<mode><vindex_oct_ext>): Ditto. |
| * config/riscv/riscv-v.cc (prepare_gather_scatter): Use new |
| scheme |
| (get_gather_scatter_code): Ditto. |
| (expand_gather_scatter): Ditto. |
| * config/riscv/riscv-vector-builtins-bases.cc: Ditto. |
| * config/riscv/vector-iterators.md: Ditto. |
| * config/riscv/vector.md (@pred_indexed_<order>store<RATIO64:mode><RATIO64I:mode>): |
| Go from this... |
| (@pred_indexed_<order>store<mode>_same_eew): ...to this. |
| (@pred_indexed_<order>store<RATIO32:mode><RATIO32I:mode>): |
| Ditto. |
| (@pred_indexed_<order>store<mode>_x2_greater_eew): Ditto. |
| (@pred_indexed_<order>store<RATIO16:mode><RATIO16I:mode>): |
| Ditto. |
| (@pred_indexed_<order>store<mode>_x4_greater_eew): Ditto. |
| (@pred_indexed_<order>store<RATIO8:mode><RATIO8I:mode>): Ditto. |
| (@pred_indexed_<order>store<mode>_x8_greater_eew): Ditto. |
| (@pred_indexed_<order>store<RATIO4:mode><RATIO4I:mode>): Ditto. |
| (@pred_indexed_<order>store<mode>_x2_smaller_eew): Ditto. |
| (@pred_indexed_<order>store<RATIO2:mode><RATIO2I:mode>): Ditto. |
| (@pred_indexed_<order>store<mode>_x4_smaller_eew): Ditto. |
| (@pred_indexed_<order>store<RATIO1:mode><RATIO1:mode>): Ditto. |
| (@pred_indexed_<order>store<mode>_x8_smaller_eew): Ditto. |
| |
| 2025-12-19 Robin Dapp <rdapp@qti.qualcomm.com> |
| |
| PR tree-optimization/123118 |
| * tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Check that |
| the type sign is equal. |
| |
| 2025-12-19 Robin Dapp <rdapp@qti.qualcomm.com> |
| |
| PR tree-optimization/123117 |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): |
| Check if we had a nop conversion and don't use pack/unpack in |
| that case. |
| |
| 2025-12-19 Robin Dapp <rdapp@qti.qualcomm.com> |
| |
| * doc/md.texi: Use unicode quotation marks. |
| |
| 2025-12-19 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/autovec.md (<cbranch_optab><mode>): Implement. |
| * config/riscv/predicates.md (riscv_cbranch_comparison_operator): |
| Define. |
| * config/riscv/vector-iterators.md: New iterators. |
| |
| 2025-12-19 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * optabs.cc (emit_cmp_and_jump_insns): Fix len/bias operands. |
| |
| 2025-12-19 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR tree-optimization/123097 |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): |
| Calculate vector size by number of elements * bit size per |
| element. |
| |
| 2025-12-19 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/123223 |
| * lra-constraints.cc (match_reload, curr_insn_transform): Check |
| rtx on REG when testing scratch pseudos. |
| |
| 2025-12-19 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/h8300/h8300.cc (output_logical_op): Adjust last argument to |
| be a pattern, not an insn. Corresponding implementation changes. |
| (output_shift_loop): Extracted from output_a_shift and improved |
| to use a sentinel to indicate when to stop the loop. |
| (output_a_shift): Use output_shift_loop. |
| (compute_a_shift_length): Handle adjusted shift loop code. |
| * config/h8300/logical.md (logicals): Pass pattern to output_logical_op |
| rather then the full insn. |
| * config/h8300/h8300-protos.h (output_logical_op): Update prototype. |
| |
| 2025-12-19 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/123205 |
| * gimple-range-gori.cc (gori_compute::may_recompute_p): Only |
| recompute range-op statements. |
| * gimple-range-op.cc (gimple_range_op_handler): Default |
| recomputation to true. |
| (maybe_builtin_call): CFN_BUILT_IN_CONSTANT_P should not be |
| recomputable. |
| * gimple-range-op.h (recomputable_p): New. |
| (recomputable_p): New. |
| |
| 2025-12-19 Tobias Burnus <tburnus@baylibre.com> |
| |
| * tree-pretty-print.cc (dump_omp_clause): For uses_allocators, |
| print modifier before allocator variable. |
| |
| 2025-12-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/predicates.md (xtensa_cstoresi_operator): |
| Change it to include unsigned comparisons only when TARGET_SALT is |
| enabled. |
| |
| 2025-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/122968 |
| * dwarf2out.cc (premark_used_variables): Handle "structured bindings" |
| attribute. |
| (dwarf2out_late_global_decl): Likewise. |
| |
| 2025-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/install.texi (--with-tls=): Fix a typo, were -> where. |
| |
| 2025-12-19 Alexandre Oliva <oliva@gnu.org> |
| |
| PR target/55212 |
| * lra-constraints.cc (match_reload): Treat former scratch |
| regs as implicit unused output reloads. |
| (process_alt_operands): Likewise. |
| (curr_insn_transform): Likewise. |
| |
| 2025-12-19 Lewis Hyatt <lhyatt@gmail.com> |
| |
| PR bootstrap/12407 |
| * doc/install.texi (--enable-languages): Document the new language |
| exclusion feature. |
| |
| 2025-12-18 Tobias Burnus <tburnus@baylibre.com> |
| |
| * gimplify.cc (gimplify_scan_omp_clauses): Handle |
| OpenMP device_type clause. |
| * omp-low.cc (scan_sharing_clauses): Likewise. |
| (lower_omp_target): Print 'sorry, unimplemented' for |
| device_type clause value other than 'any'. |
| |
| 2025-12-18 Tejas Belagod <tejas.belagod@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define |
| __ARM_FEATURE_SVE_PREDICATE_OPERATORS. |
| |
| 2025-12-18 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| PR tree-optimization/123153 |
| * tree-vect-loop-manip.cc |
| (slpeel_tree_duplicate_loop_to_edge_cfg): use |
| profile_probability::even () for even likelihood. |
| |
| 2025-12-18 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (sme-lutv2): Fix |
| feature string. |
| |
| 2025-12-18 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-arches.def: Add armv9.6-a. |
| * config/aarch64/aarch64-option-extensions.def: |
| (sve-aes): Update to be enables by smeaes. |
| (sve-bitperm): Update to be enables by smesbitperm. |
| (fprcvt): New cli extension option. |
| (lsfe): Likewise. |
| (f8f32mm): Likewise. |
| (f8f16mm): Likewise. |
| (sme2p2): Likewise. |
| (sve2p2): Likewise. |
| (sve-aes2): Likewise. |
| (sve-f16f32mm): Likewise. |
| (sve-bfscale): Likewise. |
| (ssve-aes): Likewise. |
| (lsui): Likewise. |
| (occmo): Likewise. |
| (pcdphint): Likewise. |
| (pops): Likewise. |
| (ssve-bitperm): Likewise. |
| (ssve-fexpa): Likewise. |
| (sme-mop4): Likewise. |
| (sme-tmop): Likewise. |
| |
| 2025-12-18 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def |
| (sve-aes): New cli extension option. |
| (sve2-aes): Changed to be alias of sve2+sve-aes2. |
| (sve-bitperm): New cli extension option. |
| (sve2-bitperm): Changed to be alias of sve2+sve-bitperm. |
| (sve-sm4): New cli extension option. |
| (sve2-sm4): Changed to be alias of sve2+sve-sm4. |
| (sve-sm4): New cli extension option. |
| (sve2-sm4): Changed to be alias of sve2+sve-sm4. |
| * config/aarch64/aarch64.h (TARGET_SVE2_AES): Updated to require |
| sve2+sve-aes. |
| (TARGET_SVE2_BITPERM): Updated to require sve2+sve-bitperm. |
| (TARGET_SVE2_SHA3): Updated to require sve2+sve-sha3. |
| (TARGET_SVE2_SM4): Updated to require sve2+sve-sm4 |
| * config/aarch64/aarch64-sve-builtins-sve2.def: Update gating for sve2-X |
| intrinsics. |
| |
| 2025-12-18 Alfie Richards <alfie.richards@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc |
| (struct aarch64_extension_info): Add flags_alias_preferred_over. |
| (AARCH64_OPT_EXTENSION): Add setting flags preferred over to 0. |
| (AARCH64_OPT_EXTENSION_ALIAS): New macro def. |
| (aarch64_get_extension_string_for_isa_flags): Update to use alias |
| extensions over constituent extensions. |
| * config/aarch64/aarch64-feature-deps.h (alias_flags): New variable |
| (AARCH64_OPT_EXTENSION): New macro def. |
| (AARCH64_OPT_EXTENSION_ALIAS): New macro def. |
| (HANDLE): Update to use alias_flags. |
| (AARCH64_CORE): Update to use alias_flags. |
| * config/aarch64/aarch64-option-extensions.def |
| (AARCH64_OPT_EXTENSION_ALIAS): New macro def to |
| define alias_prefer_over_flags_X. |
| (crypto): Update to us AARCH64_OPT_EXTENSION_ALIAS. |
| |
| 2025-12-18 WANG Xuerui <git@xen0n.name> |
| |
| PR target/123171 |
| * config/loongarch/loongarch.cc (loongarch_option_restore): Add |
| missing update to la_target.isa.base. |
| |
| 2025-12-18 chenxiaolong <chenxiaolong@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_modes_tieable_p): |
| Add support for vector conversion. |
| |
| 2025-12-18 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org> |
| |
| * opts-common.cc (jobserver_info::jobserver_info): Do not skip |
| negative file descriptors in simple UNIX pipe mode. |
| |
| 2025-12-18 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122734 |
| * tree-ssa-loop-ch.cc (should_duplicate_loop_header_p): Remove |
| check on very_unlikely probability. |
| |
| 2025-12-18 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * predict.cc (unlikely_executed_stmt_p): Fix up return for |
| __builtin_unreachable/__builtin_trap. |
| |
| 2025-12-18 Alexandre Oliva <oliva@adacore.com> |
| |
| * var-tracking.cc (vt_expand_var_loc_chain): Prepare to exit |
| the loop after unsuitable_loc. |
| |
| 2025-12-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/122343 |
| * cselib.cc (cselib_redundant_set_p): Return false for volatile |
| memory source or destination. |
| |
| 2025-12-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_out_shift_with_cnt): Tweak |
| execution time by count-1 cycles in some cases. |
| |
| 2025-12-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-protos.h (out_shift_with_cnt): Remove. |
| * config/avr/avr.cc (avr_out_shift_with_cnt): New static |
| function from out_shift_with_cnt: Pass shift rtx_code instead |
| of asm template. |
| (avr_out_shift_1): New static helper function. |
| (ashlqi3_out, ashlhi3_out, avr_out_ashlpsi3, ashlsi3_out) |
| (ashrqi3_out, ashrhi3_out, avr_out_ashrpsi3, ashrsi3_out) |
| (lshrqi3_out, lshrhi3_out, avr_out_lshrpsi3, lshrsi3_out): |
| Adjust avr_out_shift_with_cnt to new interface. |
| |
| 2025-12-17 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/sync.md (atomic compare and set): Reorder patterns |
| so the stricter pattern comes first. |
| |
| 2025-12-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/123155 |
| * config/i386/xmmintrin.h (_mm_maskmove_si64): Rename offset automatic |
| variable to __offset. |
| |
| 2025-12-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/123155 |
| * config/i386/avx10_2bf16intrin.h (_mm512_roundscale_pbh, |
| _mm512_mask_roundscale_pbh, _mm512_maskz_roundscale_pbh, |
| _mm256_roundscale_pbh, _mm256_mask_roundscale_pbh, |
| _mm256_maskz_roundscale_pbh, _mm_roundscale_pbh, |
| _mm_mask_roundscale_pbh, _mm_maskz_roundscale_pbh, |
| _mm512_reduce_pbh, _mm512_mask_reduce_pbh, _mm512_maskz_reduce_pbh, |
| _mm256_reduce_pbh, _mm256_mask_reduce_pbh, _mm256_maskz_reduce_pbh, |
| _mm_reduce_pbh, _mm_mask_reduce_pbh, _mm_maskz_reduce_pbh): Rename |
| B argument to __B. |
| |
| 2025-12-17 Umesh Kalvakuntla <umesh.kalvakuntla@amd.com> |
| |
| * common/config/i386/cpuinfo.h (get_amd_cpu): Add znver6 1Ah |
| family model numbers. |
| (get_available_features): Set feature AVX512BMM. |
| * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512BMM_SET): |
| New macro. |
| (OPTION_MASK_ISA2_AVX512BMM_UNSET): New macro. |
| (OPTION_MASK_ISA2_AVX512BW_UNSET): Unset AVX512BMM. |
| (ix86_handle_option): Likewise. |
| * common/config/i386/i386-cpuinfo.h (enum processor_subtypes): |
| Add AMDFAM1AH_ZNVER6. |
| (enum processor_features): Add FEATURE_AVX512BMM. |
| * common/config/i386/i386-isas.h: Likewise. |
| * config.gcc: Add avx512bmmintrin.h, avx512bmmvlintrin.h, |
| znver6. |
| * config/i386/cpuid.h (bit_AVX512BMM): New macro. |
| * config/i386/driver-i386.cc (host_detect_local_cpu): Likewise. |
| * config/i386/i386-builtin.def (BDESC): Add AVX512BMM builtins. |
| * config/i386/i386-c.cc (ix86_target_macros_internal): Likewise. |
| * config/i386/i386-isa.def (AVX512BMM): Likewise. |
| * config/i386/i386-options.cc (m_ZNVER6): New macro. |
| (m_ZNVER): Add m_ZNVER6. |
| (processor_cost_table): Uses znver5_cost table for |
| PROCESSOR_ZNVER6 for now. |
| (ix86_valid_target_attribute_inner_p): Likewise. |
| * config/i386/i386.cc (ix86_reassociation_width): Likewise. |
| * config/i386/i386.h (enum processor_type): Likewise. |
| * config/i386/i386.md: Likewise. |
| * config/i386/i386.opt: Likewise. |
| * config/i386/i386.opt.urls: Likewise. |
| * config/i386/immintrin.h: Likewise. |
| * config/i386/sse.md (avx512bmm_vbmacor16x16x16_<mode>): New |
| define_insn. |
| (avx512bmm_vbmacxor16x16x16_<mode>): Likewise. |
| (avx512bmm_vbitrevb_<mode>_mask): Likewise. |
| (avx512bmm_vbitrevb_<mode>): Likewise. |
| * config/i386/x86-tune-sched.cc (ix86_issue_rate): Likewise. |
| (ix86_adjust_cost): Likewise. |
| * config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): Add |
| m_ZNVER6. |
| (X86_TUNE_FUSE_MOV_AND_ALU): Likewise. |
| (X86_TUNE_USE_SCATTER_2PARTS): Likewise. |
| (X86_TUNE_USE_SCATTER_4PARTS): Likewise. |
| (X86_TUNE_USE_SCATTER_8PARTS): Likewise. |
| (X86_TUNE_AVOID_256FMA_CHAINS): Likewise. |
| (X86_TUNE_AVOID_512FMA_CHAINS): Likewise. |
| (X86_TUNE_AVX512_MOVE_BY_PIECES): Likewise. |
| * doc/extend.texi: Likewise. |
| * doc/invoke.texi: Likewise. |
| * config/i386/avx512bmmintrin.h: New file. |
| * config/i386/avx512bmmvlintrin.h: New file. |
| |
| 2025-12-16 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_function_abi): Use checking assert. |
| (aarch64_fndecl_abi): Test for the availability of the |
| machine content before trying to look up the cached PCS. |
| Use a checking assert. |
| |
| 2025-12-16 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2025-12-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_expand_scc_SALT): |
| New sub-function that emits the SALT/SALTU instructions. |
| (xtensa_expand_scc): Change the part related to the SALT/SALTU |
| instructions to a call to the above sub-function. |
| |
| 2025-12-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc |
| (xtensa_expand_block_set_libcall, |
| xtensa_expand_block_set_unrolled_loop, |
| xtensa_expand_block_set_small_loop, xtensa_call_tls_desc): |
| Change the return statement to pass the return value of |
| end_sequence() directly without going through a variable, and |
| remove the definition of that variable. |
| |
| 2025-12-16 Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com> |
| Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * config/aarch64/aarch64.md (addg): Update pattern to use |
| addg/subg instructions. |
| (stg): Update pattern. |
| (st2g): New pattern. |
| (tag_memory): Likewise. |
| (compose_tag): Likewise. |
| (irq): Update pattern to accept xzr register. |
| (gmi): Likewise. |
| (UNSPECV_TAG_SPACE): Define. |
| * config/aarch64/aarch64.cc (AARCH64_MEMTAG_GRANULE_SIZE): |
| Define. |
| (AARCH64_MEMTAG_TAG_BITSIZE): Likewise. |
| (aarch64_override_options_internal): Error out if MTE instructions |
| are not available. |
| (aarch64_post_cfi_startproc): Emit .cfi_mte_tagged_frame. |
| (aarch64_can_tag_addresses): Add MEMTAG specific handling. |
| (aarch64_memtag_tag_bitsize): New function |
| (aarch64_memtag_granule_size): Likewise. |
| (aarch64_memtag_insert_random_tag): Likwise. |
| (aarch64_memtag_add_tag): Likewise. |
| (aarch64_memtag_extract_tag): Likewise. |
| (aarch64_granule16_memory_address_p): Likewise. |
| (aarch64_emit_stxg_insn): Likewise. |
| (aarch64_memtag_tag_memory_via_loop): New definition. |
| (aarch64_expand_tag_memory): Likewise. |
| (aarch64_check_memtag_ops): Likewise. |
| (TARGET_MEMTAG_TAG_BITSIZE): Likewise. |
| (TARGET_MEMTAG_GRANULE_SIZE): Likewise. |
| (TARGET_MEMTAG_INSERT_RANDOM_TAG): Likewise. |
| (TARGET_MEMTAG_ADD_TAG): Likewise. |
| (TARGET_MEMTAG_EXTRACT_TAG): Likewise. |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_expand_builtin_memtag): Update set tag builtin logic. |
| * config/aarch64/aarch64-linux.h: Pass memtag-stack sanitizer |
| specific options to the linker. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_granule16_memory_address_p): New prototype. |
| (aarch64_check_memtag_ops): Likewise. |
| (aarch64_expand_tag_memory): Likewise. |
| * config/aarch64/constraints.md (Umg): New memory constraint. |
| (Uag): New constraint. |
| (Ung): Likewise. |
| * config/aarch64/predicates.md (aarch64_memtag_tag_offset): |
| Refactor it. |
| (aarch64_granule16_imm6): Rename from aarch64_granule16_uimm6 and |
| refactor it. |
| (aarch64_granule16_memory_operand): New constraint. |
| * config/aarch64/iterators.md (MTE_PP): New code iterator to be |
| used for mte instructions. |
| (stg_ops): New code attributes. |
| (st2g_ops): Likewise. |
| (mte_name): Likewise. |
| * config/aarch64/aarch64.opt (aarch64-tag-memory-loop-threshold): |
| New parameter. |
| * doc/invoke.texi: Update documentation. |
| |
| 2025-12-16 Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com> |
| Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * asan.cc (handle_builtin_stack_restore): Accommodate MEMTAG |
| sanitizer. |
| (handle_builtin_alloca): Expand differently if MEMTAG sanitizer. |
| (get_mem_refs_of_builtin_call): Include MEMTAG along with |
| HWASAN. |
| (memtag_sanitize_stack_p): New definition. |
| (memtag_sanitize_allocas_p): Likewise. |
| (memtag_memintrin): Likewise. |
| (hwassist_sanitize_p): Likewise. |
| (hwassist_sanitize_stack_p): Likewise. |
| (report_error_func): Include MEMTAG along with HWASAN. |
| (build_check_stmt): Likewise. |
| (instrument_derefs): MEMTAG too does not deal with globals yet. |
| (instrument_builtin_call): Include MEMTAG along with HWASAN. |
| (maybe_instrument_call): Likewise. |
| (asan_expand_mark_ifn): Likewise. |
| (asan_expand_check_ifn): Likewise. |
| (asan_expand_poison_ifn): Expand differently if MEMTAG sanitizer. |
| (asan_instrument): Include MEMTAG along with HWASAN. |
| (hwasan_emit_prologue): Expand differently if MEMTAG sanitizer. |
| (hwasan_emit_untag_frame): Likewise. |
| * asan.h (memtag_sanitize_stack_p): New declaration. |
| (memtag_sanitize_allocas_p): Likewise. |
| (hwassist_sanitize_p): Likewise. |
| (hwassist_sanitize_stack_p): Likewise. |
| (asan_sanitize_use_after_scope): Include MEMTAG along with |
| HWASAN. |
| * cfgexpand.cc (align_local_variable): Likewise. |
| (expand_one_stack_var_at): Likewise. |
| (expand_stack_vars): Likewise. |
| (expand_one_stack_var_1): Likewise. |
| (init_vars_expansion): Likewise. |
| (expand_used_vars): Likewise. |
| (pass_expand::execute): Likewise. |
| * gimplify.cc (asan_poison_variable): Likewise. |
| * internal-fn.cc (expand_HWASAN_ALLOCA_POISON): New definition. |
| (expand_HWASAN_ALLOCA_UNPOISON): Expand differently if MEMTAG |
| sanitizer. |
| (expand_HWASAN_MARK): Likewise. |
| * internal-fn.def (HWASAN_ALLOCA_POISON): Define new. |
| * params.opt: Document new param. |
| * sanopt.cc (pass_sanopt::execute): Include MEMTAG along with |
| HWASAN. |
| * gcc.cc (sanitize_spec_function): Add check for memtag-stack. |
| * doc/tm.texi: Regenerate. |
| * target.def (extract_tag): Update documentation. |
| (add_tag): Likewise. |
| (insert_random_tag): Likewise. |
| |
| 2025-12-16 Indu Bhagat <indu.bhagat@oracle.com> |
| Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com> |
| |
| * builtins.def: Adjust the macro to include the new |
| SANTIZIE_MEMTAG_STACK. |
| * flag-types.h (enum sanitize_code): Add new enumerator for |
| SANITIZE_MEMTAG and SANITIZE_MEMTAG_STACK. |
| * opts.cc (finish_options): memtag-stack sanitizer conflicts with |
| hwaddress and address sanitizers. |
| (sanitizer_opts): Add new memtag-stack sanitizer. |
| (parse_sanitizer_options): memtag-stack sanitizer cannot recover. |
| * params.opt: Add new params for memtag-stack sanitizer. |
| * doc/invoke.texi: Update documentation. |
| |
| 2025-12-16 Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com> |
| |
| * target-insns.def (compose_tag): New target instruction. |
| * doc/md.texi (compose_tag): Add documentation. |
| |
| 2025-12-16 Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com> |
| |
| * target-insns.def (tag_memory): New target instruction. |
| * doc/md.texi (tag_memory): Add documentation. |
| |
| 2025-12-16 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| * config/aarch64/aarch64.md: Include olympus.md. |
| * config/aarch64/olympus.md: New file. |
| * config/aarch64/tuning_models/olympus.h: Add dispatch |
| constraints and enable dispatch scheduling. |
| |
| 2025-12-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| * haifa-sched.cc (choose_ready): Don't require dfa_lookahead <= 0 |
| to schedule SCHED_GROUP_P insns first. |
| |
| 2025-12-16 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/122456 |
| * cgraph.cc (cgraph_edge::resolve_speculation): Handle |
| a NULL symtab_node::get (callee_decl). |
| |
| 2025-12-16 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123110 |
| * tree-cfgcleanup.cc (maybe_remove_forwarder_block): Add back |
| check for eh landing pad or non-local dest on the dest. |
| |
| 2025-12-16 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123111 |
| * tree-cfg.cc (ifconvertable_edge): New function. |
| (make_forwarders_with_degenerate_phis): Add skip_ifcvtable argument, |
| check ifconvertable_edge if skip_ifcvtable is true. |
| * tree-cfg.h (make_forwarders_with_degenerate_phis): New argument |
| with default of false. |
| * tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing): Update |
| argument to make_forwarders_with_degenerate_phis. |
| |
| 2025-12-15 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/107666 |
| * common.opt (fspeculatively-call-stored-functions): New. |
| * cgraph.h (cgraph_simple_indirect_info): New fields rec_type and |
| fld_offset. |
| * ipa-prop.h (ipa_analyze_var_static_initializer): Declare. |
| (ipa_dump_noted_record_fnptrs): Likewise. |
| (ipa_debug_noted_record_fnptrs): Likewise. |
| (ipa_single_noted_fnptr_in_record): Likewise. |
| (ipa_free_noted_fnptr_calls): Likewise. |
| * ipa-cp.cc (ipcp_generate_summary): Call |
| ipa_analyze_var_static_initializer on each varbool node with a static |
| initializer. |
| * ipa-devirt.cc (struct devirt_stats): New type. |
| (devirt_target_ok_p): New function. |
| (ipa_devirt): Move statistics counters to the new structure. dump |
| noted function pointers stored in records. Check for edge hotness |
| first and for odr_types only for polymorphic edges. Moved a number of |
| checks to devirt_target_ok_p. Also add speculative direct calls for |
| non-polymorphic indirect ones when ipa_single_noted_fnptr_in_record |
| finds a likely target. Call ipa_free_noted_fnptr_calls. |
| (pass_ipa_devirt::gate): Also check the new flag. |
| * ipa-prop.cc (noted_fnptr_store): New type. |
| (struct noted_fnptr_hasher): Likewise. |
| (noted_fnptr_hasher::hash): New function. |
| (noted_fnptr_hasher::equal): Likewise. |
| (noted_fnptrs_in_records): New. |
| (is_func_ptr_from_record): New function. |
| (ipa_analyze_indirect_call_uses): Also simple create indirect info |
| structures with fnptr_loaded_from_record set. |
| (note_fnptr_in_record): New function. |
| (ipa_dump_noted_record_fnptrs): Likewise. |
| (ipa_debug_noted_record_fnptrs): Likewise. |
| (ipa_single_noted_fnptr_in_record): Likewise. |
| (ipa_free_noted_fnptr_calls): Likewise. |
| (ipa_analyze_stmt_uses): Also look for stroes of function pointers to |
| record structures. |
| (ipa_analyze_var_static_initializer): New function. |
| (ipa_write_indirect_edge_info): Also stream fnptr_loaded_from_record |
| indirec infos. |
| (ipa_read_indirect_edge_info): Likewise. |
| (ipa_prop_write_jump_functions): Also stream the contents of |
| noted_fnptrs_in_records. |
| (ipa_prop_read_section): Likewise. |
| * opts.cc (default_options_table): Also turn on |
| OPT_fspeculatively_call_stored_functions at -O2. |
| (common_handle_option): Turn flag_speculatively_call_stored_functions |
| when using profile feedback. |
| * doc/invoke.texi (-fspeculatively-call-stored-functions): New. |
| |
| 2025-12-15 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (cgraph_node): Adjust the comment of member function |
| create_indirect_edge. |
| (enum cgraph_indirect_info_kind): New. |
| (cgraph_indirect_call_info): Convert into a base class. |
| (cgraph_simple_indirect_info): New. |
| (cgraph_polymorphic_indirect_info): Likewise. |
| (usable_polymorphic_info_p): Likewise. |
| (is_a_helper <cgraph_simple_indirect_info *>::test): Likewise. |
| (is_a_helper <cgraph_polymorphic_indirect_info *>::test): Likewise. |
| (cgraph_allocate_init_indirect_info): Remove declaration. |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use the |
| appropriate derived type of indirect info. |
| * cgraph.cc (cgraph_allocate_init_indirect_info): Removed. |
| (cgraph_node::create_indirect_edge): Create an appropriate type of |
| indirect_info. |
| (cgraph_node::dump): Dump indirect info using its dump function. |
| (cgraph_indirect_call_info::dump): New function. |
| (cgraph_indirect_call_info::debug): Likewise. |
| * cgraphclones.cc (cgraph_edge::clone): Create an appropriate type of |
| indirect_info. |
| * cgraphunit.cc (analyze_functions): Use the appropriate derived type |
| of indirect info. |
| * ipa-cp.cc (initialize_node_lattices): Adjust the check for |
| polymorphic indirect info. |
| (ipa_get_indirect_edge_target_1): Use the appropriate derived types of |
| indirect info. |
| (ipcp_discover_new_direct_edges): Likewise. |
| * ipa-devirt.cc (ipa_devirt): Use the polymorphis derived type of |
| indirect info and check that it is usable. |
| * ipa-inline.cc (dump_inline_stats): Adjust the check for polymorphic |
| indirect info. |
| * ipa-profile.cc (ipa_profile): Likewise and check usability. |
| * ipa-prop.cc (ipa_print_node_jump_functions): Dump indirect info |
| using its dumping member function. |
| (ipa_note_param_call): Removed. |
| (ipa_analyze_indirect_call_uses): Use the appropriate derived type of |
| indirect info, set all fields of indirect info separately rather than |
| relying on ipa_note_param_call. |
| (ipa_analyze_virtual_call_uses): Use the polymorphis derived type of |
| indirect info and check that it is usable, set all fields of indirect |
| info separately rather than relying on ipa_note_param_call. |
| (ipa_analyze_call_uses): Use the appropriate derived type of indirect |
| info. |
| (ipa_make_edge_direct_to_target): Use the appropriate derived type of |
| indirect info. Remove wrong note that member_ptr check was not |
| needed. Adjust check for polymorphic call when dumping. |
| (try_make_edge_direct_simple_call): Use the appropriate derived type |
| of indirect info. |
| (try_make_edge_direct_virtual_call): Use the polymorphis derived type |
| of indirect info and check that it is usable. |
| (update_indirect_edges_after_inlining): Use the appropriate derived |
| type of indirect info. Define local variables only before their first |
| use. |
| (ipa_write_indirect_edge_info): Also stream indirect info kind. Use |
| the appropriate derived type of indirect info. |
| (ipa_read_indirect_edge_info): Check that the streamed in indirect |
| info kind matches rthe structure at hand. Use the appropriate derived |
| type of indirect info. |
| * ipa-utils.h (possible_polymorphic_call_targets): Use the |
| polymorphis derived type of indirect info. Assert it is usable. |
| (dump_possible_polymorphic_call_targets): Use the polymorphis |
| derived type of indirect info and check it is usable. |
| (possible_polymorphic_call_target_p): Likewise. |
| * ipa.cc (symbol_table::remove_unreachable_nodes): Use |
| usable_polymorphic_info_p. |
| * lto-cgraph.cc (lto_output_edge): Stream indirect info kind. |
| (compute_ltrans_boundary): Use usable_polymorphic_info_p. |
| (input_edge): Move definition of ecf_flags before its first use. |
| Pass true as the last parameter to create_indirect_edge. Stream |
| indirect info kind and create a corresponding type to hold the |
| information. |
| * trans-mem.cc (ipa_tm_insert_gettmclone_call): Use the |
| polymorphis derived type of indirect info. |
| |
| 2025-12-15 Martin Jambor <mjambor@suse.cz> |
| |
| * gengtype.cc (walk_subclasses): Avoid generating code with unused |
| variables. |
| |
| 2025-12-15 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com> |
| |
| PR tree-optimization/122987 |
| * tree-ssa-ifcombine.cc (ifcombine_ifandif): Replace |
| force_gimple_operand_gsi with gimple_build. |
| |
| 2025-12-15 Joseph Myers <josmyers@redhat.com> |
| |
| * Makefile.in (PLUGIN_HEADERS): Add $(srcdir)/text-art/*.h. |
| (install-plugin): Preserve directory structure for text-art |
| headers. |
| |
| 2025-12-15 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (cortex-a320): New core. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| |
| 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| * tree-vect-loop.cc (vect_analyze_loop_form): Relax niters |
| condition. |
| |
| 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): |
| Enable peeling for uncounted loops. |
| * tree-vect-loop-manip.cc |
| (slpeel_tree_duplicate_loop_to_edge_cfg): Add exit condition |
| duplication functionality. |
| * tree-vectorizer.h (slpeel_tree_duplicate_loop_to_edge_cfg): |
| Modify function signature. |
| (vect_do_peeling): Enable uncounted loop peeling. |
| |
| 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| * tree-vect-data-refs.cc (vect_prune_runtime_alias_test_list): |
| Reject when !operand_equal_p for any data ref pair. |
| |
| 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| * tree-vect-loop.cc (vect_analyze_loop_2): Disable partial |
| vector use for uncounted loops. |
| |
| 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): |
| reset IVs and accumulators for all exits for uncounted loops. |
| * tree-vectorizer.h (slpeel_tree_duplicate_loop_to_edge_cfg): |
| add boolean `uncounted_p' argument. |
| |
| 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| * tree-vect-loop-manip.cc (vect_do_peeling): Disable vector |
| loop skip checking. |
| (vect_loop_versioning): skip profitability check for uncounted loops. |
| |
| 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| * tree-vect-loop-manip.cc (vect_do_peeling): Disable niters |
| update. |
| * tree-vect-loop.cc (vect_transform_loop): Likewise. |
| |
| 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| * tree-vectorizer.h (LOOP_VINFO_IV_EXIT): Replace this... |
| (LOOP_VINFO_MAIN_EXIT): ...with this. |
| (LOOP_VINFO_EPILOGUE_IV_EXIT): Replace this... |
| (LOOP_VINFO_EPILOGUE_MAIN_EXIT): ...with this. |
| (LOOP_VINFO_SCALAR_IV_EXIT): Replace this... |
| (LOOP_VINFO_SCALAR_MAIN_EXIT): ...with this. |
| (class _loop_vec_info): s/iv/main for `vec_loop_iv_exit', |
| `vec_epilogue_loop_main_exit' and `scalar_loop_main_exit' |
| class members. |
| * tree-vect-data-refs.cc |
| (vect_enhance_data_refs_alignment): |
| s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/. |
| * tree-vect-loop-manip.cc |
| (vect_set_loop_controls_directly): Likewise. |
| (vect_gen_vector_loop_niters_mult_vf): Likewise. |
| (vect_loop_versioning): Likewise. |
| (vect_do_peeling): |
| s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/, |
| s/LOOP_VINFO_SCALAR_IV_EXIT/LOOP_VINFO_SCALAR_MAIN_EXIT, |
| s/LOOP_VINFO_EPILOGUE_IV_EXIT/LOOP_VINFO_EPILOGUE_MAIN_EXIT. |
| * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): |
| s/iv_exit/main_exit/ in initializer list. |
| (vec_init_loop_exit_info): Handle multiple-exit uncounted loops. |
| (vect_analyze_loop_form): Fix `failure_at' message. |
| (vect_create_loop_vinfo): |
| s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/. |
| (vect_create_epilog_for_reduction): Likewise. |
| (vectorizable_live_operation): Likewise. |
| (vect_update_ivs_after_vectorizer_for_early_breaks): Likewise. |
| (vect_transform_loop): |
| s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/, |
| s/LOOP_VINFO_SCALAR_IV_EXIT/LOOP_VINFO_SCALAR_MAIN_EXIT. |
| * tree-vectorizer.cc (set_uid_loop_bbs): |
| s/LOOP_VINFO_SCALAR_IV_EXIT/LOOP_VINFO_SCALAR_MAIN_EXIT. |
| |
| 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| * tree-vectorizer.h (LOOP_VINFO_EARLY_BREAKS_VECT_PEELED): OR |
| its current definition with `LOOP_VINFO_NITERS_UNCOUNTED_P(L)' |
| * tree-vect-loop.cc (vect_create_loop_vinfo): Don't populate |
| `LOOP_VINFO_LOOP_IV_COND' for uncounted loops. |
| |
| 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| * tree-vect-loop-manip.cc (vect_build_loop_niters): Gracefully |
| handle uncounted loops. |
| (vect_gen_prolog_loop_niters): Add type default of `sizetype'. |
| (vect_gen_vector_loop_niters): Likewise. |
| (vect_do_peeling): Likewise. |
| * tree-vect-loop.cc (vect_min_prec_for_max_niters): Likewise. |
| (loop_niters_no_overflow): Likewise. |
| * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCOUNTED_P): New. |
| |
| 2025-12-15 Peter Damianov <peter0x44@disroot.org> |
| |
| PR target/108866 |
| * doc/install.texi: Document --with-windres configure option. |
| |
| 2025-12-15 Peter Damianov <peter0x44@disroot.org> |
| |
| PR target/108866 |
| * gcc.cc (find_a_program): Add check for DEFAULT_WINDRES. |
| * configure.ac: Add --with-windres= option. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| |
| 2025-12-15 Peter Damianov <peter0x44@disroot.org> |
| |
| PR driver/108866 |
| * gcc.cc (default_compilers): Add EXTRA_DEFAULT_COMPILERS so the config |
| of a target can add an extra compiler spec to default_compilers. |
| * config/i386/cygming.h (WINDRES_FORMAT_SPEC): New macro to handle |
| PE format selection based on TARGET_64BIT_DEFAULT and -m32/-m64 flags. |
| (EXTRA_DEFAULT_COMPILERS): Add spec for windres. |
| * config/aarch64/cygming.h (EXTRA_DEFAULT_COMPILERS): Likewise. |
| |
| 2025-12-15 Jerry Zhang Jian <jerry.zhangjian@sifive.com> |
| |
| * config/riscv/gen-riscv-ext-opt.cc: Rename UPPERCAE_NAME to |
| UPPERCASE_NAME. |
| * config/riscv/gen-riscv-ext-texi.cc: Likewise. |
| * config/riscv/riscv-ext-corev.def: Likewise. |
| * config/riscv/riscv-ext-sifive.def: Likewise. |
| * config/riscv/riscv-ext-thead.def: Likewise. |
| * config/riscv/riscv-ext-ventana.def: Likewise. |
| |
| 2025-12-14 Lewis Hyatt <lhyatt@gmail.com> |
| |
| PR tree-optimization/106409 |
| * gimple-ssa-warn-access.cc (maybe_warn_alloc_args_overflow): Adjust |
| comment for clarity, and augment check to work in LTO as well. |
| |
| 2025-12-14 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| PR rtl-optimization/122274 |
| * regcprop.cc (value_data_entry): New field. |
| (kill_value_one_regno): Update field. |
| (init_value_data): Initialize field. |
| (kill_set_value_data): New field. |
| (kill_set_value): Update field. |
| (kill_autoinc_value): Likewise. |
| (copy_value): New parameter. Update field. |
| (incompatible_frame_status): New function. |
| (find_oldest_value_reg): New parameter. Compare frame relatedness of |
| insn and propagated value. |
| (replace_oldest_value_reg): Pass additional parameter to |
| find_oldest_value_reg(). |
| (copyprop_hardreg_forward_1): Pass additional parameter to |
| find_oldest_value_reg(). Compare frame relatedness of insn and |
| propagated value. Call copy_value() with additional parameter. |
| |
| 2025-12-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/46555 |
| * tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing): |
| Unconditionally set TODO_cleanup_cfg. |
| |
| 2025-12-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd: Disable a few match patterns for !GIMPLE. |
| |
| 2025-12-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122734 |
| * tree-ssa-loop-ch.cc (should_duplicate_loop_header_p): Add new argument, |
| canbe_neverexecuted. When canbe_neverexecuted is true, return if a loop |
| exit is "never executed" like we are doing an invariant conditional. |
| (ch_base::copy_headers): Update call to should_duplicate_loop_header_p. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * config/alpha/alpha.opt.urls: Regenerated. |
| * config/arc/arc.opt.urls: Regenerated. |
| * config/arm/arm.opt.urls: Regenerated. |
| * config/bpf/bpf.opt.urls: Regenerated. |
| * config/c6x/c6x.opt.urls: Regenerated. |
| * config/cris/cris.opt.urls: Regenerated. |
| * config/csky/csky.opt.urls: Regenerated. |
| * config/h8300/h8300.opt.urls: Regenerated. |
| * config/i386/i386.opt.urls: Regenerated. |
| * config/ia64/ia64.opt.urls: Regenerated. |
| * config/lm32/lm32.opt.urls: Regenerated. |
| * config/loongarch/loongarch.opt.urls: Regenerated. |
| * config/lynx.opt.urls: Regenerated. |
| * config/m32r/m32r.opt.urls: Regenerated. |
| * config/m68k/m68k.opt.urls: Regenerated. |
| * config/mcore/mcore.opt.urls: Regenerated. |
| * config/microblaze/microblaze.opt.urls: Regenerated. |
| * config/mips/mips.opt.urls: Regenerated. |
| * config/mn10300/mn10300.opt.urls: Regenerated. |
| * config/moxie/moxie.opt.urls: Regenerated. |
| * config/msp430/msp430.opt.urls: Regenerated. |
| * config/nds32/nds32.opt.urls: Regenerated. |
| * config/or1k/elf.opt.urls: Regenerated. |
| * config/pa/pa-hpux.opt.urls: Regenerated. |
| * config/pa/pa.opt.urls: Regenerated. |
| * config/pdp11/pdp11.opt.urls: Regenerated. |
| * config/pru/pru.opt.urls: Regenerated. |
| * config/riscv/riscv.opt.urls: Regenerated. |
| * config/rs6000/rs6000.opt.urls: Regenerated. |
| * config/rs6000/sysv4.opt.urls: Regenerated. |
| * config/s390/s390.opt.urls: Regenerated. |
| * config/sh/sh.opt.urls: Regenerated. |
| * config/sparc/sparc.opt.urls: Regenerated. |
| * config/v850/v850.opt.urls: Regenerated. |
| * config/vax/vax.opt.urls: Regenerated. |
| * config/visium/visium.opt.urls: Regenerated. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <PRU Options>: Fix whitespace |
| in option list. |
| (PRU Options): Copy-editing. Index and list negative option forms. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/pdp11/pdp11.opt (m40, m45): Add RejectNegative. |
| * doc/invoke.texi (Option Summary) <PDP-11 Options>: Remove |
| redundant -mno- forms from the list. |
| (PDP-11 Options): Fix some markup issues. Merge documentation |
| of positive and negative forms of -mac0. Index negative forms |
| of -msplit, -mlra. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/or1k/elf.opt (mnewlib): Mark obsolete option as |
| "Undocumented". |
| * config/or1k/or1k.opt (mcmov): Don't use future tense in doc string. |
| (msfimm): Likewise. |
| (mshftimm): Likewise. |
| * doc/invoke.texi (Option Summary) <OpenRISC Options>: Don't |
| document -mnewlib. |
| (OpenRISC Options): Likewise. Add @opindex entry for |
| -mno-double-float. Fix more instances of incorrect use of future |
| tense. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <Nvidia PTX Options>: Add |
| several missing options. |
| (Nvidia PTX Options): Correct index entry for -march-map. List |
| negative forms of -moptimize, muniform-simt, and -mgomp. Fix some |
| Texinfo markup issues. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <NDS32 Options>: Don't list |
| both positive and negative option forms. |
| (NDS32 Options): Consolidate separate entries for positive and |
| negative forms of the same option. Document missing negative |
| forms in the same style. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/msp430/msp430.opt (mcpu): Mark deprecated option as |
| "Undocumented". |
| (mdevices-csv-loc=): Mark option not intended to be used by users |
| as "Undocumented". |
| * doc/invoke.texi (Option Summary) <MSP430 Options>: Fill in |
| argument syntax for options of the form -mfoo=@var{arg}. Don't |
| list deprecated option -mcpu=. Add missing entries for |
| -mwarn-devices-csv and -muse-lower-region-prefix. |
| (MSP430 Options): Similarly document argument syntax in the table |
| @item entries. Add @opindex entries for negative forms. |
| Delete documentation of deprecated -mcpu= option. Add |
| documentation for -muse-lower-region-prefix. Markup and |
| copy-editing fixes throughout the section. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <MN10300 Options>: Remove |
| redundant -mno- forms from the list. |
| (MN10300 Options): Combine the documentation for -mmult-bug, |
| -mam33, -mliw, and -msetlb with the entries for the respective |
| negative forms. List and index the negative forms -mno-am33-2, |
| -mno-am34, -mno-return-pointer-on-d0, -mno-mul.x. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <MMIX Options>: Remove redundant |
| -mno- forms from the list. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/mips/mips.opt (mnoasmopt): Mark as "Undocumented". |
| * doc/invoke.texi (Option Summary) <MIPS Options>: Add missing |
| entries for -mel/-meb. Only list one of -mfoo/-mno-foo. |
| (MIPS Options): Document -meb/-mel as synonyms for -EB/-EL. |
| Add missing @opindex entries. Document -mmsa and -mfix4300. |
| Minor copy-editing for grammar and jargon issues. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/microblaze/microblaze.opt (Zxl-mode-bootstrap): |
| Mark as "Undocumented". |
| (Zxl-mode-executable): Likewise. |
| (Zxl-mode-novectors): Likewise. |
| (Zxl-mode-xilkernel): Likewise. |
| (Zxl-mode-xmdstub): Likewise. |
| (mxl-stack-check): Likewise. |
| (mno-clearbss): Likewise. |
| (mxl-mode-executable): Make help string more useful. |
| (mxl-mode-xmdstub): Likewise. |
| (mxl-mode-bootstrap): Likewise. |
| (mxl-mode-novectors): Likewise. |
| (mxl-mode-xilkernel): Mark as "Undocumented". |
| * doc/invoke.texi (Option Summary) <MicroBlaze Options>: Delete |
| entries for obsolete options now explicitly undocumented, and add |
| missing -mxl-prefetch option. |
| (MicroBlaze Options): Add missing @opindex entries for negative |
| option forms and list negative forms explicitly when appropriate. |
| Delete documentation for obsolete/deprecated options. Add |
| missing @opindex entries for the m[no-]xml-mode- options. |
| Add missing documentation for -mxl-prefetch. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <MCore Options>: Remove |
| redundant -no options. |
| (MCore Options): Disambiguate documentation for |
| -mbig-endian/-mlittle-endian and -m210/-m340. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| PR target/119404 |
| * config/m68k/m68k.opt (mlra): Fix typo in help string. |
| * doc/invoke.texi (Option Summary) <M680x0 Options>: Remove |
| redundant -mno- forms from the list. |
| (M680x0 Options): Combine documentation for -mshort, mbitfield, |
| -msep-data, -mid-shared-library with that for their respective |
| negatives that were formerly separately listed. Add missing |
| @opindex entries. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <M32R/D Options>: Remove |
| redundant -mno entry. |
| (M32R/D Options): Regularize form of @opindex entries for |
| various options of the form -mfoo=@var{value}. Combine |
| the documentation for -malign-loops and -mno-align-loops. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (M32C Options): Add missing @opindex for negative |
| form. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <LoongArch Options>: |
| Remove redundant -mno forms from list. Fix formatting so that |
| there is uniformly two spaces between options on the same line. |
| (LoongArch Options): Copy-editing for grammar, etc. Add |
| @opindex for negative forms. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (LM32 Options): Add @opindex entries for negative |
| option forms. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/ia64/ia64.opt (msched-prefer-data-spec-insns): Mark as |
| explicitly "Undocumented". |
| (msched-prefer-non-control-spec-insns): Likewise. |
| * doc/invoke.texi (Option Summary) <IA-64 Options>: Remove |
| explicitly undocumented and redundant mno- forms from the list. |
| (IA-64 Options): Remove documentation for already-deleted option |
| -mfused-add and the two explicitly undocumented options. Add |
| @opindex for negative forms and explicitly list the -mno-forms |
| of options that are enabled by default. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/pa/pa.opt (mbig-switch): Mark obsolete option as |
| "Undocumented". |
| (mjump-in-delay): Likewise. |
| (mlra): Likewise. |
| (mnosnake, msnake): Likewise. |
| * doc/invoke.texi (Option Summary) <HPPA Options>: Remove |
| deliberately undocumented options from list. Remove redundant |
| negative/positive forms from list. Fix formatting so there is |
| uniformly two spaces between options on the same line. |
| (HPPA Options): Remove documentation for obsolete options. |
| Add @opindex for negative forms. Properly list -mwsio instead |
| of just referring to it in the -msio docs. Light copy-editing to |
| fix markup, jargon, etc. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/h8300/h8300.opt (mexr, mno-exr): Add FIXME re ambiguity |
| for -mno-exr semantics. |
| * doc/extend.texi (H8/300 Function Attributes): Document |
| monitor and OS_Task attributes. |
| * doc/invoke.texi (Option Summary) <H8/300 Options}: Add -msx, |
| -ms2600, -mquickcall, -mslowbyte. Combine -mexr and -mno-exr. |
| (H8/300 Options): Likewise. Add @opindex entries for options |
| that have negative forms. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/arc/arc.opt: Mark -mbig-endian, -mlittle-endian, |
| -mmixed-code, -mno-mpy, -margonaut, -munalign-prob-threshold=, |
| -mannotate-align, -malign-call, -mRcq, -mRcw, -mbbit-peephole, |
| -mcompact-casesi, -mq-class, -mexpand-adddi, -mcrc, -mdsp-packa, |
| -mdvbf, -mtelephony, -mrtsc, -EB, -EL, -mrla, -mEA, and |
| -multcost= as "Undocumented". |
| * doc/invoke.texi: Remove documentation for the above options. |
| plus -mmac-d16 and -mmac-24 (which were already marked as |
| "Undocumented"). Likewise remove documentation for |
| -mbarrel_shifter, -mdpfp_compact, -mdpfp_fast, -mdsp_packa, |
| -mmac_24, -mmac_d16, -mspfp_compact, and -mspfp_fast, which |
| had already been deleted from arc.opt at some point. |
| Add index entries for the -mno- forms of remaining options that |
| have them. Document positive forms of -mno-brcc and -mno-dpfp-lrsr. |
| |
| 2025-12-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/arc/arc.opt (-mno-brcc, -mno-dpfp-lrsr): Redefine in |
| the positive sense. |
| |
| 2025-12-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR ipa/122955 |
| * cgraph.h (toplevel_node): Add next and previous fields. |
| Add chain_next and chain_prev to GTY. |
| (symtab_node): Remove next and previous field. Remove chain_next and chain_prev |
| from the GTY. |
| (asm_node): Remove next field. |
| (symtab_node::next_defined_symbol): Use save_as_a<symtab_node*> around next. |
| (symbol_table::unregister): Likewise |
| (FOR_EACH_SYMBOL): Likewise |
| (symbol_table::first_defined_symbol): Likewise |
| (symbol_table::first_variable): Likewise |
| (symbol_table::next_variable): Likewise |
| (symbol_table::first_static_initializer): Likewise |
| (symbol_table::next_static_initializer): Likewise |
| (symbol_table::first_defined_variable): Likewise |
| (symbol_table::next_defined_variable): Likewise |
| (symbol_table::first_defined_function): Likewise |
| (symbol_table::next_defined_function): Likewise |
| (symbol_table::first_function): Likewise |
| (symbol_table::next_function): Likewise |
| (symbol_table::first_function_with_gimple_body): Likewise |
| (symbol_table::next_function_with_gimple_body): Likewise |
| * cgraphunit.cc (analyze_functions): Likewise |
| (output_in_order): Likewise |
| * lto-streamer-out.cc (lto_output): Use save_as_a<asm_node*> around next. |
| * symtab.cc (symtab_node::verify_symtab_nodes): Likewise. |
| |
| 2025-12-12 Chung-Lin Tang <cltang@baylibre.com> |
| Tobias Burnus <tburnus@baylibre.com> |
| Andrew Stubbs <ams@baylibre.com> |
| |
| * gimplify.cc (gimplify_scan_omp_clauses): Handle uses_allocators |
| by printing a 'sorry, unimplemented' and removing it. |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_USES_ALLOCATORS. |
| * tree.cc (omp_clause_num_ops, omp_clause_code_name): Likewise. |
| * tree-pretty-print.cc (dump_omp_clause): Handle it. |
| * tree.h (OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR, |
| OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE, |
| OMP_CLAUSE_USES_ALLOCATORS_TRAITS): New. |
| |
| 2025-12-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/103680 |
| * tree-loop-distribution.cc (destroy_loop): Set probability |
| of the exit edge to be always. |
| |
| 2025-12-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/103680 |
| * tree-cfg.cc (make_forwarders_with_degenerate_phis): Fix |
| initial value of the count to new bb. |
| |
| 2025-12-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc (s390_expand_builtin): Warn about |
| non-overloaded deprecated builtins. |
| |
| 2025-12-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-c.cc (s390_adjust_builtin_arglist): Fix |
| builtin s390_vec_load_bndry for C++. |
| |
| 2025-12-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-c.cc (s390_resolve_overloaded_builtin): |
| Perform array-to-pointer conversion for C++. |
| |
| 2025-12-12 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/122003 |
| * Makefile.in (ANALYZER_OBJS): Add analyzer/ops.o, |
| analyzer/supergraph-fixup-locations.o, |
| analyzer/supergraph-simplify.o, and analyzer/supergraph-sorting.o. |
| * digraph.h (dnode::add_in_edge): New. |
| (dnode::remove_in_edge): New. |
| (dnode::add_out_edge): New. |
| (dnode::remove_out_edge): New. |
| (dnode::m_preds): Make public. |
| (dnode::m_succs): Likewise. |
| (dnode::find_edge_idx): New. |
| (dedge::edge_t): New typedef. |
| (dedge::m_src): Make non-const. |
| (dedge::m_dest): Likewise. |
| (dedge::set_dest): New. |
| (digraph::add_any_extra_stmts): New. |
| (digraph<GraphTraits>::dump_dot_to_pp): Call it. |
| * doc/analyzer.texi: Update for rewrite of supergraph. |
| * doc/invoke.texi (fanalyzer-fine-grained): Make this as a no-op |
| preserved for backwards compatibility. |
| (fanalyzer-simplify-supergraph): Document new option. |
| (fdump-analyzer-supergraph): Update for changes to output. |
| * gdbhooks.py (AnaSupernodePrinter.to_string): Update for renaming |
| of supernode::m_index to supernode::m_id. |
| * system.h: Include <deque> if INCLUDE_DEQUE was defined. |
| |
| 2025-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/121852 |
| * rtlanal.cc (single_set_2): Only look for REG_UNUSED notes if |
| df && df_note, otherwise if df and SET_DEST is a pseudo with |
| DF_REG_USE_COUNT 0, assume it is unused as well. Otherwise |
| assume it may be used. |
| |
| 2025-12-12 Tejas Belagod <tejas.belagod@arm.com> |
| Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_instruction_selection): Flip |
| svbool_t == to != to avoid extra bit-inverse. |
| |
| 2025-12-12 mengqinggang <mengqinggang@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_block_move_loop): Change |
| length, align to unsigned. |
| (loongarch_expand_block_move): Ditto. |
| |
| 2025-12-12 Jiajie Chen <c@jia.je> |
| |
| * config/loongarch/loongarch.cc (loongarch_emit_int_compare): |
| Call trunc_int_mode to ensure valid rhs. |
| |
| 2025-12-12 mengqinggang <mengqinggang@loongson.cn> |
| |
| * config/loongarch/predicates.md: Add CONSTM1_RTX for low_bitmask_operand. |
| |
| 2025-12-12 mengqinggang <mengqinggang@loongson.cn> |
| |
| * config/loongarch/larchintrin.h (__movgr2fcsr): Disable on soft float. |
| (__cacop_w): New. |
| (__lddir_d): Delete #error. |
| (__ldpte_d): Likewise. |
| (__crc_w_w_w): Disable on LA32 |
| (__crc_w_d_w): Likewise. |
| (__crcc_w_w_w): Likewise. |
| * config/loongarch/loongarch-builtins.cc : Disable some builtin on LA32. |
| |
| 2025-12-12 mengqinggang <mengqinggang@loongson.cn> |
| Jiajie Chen <c@jia.je> |
| |
| * config/loongarch/loongarch-opts.cc (loongarch_target_option_override): |
| Delete opts->x_flag_pcc_struct_return and enable mstrict-align by |
| default on LA32. |
| * config/loongarch/loongarch.cc (loongarch_for_each_saved_reg): Save reg |
| depend on float abi. |
| (loongarch_explicit_relocs_p): Disable explicit relocs on LA32. |
| (loongarch_valid_offset_p): Disable const_imm16_operand with 4 byte aligned. |
| (loongarch_valid_lo_sum_p): Allow lo_sum to be used with DF in ilp32d. |
| (loongarch_valid_index_p): Disable ADDRESS_REG_REG on LA32. |
| (loongarch_legitimize_address): Disable mem_shadd_or_shadd_rtx_p on LA32. |
| (loongarch_output_move_index): Assert TARGET_64BIT for ldx/stx. |
| (loongarch_output_move): Disable ldptr/stptr if offset is 0. |
| (loongarch_output_equal_conditional_branch): Disable beqz/bnez on LA32R. |
| (loongarch_trampoline_init): Change pcaddi to pcaddu12i. |
| (loongarch_get_separate_components): Disable ldptr/stptr on LA32. |
| (loongarch_c_mode_for_floating_type): Use TFmode for long double |
| regardless of target bitness. |
| (loongarch_bitint_type_info): Disable BitInt on LA32. |
| (loongarch_call_tls_get_addr): Use call30 on LA32. |
| (loongarch_split_move): Add split for DI, DF, TF. |
| * config/loongarch/loongarch.h (LA_LONG_DOUBLE_TYPE_SIZE): Set |
| LONG_DOUBLE_TYPE_SIZE to 128 regardless of target bitness. |
| (MAX_FIXED_MODE_SIZE): Set to 64 on LA32. |
| (DEFAULT_PCC_STRUCT_RETURN): New. |
| (STACK_BOUNDARY): Set to 128 on LA64 and LA32. |
| (LARCH_STACK_ALIGN): Set to 16 on LA64 and LA32. |
| (TRAMPOLINE_SIZE): Set to same value on LA64 and LA32. |
| |
| 2025-12-12 mengqinggang <mengqinggang@loongson.cn> |
| Jiajie Chen <c@jia.je> |
| |
| * config/loongarch/constraints.md: Disable k on LA32. |
| * config/loongarch/loongarch.md (*and<mode>3): Delete. |
| (*and<mode>3_extend): New. |
| (zero_extend<SHORT:mode><GPR:mode>2_la32r): New. |
| (extend<SHORT:mode><GPR:mode>2_la32r): New. |
| (extendqihi2_la32r): New. |
| (*movdi_32bit): Remove not working split, use existing |
| loongarch_split_move instead. |
| (move_doubleword_2_<mode>): New. |
| (load_low<mode>): New. |
| (load_high<mode>): New. |
| (store_word<mode>): New. |
| (movgr2frh<mode>): New. |
| (movfrh2gr<mode>): New. |
| * config/loongarch/predicates.md: Disable low_bitmask_operand and |
| ins_zero_bitmask_operand on LA32. Enable const_call_insn_operand on LA32. |
| * config/loongarch/sync.md (atomic_<amop><mode>): Change to define_expand. |
| (la64_atomic_<amop><mode>): New. |
| (la32_atomic_<amop>si): New. |
| (atomic_fetch_<amop><mode>): Change to define_expand. |
| (la64_atomic_fetch_<amop><mode>): New. |
| (la32_atomic_fetch_<amop>si): New. |
| (atomic_exchange<mode>): Change to define_expand. |
| (la64_atomic_exchange<mode>): New. |
| (la32_atomic_exchangesi): New. |
| |
| 2025-12-12 mengqinggang <mengqinggang@loongson.cn> |
| Jiajie Chen <c@jia.je> |
| |
| * config.gcc: Add target triple loongarch32-*-*-* and |
| corresponding abi ilp32f, ilp32d and ilp32s. |
| * config/loongarch/genopts/loongarch-strings: Add strings for |
| loongarch32 and ilp32 abi variants. |
| * config/loongarch/genopts/loongarch.opt.in: Add |
| -march=la32v1.0/la32rv1.0 and -mabi=ilp32d/ilp32f/ilp32s. |
| * config/loongarch/gnu-user.h: Add ilp32 abi variants to spec. |
| * config/loongarch/linux.h: Add ABI_LIBDIR for ilp32 abi |
| variants. |
| * config/loongarch/loongarch-c.cc (loongarch_define_unconditional_macros): |
| Add builtin definitions for loongarch32 target. |
| * config/loongarch/loongarch-def.cc: Add loongarch32 and ilp32 |
| definitions. |
| * config/loongarch/loongarch-def.h: Add loongarch32 and ilp32 |
| definitions. |
| * config/loongarch/loongarch-driver.h: Add ilp32 abi variants to |
| spec. |
| * config/loongarch/loongarch-opts.cc: Handle ilp32 abi variants. |
| * config/loongarch/loongarch-opts.h: Add loongarch32 case to |
| macros. |
| * config/loongarch/loongarch-str.h: Add loongarch32 and ilp32 |
| strings. |
| * config/loongarch/loongarch.opt: Add -march=la32v1.0/la32rv1.0 |
| and -mabi=ilp32d/ilp32f/ilp32s. |
| * config/loongarch/t-linux: Add ilp32 abi variants to multilib. |
| * doc/invoke.texi: Add LA32 arch and tune. |
| |
| 2025-12-12 Pietro Monteiro <pietro@sociotechnical.xyz> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2025-12-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/arc/arc.cc (hwloop_optimize): Fix comment typo, |
| begining -> beginning. |
| * config/nds32/nds32-utils.cc (nds32::extract_pattern_from_insn): |
| Fix comment typo, funciton -> function. |
| * ipa-inline.cc (speculation_useful_p): Fix comment typo, |
| calll -> call. |
| * auto-profile.cc: Fix comment typos, implements -> implement, |
| inlning -> inlining, passe -> passes, form -> from, ambigous |
| -> ambiguous. |
| (afdo_hot_bb_threshod): Rename to ... |
| (afdo_hot_bb_threshold): ... this. |
| (maybe_hot_afdo_count_p): Adjust for the above change. |
| (function_instance::merge): Fix comment typo, hasnt -> hasn't. |
| (function_instance::offline_if_not_realized): Fix comment typo, |
| instancs -> instances. |
| (afdo_count_scale): Fix comment typo, reudce -> reduce. |
| (get_original_name): Fix comment typos, generetad -> generated, |
| sufix -> suffix. |
| (function_instance::get_function_instance): Fix dump message |
| typo, insteed -> instead. |
| (function_instance::merge): Fix comment typos, hasnt -> hasn't, |
| acounting -> accounting, calll -> call, begining -> beginning. |
| (function_instance::offline_if_in_set): Fix comment typo, |
| begining -> beginning. |
| (match_with_target): Fix comment typo, correspons -> corresponds. |
| (function_instance::match): Fix diagnostic typo, discrimnator |
| -> discriminator. |
| (autofdo_source_profile::offline_external_functions): Fix comment |
| typos, Doint -> Doing, distingush -> distinguish, shold -> should, |
| Poppulate -> Populate. Fix dump message typo, suffxes -> suffixes. |
| (autofdo_source_profile::offline_unrealized_inlines): Fix comment |
| typo, Poppulate -> Populate. |
| (autofdo_source_profile::update_inlined_ind_target): Fix dump message |
| typo, funciton -> function. |
| (autofdo_source_profile::read): Fix comment typos, function_instace |
| -> function_instance, exixts -> exits. Use afdo_hot_bb_threshold |
| instead of afdo_hot_bb_threshod. |
| (autofdo_source_profile::get_function_instance_by_inline_stack): |
| Fix dump message typo, locaction -> location. |
| (afdo_propagate_edge): Fix dump message typo, succesors -> successors. |
| (afdo_propagate): Fix comment typo, stablize -> stabilize. |
| (struct scale): Fix comment typo, descired -> desired. |
| (afdo_adjust_guessed_profile): Fix dump message typos, predecesor |
| -> predecessor, sucessor -> successor. Fix comment typo, inprecise |
| -> imprecise. |
| (auto_profile): Fix comment typo, annoate -> annotate. |
| * tree-vect-slp.cc (vectorizable_slp_permutation_1): Fix comment typo, |
| cylical -> cyclical. |
| * except.cc (maybe_add_nop_after_section_switch): Fix comment typo, |
| begining -> beginning. |
| * tree-ssa-loop-ivcanon.cc (tree_unroll_loops_completely): Fix comment |
| typo, begining -> beginning. |
| * gcc.cc (insert_comments): Likewise. |
| |
| 2025-12-11 supers1ngular <supers1ngular@baylibre.com> |
| |
| * doc/extend.texi: Bump version and clarify implementation |
| status. |
| |
| 2025-12-11 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/123014 |
| * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer): Detect |
| empty pre-header block. |
| (vect_do_peeling): Undo changes from PR122959. |
| |
| 2025-12-11 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_fndecl_abi): New function. |
| (aarch64_function_abi): New function. |
| (aarch64_function_arg_regno_p): Update to use aarch64_fndecl_abi. |
| (aarch64_output_mi_thunk): Likewise. |
| (aarch64_is_variant_pcs): Likewise. |
| (aarch64_set_current_function): Update to initialize pcs value. |
| * config/aarch64/aarch64.h (enum arm_pcs): Move location earlier in |
| file. |
| (machine_function) Add pcs value. |
| |
| 2025-12-11 supers1ngular <supers1ngular@baylibre.com> |
| |
| * doc/invoke.texi: Update docs for '-Wdeprecated-openmp'. |
| |
| 2025-12-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/80881 |
| * config/i386/i386.h (DEFAULT_TLS_SEG_OFFSET): New define. |
| * config/mingw/mingw32.h (DEFAULT_TLS_SEG_OFFSET): Likewise. |
| * config/i386/i386.cc (ix86_tls_index): Fix long line. |
| (legitimize_tls_address): Use get_thread_pointer, add comments and |
| fix long lines. |
| * config/i386/i386.md (*load_tp_<mode>): Use DEFAULT_TLS_SEG_OFFSET |
| (*load_tp_x32_zext): Likewise. |
| (*add_tp_<mode>): Likewise. |
| (*add_tp_x32_zext): Likewise. |
| * config/i386/predicates.md (pic_32bit_operand): Fix oversight. |
| (symbolic_operand): Accept UNSPEC_SECREL32 with or without offset. |
| |
| 2025-12-10 Alexandre Oliva <oliva@adacore.com> |
| |
| * config/i386/i386.md (lea peephole2): Add 3 new variants. |
| |
| 2025-12-10 Jakub Jelinek <jakub@redhat.com> |
| Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/123069 |
| * tree-vect-generic.cc (expand_vector_mult): Use |
| build_zero_cst (vectype) instead of build_int_cst (vectype, 0). |
| |
| 2025-12-10 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi (C++ Modules): Remove standard library header |
| units from missing pieces, mention importable header redirection. |
| |
| 2025-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (PID_TYPE): Define. |
| * doc/tm.texi.in (Type Layout): Document PID_TYPE. |
| * doc/tm.texi: Regenerate. |
| |
| 2025-12-09 John Ericson <git@JohnEricson.me> |
| |
| * Makefile.in: No longer include TARGET_SYSTEM_ROOT in |
| libgcc.mvars. |
| |
| 2025-12-09 John Ericson <git@JohnEricson.me> |
| |
| * Makefile.in:: Remove NO_PIE_CFLAGS logic, since it is now in |
| libgcc. |
| * configure: Regenerate. |
| * configure.ac: Remove the enable_default_pie substitution, since |
| libgcc now has its own logic. |
| |
| 2025-12-09 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR tree-optimization/123074 |
| * tree-vect-loop.cc: Reset LOOP_VINFO_USING_SELECT_VL_P. |
| |
| 2025-12-09 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/predicates.md: Append operator lt to |
| the comparison_swappable_operator. |
| * config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Add |
| swappable operator lt handing. |
| |
| 2025-12-09 Richard Biener <rguenther@suse.de> |
| |
| PR target/121230 |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| With FP mode and 387 math cost spill/reload. |
| |
| 2025-12-09 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/riscv.opt.urls: Regenerate. |
| |
| 2025-12-09 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn.cc (gcn_init_cumulative_args): Only warn once. |
| Use "required" instead of "enabled" in the warning. |
| * config/gcn/mkoffload.cc (process_asm): Warn, don't error. |
| Use "required" instead of "on" in the warning. |
| |
| 2025-12-09 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR tree-optimization/122635 |
| * gimple-fold.cc (enum mask_load_store_state): New enum. |
| (gimple_fold_partial_load_store_mem_ref): Only fold |
| "all active" loads/stores. |
| (partial_load_store_mask_state): New function to compute mask |
| state. |
| (gimple_fold_partial_load): Remove. |
| (gimple_fold_partial_load_store): New function. |
| (gimple_fold_partial_store): Remove. |
| (gimple_fold_call): Use new function. |
| |
| 2025-12-09 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/rs6000/predicates.md (lxvl_else_operand): New |
| predicate. |
| * config/rs6000/vsx.md: Add else operand. |
| * config/s390/predicates.md (vll_else_operand): New predicate. |
| * config/s390/vector.md: Add else operand. |
| * doc/md.texi: Document else operand. |
| * internal-fn.cc (internal_fn_len_index): Adjust IFN_LEN_LOAD. |
| (internal_fn_else_index): Add IFN_LEN_LOAD. |
| * optabs-tree.cc (target_supports_len_load_store_p): Get else |
| value for len_load. |
| * tree-vect-stmts.cc (vectorizable_load): Pun the else value |
| type. |
| |
| 2025-12-09 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::handle_max_vect): |
| New parser entry. |
| (riscv_target_attr_parser::update_settings): Set max-vect |
| option. |
| (riscv_process_one_target_attr): Change null-arg handling. |
| * config/riscv/riscv.cc (riscv_override_options_internal): Set |
| max-vect option. |
| * config/riscv/riscv.opt: Add -mmax-vectorization option. |
| * doc/extend.texi: Document new option. |
| * doc/invoke.texi: Ditto. |
| |
| 2025-12-09 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/123022 |
| * config/riscv/vector.md: Add mode_idx attribute. |
| |
| 2025-12-09 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/115325 |
| * config/riscv/riscv-c.cc (riscv_pragma_target_parse): New |
| function. |
| (riscv_register_pragmas): Register riscv_pragma_target_parse. |
| * config/riscv/riscv-protos.h (riscv_process_target_attr_for_pragma): |
| Declare. |
| (riscv_reset_previous_fndecl): Ditto. |
| * config/riscv/riscv-target-attr.cc (riscv_process_target_attr_for_pragma): |
| New function. |
| * config/riscv/riscv.cc (riscv_reset_previous_fndecl): Reset. |
| (riscv_option_save): New function. |
| (riscv_option_print): Ditto. |
| (riscv_get_interrupt_type): Adjust docs. |
| (TARGET_OPTION_SAVE): Implement. |
| (TARGET_OPTION_PRINT): Ditto. |
| * doc/extend.texi: Document that riscv can do target pragams. |
| |
| 2025-12-09 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/autovec.md (reduc_sbool_and_scal_<mode>): New |
| expander. |
| (reduc_sbool_ior_scal_<mode>): Ditto. |
| (reduc_sbool_xor_scal_<mode>): Ditto. |
| * config/riscv/riscv-protos.h (expand_mask_reduction): Declare. |
| * config/riscv/riscv-v.cc (expand_mask_reduction): New function. |
| |
| 2025-12-09 Richard Biener <rguenther@suse.de> |
| |
| PR target/123027 |
| * config/i386/i386-expand.cc (ix86_expand_sse_fp_minmax): |
| With !HONOR_NANS we can handle LE by swapping and inverting. |
| |
| 2025-12-08 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/46555 |
| * tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing): |
| Don't set todo to include cleanupcfg; do it manually. |
| Call make_forwarders_with_degenerate_phis if optimizing. |
| |
| 2025-12-08 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfg.cc (make_forwarders_with_degenerate_phis): Add debug |
| dump. |
| |
| 2025-12-08 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-dce.cc (sort_phi_args): Move to tree-cfg.cc. |
| (make_forwarders_with_degenerate_phis): Move to tree-cfg.cc. |
| (perform_tree_ssa_dce): Update for the updated return type |
| of make_forwarders_with_degenerate_phis. |
| * tree-cfg.cc (sort_phi_args): Moved from tree-ssa-dce.cc. |
| (make_forwarders_with_degenerate_phis): Moved from tree-ssa-dce.cc. |
| Update return type to bool and return true if an edge was split. |
| * tree-cfg.h (make_forwarders_with_degenerate_phis): New decl. |
| |
| 2025-12-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/80881 |
| * config/mingw/winnt.cc (mingw_pe_unique_section): Put two dollar |
| signs for TLS sections after the prefix. |
| (mingw_pe_asm_named_section): Deal with all TLS sections uniformly. |
| |
| 2025-12-08 Ezra Sitorus <Ezra.Sitorus@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add C1-Nano, |
| C1-Pro, C1-Premium and C1-Ultra. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Document C1 cores. |
| |
| 2025-12-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123040 |
| * tree-ssa-sccvn.cc (vn_nary_build_or_lookup_1): Only insert |
| nary results. |
| |
| 2025-12-08 Josef Melcr <josef.melcr@suse.com> |
| |
| PR ipa/122798 |
| * cgraph.cc (cgraph_edge::redirect_callee): Use |
| iterate_referring instead of referred_to_p. |
| * cgraphclones.cc (set_new_clone_decl_and_node_flags): Set local |
| to true iff the node does not have its address taken. |
| |
| 2025-12-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123038 |
| * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Reject |
| pattern for reductions when the call argument is used multiple |
| times. |
| |
| 2025-12-08 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/123026 |
| * config/aarch64/aarch64-simd.md (reduc_sbool_ior_scal_<mode>, |
| reduc_sbool_and_scal_<mode>): Fix tmp operands[1] override. |
| |
| 2025-12-08 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122868 |
| * tree-vect-stmts.cc (vectorizable_load): Move check for invariant loads |
| down into the loop. |
| |
| 2025-12-08 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/122343 |
| * config/i386/sse.md (*<avx512>_cmp<mode>3_dup_op): Don't allow |
| 2 volatile memory references. |
| |
| 2025-12-07 Jason Merrill <jason@redhat.com> |
| |
| * config/darwin-c.cc (find_subframework_header): Use |
| _cpp_get_file_*. |
| |
| 2025-12-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/122343 |
| * common.opt: Add -ffuse-ops-with-volatile-access. |
| * common.opt.urls: Regenerated. |
| * recog.cc (general_operand): Allow volatile memory reference if |
| -ffuse-ops-with-volatile-access is enabled. |
| * simplify-rtx.cc (simplify_binary_operation_1): Keep PLUS for 2 |
| volatile memory references. |
| * doc/invoke.texi: Document -ffuse-ops-with-volatile-access. |
| |
| 2025-12-07 Alexandre Oliva <oliva@adacore.com> |
| |
| * cselib.cc (dump_cselib_val): Split out of and rename to... |
| (dump_cselib_val_ptr): ... this. |
| (dump_cselib_table): Adjust. Skip cselib_preserved_hash_table |
| when not allocated. |
| |
| 2025-12-06 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/122947 |
| * calls.cc (expand_call): Add stack function usage in |
| non-ACCUMULATE_OUTGOING_ARGS configurations. |
| |
| 2025-12-06 Alexandre Oliva <oliva@adacore.com> |
| |
| PR target/91420 |
| * config/riscv/riscv.cc (riscv_symbolic_constant_p): Require |
| offsets smaller than +/- 1GiB for PCREL symbols. |
| |
| 2025-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * attribs.cc (decl_attributes): Use attribute_value_equal to |
| compare attribute values instead of simple_cst_equal. |
| |
| 2025-12-06 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| PR rtl-optimization/122675 |
| * bb-reorder.cc (edge_order): Fix BB edge ordering to be |
| descending. |
| |
| 2025-12-05 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/122215 |
| * ira-color.cc (improve_allocation): Use register filter for all |
| loop on hard regs. |
| |
| 2025-12-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/122999 |
| * config/arm/arm.cc (arm_canonicalize_comparison): Defer |
| initializing maxval until we know we are dealing with an |
| integer mode. |
| |
| 2025-12-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p): |
| When peeling for gaps we always need an epilog. |
| |
| 2025-12-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120939 |
| * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p): |
| Remove eliding an epilogue based on not computed |
| LOOP_VINFO_COST_MODEL_THRESHOLD and estimated max stmt executions. |
| |
| 2025-12-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123002 |
| * tree-vectorizer.h (supportable_widening_operation): Remove |
| vinfo and stmt_info parameters, add flag to indicate whether |
| the context would allow OP_{EVEN,ODD}. |
| * tree-vect-patterns.cc (vect_recog_abd_pattern): Adjust |
| and pass false. |
| (vect_recog_widen_op_pattern): Likewise. |
| (vect_recog_widen_abd_pattern): Likewise. |
| * tree-vect-stmts.cc (vectorizable_conversion): Move |
| even/odd validity check here, from supportable_widening_operation. |
| Adjust it to be conservative. |
| (supportable_widening_operation): Get flag whether even/odd |
| is OK to use and remove then unused parameters and code. |
| |
| 2025-12-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.cc (dump_mem_ref): Dump clique : base |
| specifier for MEM_REF and TARGET_MEM_REF when dumping |
| GIMPLE format. |
| |
| 2025-12-05 Tobias Burnus <tburnus@baylibre.com> |
| |
| * gimplify.cc (gimplify_scan_omp_clauses): Handle |
| OMP_CLAUSE_DYN_GROUPPRIVATE by printing 'sorry, unimplemented'. |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DYN_GROUPPRIVATE. |
| (enum omp_clause_fallback_kind): New. |
| (struct tree_omp_clause): Add fallback_kind union member. |
| * tree-nested.cc (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Handle OMP_CLAUSE_DYN_GROUPPRIVATE. |
| * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add |
| OMP_CLAUSE_DYN_GROUPPRIVATE. |
| * tree-pretty-print.cc (dump_omp_clause): Handle |
| OMP_CLAUSE_DYN_GROUPPRIVATE. |
| * tree.h (OMP_CLAUSE_DYN_GROUPPRIVATE_EXPR, |
| OMP_CLAUSE_DYN_GROUPPRIVATE_KIND): New #define. |
| |
| 2025-12-05 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/99782 |
| * config/i386/i386-expand.cc (ix86_gen_ccmp_next): Move the check |
| for mode earlier before expand_operands. |
| * config/aarch64/aarch64.cc (aarch64_gen_ccmp_next): Likewise. |
| |
| 2025-12-05 Daniel Barboza <dbarboza@ventanamicro.com> |
| Jeff Law <jlaw@ventanamicro.com> |
| |
| * match.pd (`x & c ? (x - c) | (x | c)`): New pattern. |
| (`x & c ? (x & ~c) | (x | c)`): Likewise. |
| |
| 2025-12-05 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*pred_cmp_swapped<mode>_scalar): |
| Add new pattern to match vec_dup > vec for vmsltu. |
| * config/riscv/predicates.md (comparison_swappable_operator): |
| Add new iterator for above pattern |
| * config/riscv/riscv-protos.h (expand_vx_cmp_vec_dup_vec): Add |
| new func to emit vmsltu.vx. |
| * config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Add new |
| func to convert cmp code to swapped, like gtu to ltu. |
| (expand_vx_cmp_vec_dup_vec): Add new func decl. |
| |
| 2025-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/122991 |
| * config/aarch64/aarch64.md (crc_rev<ALLI:mode><ALLX:mode>4, |
| crc<ALLI:mode><ALLX:mode>4): Use const_int_operand predicate for |
| the last operand. |
| |
| 2025-12-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122776 |
| * tree-vectorizer.h (vect_simd_clone_data::clone, |
| vect_simd_clone_data::clone_inbranch): New fields for |
| the two selected clones. |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Record |
| both a possibly notinbranch and a inbranch clone. Delay |
| the choice between both to code generation based on |
| LOOP_VINFO_FULLY_MASKED_P. |
| |
| 2025-12-04 Martin Jambor <mjambor@suse.cz> |
| |
| * gimple-range-fold.h (class fold_using_range): New member |
| function range_from_readonly_var. |
| * gimple-range-fold.cc (fold_using_range::fold_stmt): Call |
| range_from_readonly_var on assignments. |
| (range_from_missing_constructor_part): New function. |
| (range_from_readonly_load): Likewise. |
| (fold_using_range::range_from_readonly_var): Likewise. |
| * params.opt (param_vrp_cstload_limit): New. |
| * doc/invoke.texi (vrp-cstload-limit): Likewise. |
| |
| 2025-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/122991 |
| * config/i386/i386.md (crc_rev<SWI124:mode>si4): Use const_int_operand |
| predicate for the last input argument. |
| |
| 2025-12-04 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * lra-constraints.cc (get_reload_reg): Honor exclude start regs |
| while reusing reloads. |
| |
| 2025-12-04 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| Revert: |
| 2025-12-02 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * ipa-inline.cc (inline_functions_by_afdo): Remove resetting bool inlined. |
| |
| 2025-12-03 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/85072 |
| * lra-assigns.cc (init_live_reload_and_inheritance_pseudos): |
| Improve calculation of live_reload_and_inheritance_pseudos and set |
| a constraint to do this. |
| * params.opt |
| (lra-max-pseudos-points-log2-considered-for-preferences): New. |
| * doc/invoke.texi |
| (lra-max-pseudos-points-log2-considered-for-preferences): Document |
| it. |
| |
| 2025-12-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/122934 |
| * tree-ssa-loop-niter.cc (simplify_using_initial_conditions): Use |
| singleton_p predicate even with boolean ranges. |
| |
| 2025-12-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/122943 |
| * tree-switch-conversion.cc (switch_conversion::build_arrays): |
| Always gimplify subtraction in utype without cast to tidxtype |
| and set m_arr_ref_first to the last stmt of that. Remove unneeded |
| update_stmt call. If tidxtype is not utype, append after that stmt |
| cast to tidxtype and set tidx to the lhs of that cast. |
| |
| 2025-12-03 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/122898 |
| * gimple-range-fold.cc (fur_source::register_relation): Return a bool; |
| (fur_depend::register_relation): Ditto. |
| (fur_relation::register_relation): Ditto. |
| * gimple-range-fold.h (fur_source::register_relation): Adjust prototype. |
| (fur_depend::register_relation): Ditto. |
| * gimple-range-path.cc (jt_fur_source::register_relation): Return bool. |
| * value-relation.cc (equiv_oracle::add_partial_equiv): Return a bool. |
| (equiv_oracle::record): Return a bool. |
| (relation_oracle::record): Return a bool. |
| (dom_oracle::record): Return a bool. |
| (dom_oracle::set_one_relation): Remove some debug output. |
| (path_oracle::equiv_set): Return a bool. |
| (path_oracle::register_equiv): Return a bool. |
| (path_oracle::record): Return a bool. |
| * value-relation.h (relation_oracle::record): Adjust prototype. |
| (equiv_oracle::add_partial_equiv): Ditto |
| (equiv_oracle::record): Ditto. |
| (dom_oracle::record): Ditto. |
| (path_oracle::equiv_set): Ditto. |
| (path_oracle::register_equiv): Ditto. |
| (path_oracle::record): Ditto. |
| |
| 2025-12-03 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| PR algol68/122964 |
| * dwarf2out.cc (gen_compile_unit_die): Set LVERSION to 1978 for |
| Algol 68 and add dwarf_version >= 5 to guard. |
| |
| 2025-12-03 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122969 |
| * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer): handle |
| non-ssa name IV var args. |
| |
| 2025-12-03 Mathias Krause <minipli@grsecurity.net> |
| |
| * config/i386/i386.cc (x86_print_call_or_nop): Fix 16-bit NOP |
| generation. |
| |
| 2025-12-03 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122959 |
| * tree-vect-loop-manip.cc (vect_do_peeling): Delay setting update_e. |
| |
| 2025-12-03 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/71921 |
| * config/i386/predicates.md (ieee_maxmin_comparison_operator): |
| New predicator. |
| * config/i386/sse.md (*minmax<mode>3_3): New define_insn_and_split. |
| (*minmax<mode>3_4): Ditto. |
| (*minmax<mode>3_1): Extend operands[2]/operands[4] to handle |
| immediate_operand. |
| |
| 2025-12-02 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/122874 |
| * config/pa/pa.cc (pa_emit_move_sequence): Break out large |
| REG+D addresses from MEM operands. Also, don't allow |
| unscaled indexed source operands till reload completes. |
| |
| 2025-12-02 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| PR target/122656 |
| * config/riscv/riscv-vector-builtins-bases.cc: Use |
| use_contiguous_load for vlsegff. |
| * config/riscv/riscv-vector-builtins.cc (function_expander::use_exact_insn): |
| Only add rounding mode operand if insn requires it and number of |
| arguments is < required. |
| (function_expander::use_ternop_insn): Ditto. |
| (function_expander::use_widen_ternop_insn): Ditto. |
| * config/riscv/vector.md: Use vector-mode source operand. |
| |
| 2025-12-02 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-vector-builtins.cc |
| (function_builder::add_function): Remove placeholder_p parameter. |
| (function_builder::add_unique_function): Update call. |
| (function_builder::add_overloaded_function): Likewise. |
| * config/riscv/riscv-vector-builtins.h |
| (function_builder::add_function): Update declaration. |
| |
| 2025-12-02 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-vect-stmts.cc (vectorizable_scan_store): Pass loop_lens |
| to vect_get_data_ptr_increment. |
| |
| 2025-12-02 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122868 |
| * tree-vect-stmts.cc (vectorizable_load): Don't hoist loop invariant |
| conditional loads unless in header. |
| |
| 2025-12-02 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * ipa-inline.cc (inline_functions_by_afdo): Remove resetting bool inlined. |
| |
| 2025-12-02 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/122912 |
| * config/aarch64/t-aarch64 (TM_H): Add aarch64-tuning-enums.def. |
| |
| 2025-12-02 Alexandre Oliva <oliva@adacore.com> |
| |
| * hard-reg-set.h (hard_reg_set_iter_init): Drop unnecessary |
| increment of min. |
| (hard_reg_set_iter_set): Use ctz_hwi, and compute |
| word-advanced regno from word_no. |
| (hard_reg_set_iter_next): Only clear the cached LSB. |
| |
| 2025-12-02 David Guillen Fandos <david@davidgf.net> |
| |
| * config/mips/mips.h (ISA_HAS_MADD_MSUB): Include allegrex. |
| * config/mips/mips.md: Tweak mul_acc_si/mul_sub_si to make it |
| work when MUL3 is not available. |
| |
| 2025-12-02 David Guillen Fandos <david@davidgf.net> |
| |
| * config/mips/mips.h (ISA_HAS_WSBW): Defined a new macro. |
| * config/mips/mips.md (bswapsi2): Add new instruction. |
| (wsbwsi2): Replace with expand to support both wsbw and wsbh. |
| |
| 2025-12-02 David Guillen Fandos <david@davidgf.net> |
| |
| * config/mips/mips.h (ISA_HAS_MIN_MAX): Defined a new macro. |
| * config/mips/mips.md (sminsi3): Defined a new instruction. |
| (smaxsi3): Defined a new instruction. |
| |
| 2025-12-02 David Guillen Fandos <david@davidgf.net> |
| |
| * config/mips/mips-cpus.def (MIPS_CPU): Added a new CPU. |
| * config/mips/mips-tables.opt: Regenerated table. |
| * config/mips/mips.cc: Added cost table for the new CPU. |
| * config/mips/mips.h (TARGET_ALLEGREX): Defined a new macro. |
| (TUNE_ALLEGREX): Defined a new macro. |
| (ISA_HAS_CONDMOVE): Added Allegrex CPU to the list. |
| (ISA_HAS_LDC1_SDC1): Exclude Allegrex from the list. |
| (ISA_HAS_COND_TRAP): Exclude Allegrex from the list. |
| (ISA_HAS_COND_TRAPI): Exclude Allegrex from the list. |
| (ISA_HAS_CLZ_CLO): Added Allegrex CPU to the list. |
| (ISA_HAS_ROR): Added Allegrex CPU to the list. |
| (ISA_HAS_WSBH): Added Allegrex CPU to the list. |
| (ISA_HAS_SEB_SEH): Added Allegrex CPU to the list. |
| (ISA_HAS_EXT_INS): Added Allegrex CPU to the list. |
| (ISA_HAS_XFER_DELAY): Exclude Allegrex from the list. |
| (ISA_HAS_HILO_INTERLOCKS): Added Allegrex CPU to the list. |
| * config/mips/mips.md: Added Allegrex CPU as a new processor. |
| * doc/invoke.texi: Documented Allegrex as a new arch |
| |
| 2025-12-02 Saurabh Jha <saurabh.jha@arm.com> |
| Radek Barton <radek.barton@microsoft.com> |
| |
| * config.gcc: Add new Makefile fragment and new object file. |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_ms_variadic_abi_init_builtins): Initialize builtin |
| variadic functions for aarch64-w64-mingw32. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_ms_variadic_abi_init_builtins): Initialize builtin |
| variadic functions for aarch64-w64-mingw32. |
| * config/aarch64/aarch64.cc |
| (handle_aarch64_vector_pcs_attribute): Add support for |
| ARM_PCS_MS_VARIADIC. |
| (aarch64_ms_variadic_abi): Return descriptor to variadic |
| function call ABI for aarch64-w64-mingw32 target. |
| (aarch64_fntype_abi): Add support for variadic functions for |
| aarch64-w64-mingw32 target. |
| (aarch64_reg_save_mode): Add support for ARM_PCS_MS_VARIADIC. |
| (num_pcs_arg_regs): Add support for ARM_PCS_MS_VARIADIC. |
| (get_pcs_arg_reg): Add support for ARM_PCS_MS_VARIADIC. |
| (aarch64_arg_size): Returns size of argument. |
| (aarch64_ms_variadic_abi_layout_arg): aarch64-w64-mingw32 |
| specific support for variadic ABI. |
| (aarch64_layout_arg): Add support for ARM_PCS_MS_VARIADIC. |
| (aarch64_function_arg): Implement TARGET_FUNCTION_ARG. |
| (aarch64_function_arg_advance): Add support for |
| ARM_PCS_MS_VARIADIC. |
| (aarch64_function_arg_regno_p): Add support for |
| ARM_PCS_MS_VARIADIC. |
| (aarch64_init_builtins): Add support for TARGET_AARCH64_MS_ABI. |
| (aarch64_ms_variadic_abi_build_builtin_va_list): Setup va_list |
| for aarch64-w64-mingw32. |
| (aarch64_build_builtin_va_list): Add support for |
| TARGET_AARCH64_MS_ABI. |
| (aarch64_ms_variadic_abi_expand_builtin_va_start): Implement |
| TARGET_BUILD_BUILTIN_VA_START. |
| (aarch64_setup_incoming_varargs): Implement |
| TARGET_SETUP_INCOMING_VARARGS. |
| (aarch64_mangle_type): Implement TARGET_MANGLE_TYPE. |
| (aarch64_variadic_abi_strict_argument_naming): Implement |
| TARGET_STRICT_ARGUMENT_NAMING. |
| * config/aarch64/aarch64.h |
| (aarch64_frame): Add new field |
| unaligned_saved_varargs_size. |
| (enum arm_pcs): Add new enum option |
| ARM_PCS_MS_VARIADIC. |
| * config/aarch64/cygming.h |
| (SUBTARGET_ATTRIBUTE_TABLE): Add support for ms_abi. |
| * config/mingw/winnt.cc |
| (aarch64_handle_ms_abi_attribute): Handle ms_abi attribue. |
| * config/mingw/winnt.h |
| (aarch64_handle_ms_abi_attribute): Handle ms_abi attribute. |
| * config/aarch64/aarch64-abi-ms-protos.h: |
| (aarch64_arg_partial_bytes): Declare. |
| (aarch64_ms_variadic_abi_canonical_va_list_type): Declare. |
| (aarch64_ms_variadic_abi_enum_va_list): Declare. |
| (aarch64_ms_variadic_abi_fn_abi_va_list): Implement |
| TARGET_FN_ABI_VA_LIST. |
| * config/aarch64/aarch64-abi-ms.cc: |
| (aarch64_arg_partial_bytes): Implement TARGET_ARG_PARTIAL_BYTES. |
| (aarch64_ms_variadic_abi_canonical_va_list_type): Implement |
| TARGET_CANONICAL_VA_LIST_TYPE. |
| (aarch64_ms_variadic_abi_enum_va_list): Implement |
| TARGET_ENUM_VA_LIST_P. |
| (aarch64_ms_variadic_abi_fn_abi_va_list): Implement |
| TARGET_FN_ABI_VA_LIST. |
| * config/aarch64/t-aarch64-mingw: New Makefile fragment. |
| |
| 2025-12-02 Saurabh Jha <saurabh.jha@arm.com> |
| Radek Barton <radek.barton@microsoft.com> |
| Martin Vejbora <mvejbora@microsoft.com> |
| |
| * config/aarch64/aarch64-abi-ms.h |
| (TARGET_LONG_DOUBLE_128): Set this to 0. |
| * config/aarch64/aarch64.cc |
| (aarch64_scalar_mode_supported_p): Make long double 64 bits. |
| (aarch64_c_mode_for_floating_type): Return true for TFmode. |
| * config/aarch64/aarch64.h |
| (TARGET_LONG_DOUBLE_128): Set this to 1. |
| |
| 2025-12-02 Saurabh Jha <saurabh.jha@arm.com> |
| |
| * config/aarch64/aarch64-abi-ms.h |
| (ASM_COMMENT_START): Specify start of comment. |
| (ASM_OUTPUT_TYPE_DIRECTIVE): Moved from aarch64-coff.h. |
| (ASM_DECLARE_FUNCTION_SIZE): Specify end of function as comment. |
| * config/aarch64/aarch64-coff.h |
| (ASM_OUTPUT_TYPE_DIRECTIVE): Moved to aarch64-abi-ms.h. |
| (ASM_DECLARE_FUNCTION_SIZE): Moved to aarch64-abi-ms.h. |
| |
| 2025-12-01 Peter Bergner <bergner@tenstorrent.com> |
| |
| PR target/122942 |
| * config/riscv/riscv-profiles.def (rva23s64): Add zifencei. |
| (rvb23s64): Likewise. |
| |
| 2025-12-01 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * doc/install.texi (Downloading the source): Mention Algol 68. |
| |
| 2025-12-01 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/122858 |
| * config/arm/constraints.md (Ph): New constraint. |
| * config/arm/mve.md (mve_asrl_imm, mve_lsll_imm): Fix constraints |
| of operand 1 and handle 32 as special shift amount. |
| |
| 2025-12-01 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/122652 |
| * config/riscv/riscv-vsetvl.cc: Add nullptr check. |
| |
| 2025-12-01 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR fortran/120505 |
| * omp-low.cc (lower_omp_target): Set GOMP_MAP_IMPLICIT flag. |
| |
| 2025-12-01 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/122906 |
| * config/i386/i386-features.cc (ix86_emit_tls_call): Emit the |
| TLS call after deleted instructions. |
| |
| 2025-11-30 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/115120 |
| PR tree-optimization/119577 |
| PR tree-optimization/119860 |
| * tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for nonlinear |
| mult induction and early break. |
| (vect_update_ivs_after_vectorizer): Support early break exits. |
| (vect_do_peeling): Support scalar IVs. |
| * tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Support early break. |
| (vect_update_nonlinear_iv): use `unsigned_type_for` such that function |
| works for both vector and scalar types. |
| (vectorizable_induction, vectorizable_live_operation): Remove vector |
| early break IV code. |
| (vect_update_ivs_after_vectorizer_for_early_breaks): New. |
| (vect_transform_loop): Support new scalar IV for early break. |
| * tree-vect-slp.cc (vect_analyze_slp): Remove SLP build for early break |
| IVs. |
| * tree-vect-stmts.cc (vect_stmt_relevant_p): No longer mark early break |
| IVs as completely unused rather than used_only_live. They no longer |
| contribute to the vector loop and so should not be analyzed. |
| (can_vectorize_live_stmts): Remove vector early vreak IV code. |
| * tree-vectorizer.h (LOOP_VINFO_EARLY_BRK_NITERS_VAR): New. |
| (class loop_vec_info): Add early_break_niters_var. |
| |
| 2025-11-30 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * Makefile.in (OPT_URLS_HTML_DEPS): Add ga68/Option-Index.html. |
| |
| 2025-11-30 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * doc/install.texi (Configuration): Mention algol68 option for |
| --enable-languages. |
| (Algol 68-Specific Options): New section. |
| * doc/sourcebuild.texi (Top Level): Add entry for libga68. |
| |
| 2025-11-30 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config/rs6000/rs6000-logue.cc (rs6000_output_function_epilogue): |
| Handle "GNU Algol 68" in language_string. |
| |
| 2025-11-30 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config/darwin.h: Adapt specs for libga68.a. |
| |
| 2025-11-30 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * dwarf2out.cc: Set DW_LANG_Algol68 an DW_LNAME_Algol68. |
| |
| 2025-11-30 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * common.opt: New option -static-libga68. |
| * common.opt.urls: Generate. |
| * gcc.cc: Handle OPT_static_libga68. |
| * regenerate-opt-urls.py (PER_LANGUAGE_OPTION_INDEXES): Add Algol68. |
| |
| 2025-11-30 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * Makefile.def (libga68): New module. |
| (configure-target-libga68): Likewise. |
| * Makefile.tpl (GA68): Define. |
| (GA68_FOR_BUILD): Likewise. |
| (GA68FLAGS): Likewise. |
| * configure.ac (--enable-libga68): New option. |
| (--enable-algol68-gc): Likewise. |
| (GA68): Subst. |
| (GA68FLAGS): Likewise. |
| Invoke ACX_PROG_GA68. |
| * configure: Regenerate. |
| * Makefile.in: Likewise. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * common.opt.urls: Regenerated. |
| * config/aarch64/aarch64.opt.urls: Regenerated. |
| * config/alpha/alpha.opt.urls: Regenerated. |
| * config/arm/arm.opt.urls: Regenerated. |
| * config/avr/avr.opt.urls: Regenerated. |
| * config/bpf/bpf.opt.urls: Regenerated. |
| * config/c6x/c6x.opt.urls: Regenerated. |
| * config/cris/cris.opt.urls: Regenerated. |
| * config/cris/elf.opt.urls: Regenerated. |
| * config/csky/csky.opt.urls: Regenerated. |
| * config/darwin.opt.urls: Regenerated. |
| * config/epiphany/epiphany.opt.urls: Regenerated. |
| * config/frv/frv.opt.urls: Regenerated. |
| * config/ft32/ft32.opt.urls: Regenerated. |
| * config/gcn/gcn.opt.urls: Regenerated. |
| * config/i386/i386.opt.urls: Regenerated. |
| * config/ia64/ia64.opt.urls: Regenerated. |
| * config/loongarch/loongarch.opt.urls: Regenerated. |
| * config/m68k/m68k.opt.urls: Regenerated. |
| * config/microblaze/microblaze.opt.urls: Regenerated. |
| * config/mips/mips.opt.urls: Regenerated. |
| * config/mmix/mmix.opt.urls: Regenerated. |
| * config/or1k/or1k.opt.urls: Regenerated. |
| * config/pa/pa.opt.urls: Regenerated. |
| * config/pdp11/pdp11.opt.urls: Regenerated. |
| * config/rs6000/rs6000.opt.urls: Regenerated. |
| * config/s390/s390.opt.urls: Regenerated. |
| * config/sparc/sparc.opt.urls: Regenerated. |
| * config/v850/v850.opt.urls: Regenerated. |
| * config/vax/vax.opt.urls: Regenerated. |
| * config/visium/visium.opt.urls: Regenerated. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/invoke.texi (Options Summary): Switch ordering of FRV |
| and FT32. |
| (Submodel Options): Likewise in the menu and section ordering. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi: Document -mno-android. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/frv/frv.opt (mbranch-cost=): Mark as Undocumented. |
| (mcond-exec-insns=): Likewise. |
| (mcond-exec-tempss=): Likewise. |
| * doc/invoke.texi (Option Summary) <FRV Options>: Remove duplicate |
| positive/negative forms from the list. |
| (FRV Options): Combine documentation of positive/negative forms |
| where they were listed separately. Add @opindex entries for |
| negative forms. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/ft32/ft32.opt (mlra): Mark obsolete option as Undocumented. |
| * doc/invoke.texi (Option Summary) <FT32 Options>: Remove -mlra. |
| (FT32 Options): Likewise. Add @opindex entries for negative |
| option forms. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (FR30 Options): Add @opindex for -mno-small-model. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <eBPF Options>: Fix formatting |
| issues. Remove redundant entry for -mno-co-re. |
| (eBPF Options): Add missing @opindex entries. Combine documentation |
| for -mco-re and -mno-co-re. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/alpha/alpha.opt (mgas): Mark as Undocumented. |
| * doc/invoke.texi (Option Summary) <DEC Alpha Options>: Add |
| -mtls-kernel, -mtls-size=, -mlong-double-128, and -mlong-double-64. |
| (DEC Alpha Options): Likewise. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/darwin.opt (findirect-virtual-calls): Mark as Undocumented. |
| (fterminated-vtables): Likewise. |
| (multi_module): Likewise. |
| (multiply_defined): Likewise. |
| (multiply_defined_unused): Likewise. |
| (no_dead_strip_inits_and_terms): Likewise. |
| (noprefixbinding): Likewise. |
| (nomultidefs): Likewise. |
| (noprebind): Likewise. |
| (noseglinkedit): Likewise. |
| (ObjC, ObjC++): Add documentation strings. |
| (object): Mark as Undocumented. |
| (prebind): Likewise. |
| (prebind_all_twolevel_modules): Likewise. |
| (private_bundle): Likewise. |
| (sectobjectsymbols): Likewise. |
| (sectorder): Likewise. |
| (seg_addr_table_filename): Likewise. |
| (segcreate): Likewise. |
| (seglinkedit): Likewise. |
| (single_module): Likewise. |
| (X): Likewise. |
| (y): Likewise. |
| (Mach): Likewise. |
| * doc/invoke.texi (Option Summary) <Darwin Options>: Improve |
| alphabetization of the list. Remove obsolete/undocumented |
| options and add missing entries. |
| (Darwin Options): Add documentation for -arch, -dependency-file, |
| -fapple-kext, -matt-stubs, -fconstant-cfstrings, -mdynamic-no-pic, |
| -asm_macosx_version_min, -msymbol-stubs, -mtarget-linker, |
| -ObjC, -ObjC++, -Wnonportable-cfstrings. Update the list |
| of options passed to the linker to remove obsolete options |
| and add missing ones; also move the block of @opindex entries |
| before the list items instead of putting it in the middle. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <Cygwin and MinGW Options>: |
| Correct spelling of -mthreads and add missing options. |
| (Cygwin and MinGW Options): Add @opindex for negative forms. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <C-SKY Options>: Remove |
| entries for "Undocumented" options -EB, -EL, -mhard-float, |
| -msoft-float, and nonexistent option -mcse-cc. |
| (C-SKY Options): Likewise. Also remove references to "Undocumented" |
| option -mstm and uniformly index/document the -mno- forms for |
| consistency with other options in this section that already do so. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/cris/cris.opt (m32-bit, m16-bit, m8-bit): Remove |
| Undocumented property. |
| (m32bit, m8bit): Add Undocumented property. |
| * doc/invoke.texi (Option Summary) <CRIS Options>: Remove |
| obsolete -melf and -maout options from table, plus redundant |
| -mno-mul-bug-workaround. |
| (CRIS Options): Add @opindex for -mno- forms that didn't already |
| have one. Remove obsolete -melf documentation. Document |
| -mbest-lib-options, -moverride-best-lib-options, |
| -mtrap-using-break8, -mtrap-unaligned-atomic, and |
| -munaligned-atomic-may-use-library. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <C6X Options>: Add -mdbst |
| and -mlong-calls. |
| (C6X Options): Likewise. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <Blackfin Options>: |
| Remove redundant -mno- entries. |
| (Blackfin Options): Combine explicit -mno-* documentation |
| with that for the corresponding positive form of the option. |
| Add @opindex entries for the negative forms of options that |
| didn't already have one. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/arm/arm.opt (mapcs-reentrant): Mark as "Undocumented", |
| updatehelp string for internal documentation. |
| (mapcs-stack-check): Likewise update help string. |
| (mprint-tune-info, mneon-for-64bits): Mark as "Undocumented". |
| * doc/invoke.texi (Option Summary) <ARM Options>: Remove duplicate |
| entries for negative forms and entries for options that are |
| explicitly "Undocumented". Add missing entry for |
| -mpic-data-is-text-relative. Fix some formatting issues. |
| (ARM Options): Remove documentation for -mapcs-stack-check, |
| -mapcs-reentrant, -mflip-thumb, -mneon-for-64-bits, |
| -mprint-tune-info, and -mverbose-cost-dump. Add index entries |
| for -mno- option forms. Minor editing for clarity. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| PR target/122288 |
| * config/gcn/gcn.opt (m32, m64, mgomp): Mark "Undocumented" |
| since these options don't actually do anything useful. |
| (flag_bypass_init_error, stack_size_opt, gang_size_opt): Correct |
| opt file syntax. |
| (mstack-size=): Mark "Undocumented" since it's obsolete. |
| * doc/invoke.texi (Option Summary) <AMD GCN Options>: |
| Remove obsolete options, add missing entries for |
| -mgang-private-size=, -msram-ecc=, and -mxnack=. |
| (AMD GCN Options): Likewise. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/epiphany/epiphany.opt (mlong-calls): Make it do something |
| useful. |
| (may-round-for-trunc): Make this undocumented option with a weird |
| name an alias for -mmay-round-for-trunc. |
| (mfp-iarith): Fix doc string. |
| * doc/invoke.texi (Option Summary) <Adapteva Epiphany Options>: |
| Add missing options. |
| (Adapteva Epiphany Options): Document negative forms also when |
| that is not the default, or where it's unclear. Document |
| -may-round-for-trunc and -mfp-iarith. Fix spelling of |
| -mpost-inc and -mpost-modify. |
| |
| 2025-11-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/aarch64/aarch64.opt (Wexperimental-fmv-target): Mark |
| as "Undocumented". |
| * doc/invoke.texi (Option Summary) <AArch64 Options>: Don't |
| list "Undocumented" aarch64 options -mverbose-cost-dump or |
| -Wexperimental-fmv-target, or both positive and negative forms |
| of other options. Add missing options. Fix whitespace problems. |
| (AArch64 Options): Light copy-editing. Add missing @opindex |
| entries to match the documented options. Undocument |
| -mverbose-cost-dump and -Wexperimental-fmv-target. |
| |
| 2025-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/rs6000/rs6000.cc (complex_multiply_builtin_code): |
| Avoid arithmetics between enumerators from different enum types. |
| (complex_divide_builtin_code): Likewise. |
| |
| 2025-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/loongarch/loongarch.cc (loongarch_unspec_address_offset): |
| Avoid arithmetics between enumerators from different enum types. |
| (loongarch_call_tls_get_addr): Likewise. |
| |
| 2025-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/mips/mips.cc (mips_unspec_address_offset): Avoid |
| arithmetics between enumerators from different enum types. |
| |
| 2025-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/riscv/riscv-v.cc (expand_const_vector_onestep): Avoid |
| bitwise ops between enumerators from different enum types. |
| (emit_vec_cvt_x_f): Likewise. |
| (emit_vec_cvt_x_f_rtz): Likewise. |
| * config/riscv/riscv.cc (riscv_unspec_address_offset): Avoid |
| arithmetics between enumerators from different enum types. |
| |
| 2025-11-28 Sam James <sam@gentoo.org> |
| |
| * crc-verification.cc (crc_symbolic_execution::is_used_outside_the_loop): |
| Fix 'assignment' typo. |
| |
| 2025-11-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/122686 |
| * range-op.cc (operator_bitwise_and::op1_range): Check for |
| undefined bitmask. |
| * value-range.cc (prange::intersect): Handle undefined bitmask |
| intersection. |
| (irange::get_bitmask): Ditto. |
| (irange::intersect_bitmask): Ditto. |
| * value-range.h (irange_bitmask::intersect): Return false if the |
| result is UNDEFINED. |
| |
| 2025-11-28 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config.gcc (amdgcn-*-*): Use gfx90a for 'with_arch'. |
| For TM_MULTILIB_CONFIG, replace specific archs by |
| gfx{9,9-4,10-3,11}-generic, keep gfx90{8,a}. |
| * config/gcn/gcn.opt (march=, mtune=): Use gfx90a. |
| * doc/install.texi (amdgcn): Update accordingly. |
| |
| 2025-11-28 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.h |
| (S390_OVERLOADED_BUILTIN_VAR_OFFSET,S390_ALL_BUILTIN_MAX): Fix |
| enum arithmetic. |
| * config/s390/s390.cc (OB_DEF): Ditto. |
| |
| 2025-11-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122844 |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Only |
| try stripping sign conversions around ops where this is valid. |
| |
| 2025-11-28 Jim Lin <jim@andestech.com> |
| |
| * config/riscv/riscv.cc (riscv_output_move): Use \n\t instead |
| of semicolon to separate instructions in fmv.x.h emulation. |
| |
| 2025-11-28 Charlie Jenkins <charlie@rivosinc.com> |
| |
| * config.gcc: Add cpu to supported configure options |
| * config/riscv/riscv.h (riscv_arch_help): Use --with-cpu during |
| compilation |
| * doc/install.texi: Mention in docs that --with-cpu is supported |
| |
| 2025-11-28 Mark Zhuang <mark.zhuang@spacemit.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_CORE): Add xsmtvdot to |
| spacemit-x60 |
| * config/riscv/riscv-ext.def: Add xsmtvdot |
| * config/riscv/riscv-ext.opt: Ditto |
| * config/riscv/t-riscv: Ditto |
| * doc/riscv-ext.texi: Ditto |
| * config/riscv/riscv-ext-spacemit.def: Define xsmtvdot |
| |
| 2025-11-28 Mark Zhuang <mark.zhuang@spacemit.com> |
| |
| * config/riscv/riscv-ext.opt: Generated file. |
| |
| 2025-11-28 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add andes-45-sereis. |
| (RISCV_CORE): Add Andes 45 series cpu list. |
| * config/riscv/riscv-opts.h |
| (enum riscv_microarchitecture_type): Add andes_45_series. |
| * config/riscv/riscv.cc: Add andes_45_tune_info. |
| * config/riscv/riscv.md: Add andes_45. |
| * doc/riscv-mcpu.texi: Regenerated for Andes cpu list. |
| * doc/riscv-mtune.texi: Regenerated for andes-45-series. |
| * config/riscv/andes-45-series.md: New file. |
| |
| 2025-11-28 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add andes-23-series. |
| (RISCV_CORE): Add Andes 23-series cpu list. |
| * config/riscv/riscv-opts.h |
| (enum riscv_microarchitecture_type): Add andes_23_series. |
| * config/riscv/riscv.cc: Add andes_23_tune_info. |
| * config/riscv/riscv.md: Add andes_23. |
| * doc/riscv-mcpu.texi: Regenerated for Andes cpu list. |
| * doc/riscv-mtune.texi: Regenerated for andes-23-series. |
| * config/riscv/andes-23-series.md: New file. |
| |
| 2025-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/122733 |
| * gimple-match-head.cc (gimple_match_range_of_expr): Return false |
| even when range_of_expr returns true, but the range is undefined_p. |
| * match.pd ((mult (plus:s@5 (mult:s@4 @0 @1) @2) @3)): Remove |
| vr0.undefined_p () check. |
| ((plus (mult:s@5 (plus:s@4 @0 @1) @2) @3)): Likewise. |
| ((X + M*N) / N -> X / N + M): Remove vr4.undefined_p () check. |
| ((X - M*N) / N -> X / N - M): Likewise. |
| ((y << x) == x, (y << x) != x): Use convert2? instead of |
| nop_convert2? and test INTEGRAL_TYPE_P on TREE_TYPE (@0) rather than |
| TREE_TYPE (@1). |
| ((y << x) {<,<=,>,>=} x): New simplification. |
| (((T)(A)) + CST -> (T)(A + CST)): Remove vr.undefined_p () check. |
| (x_5 == cstN ? cst4 : cst3): Remove r.undefined_p () check. |
| |
| 2025-11-28 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122890 |
| * optabs.cc (emit_cmp_and_jump_insns): Check for SSA Name. |
| |
| 2025-11-27 Matthieu Longo <matthieu.longo@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros): Define |
| __ARM_BUILDATTR64_FV when BA support is detected in GAS. |
| |
| 2025-11-27 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.md (ctz<mode>2): Use compact syntax. |
| |
| 2025-11-27 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.md (ffs<mode>2): Use gen_ctz. |
| (ctz<mode>2): Model ctz as a single target instruction. |
| |
| 2025-11-27 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/atomics.md (*dmb): Expand release fence into dmb ishld |
| and dmb ishst. |
| |
| 2025-11-27 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-reassoc.cc (rewrite_expr_tree): Swap |
| oe1 and oe2 if commutative code and not in |
| canonical order. |
| |
| 2025-11-27 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-mcus.def (AVR_MCUS): Add avr16la14, avr16la20, |
| avr16la28, avr16la32, avr32la14, avr32la20, avr32la28, avr32la32. |
| * doc/avr-mmcu.texi: Rebuild. |
| |
| 2025-11-27 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR tree-optimization/122855 |
| PR tree-optimization/122850 |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): Nop |
| convert input if necessary. |
| |
| 2025-11-27 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn.cc (gcn_init_cumulative_args): Emit a warning if the |
| -mxnack setting looks wrong. |
| * config/gcn/mkoffload.cc: Include tree.h and omp-general.h. |
| (process_asm): Add omp_requires parameter. |
| Emit HSA_XNACK code into mkoffload_setup, as required. |
| (main): Modify HSACO_ATTR_OFF to preserve user-set -mxnack. |
| Pass omp_requires to process_asm. |
| |
| 2025-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/122714 |
| * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Adjust |
| MEM_REFs offset for bitint_big_endian if ltype doesn't have the |
| same byte size as m_limb_type. |
| |
| 2025-11-27 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Fix |
| recording of the mask type again. Adjust placing of |
| mask arguments for non-masked calls. |
| |
| 2025-11-27 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| PR tree-optimization/122733 |
| * match.pd ((y << x) {<,<=,>,>=} x): Remove. |
| ((y << x) {==,!=} x): Call constant_boolean_node instead of |
| build_one_cst/build_zero_cst and combine into one pattern. |
| |
| 2025-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * fold-const.h (expr_not_equal_to): Add gimple * argument defaulted |
| to NULL. |
| * fold-const.cc (expr_not_equal_to): Likewise, pass it through to |
| range_of_expr. |
| * generic-match-head.cc (gimple_match_ctx): New static inline. |
| * match.pd (X % -Y -> X % Y): Capture NEGATE and pass |
| gimple_match_ctx (@2) as new 3rd argument to expr_not_equal_to. |
| ((A * C) +- (B * C) -> (A+-B) * C): Pass gimple_match_ctx (@3) |
| as new 3rd argument to expr_not_equal_to. |
| (a rrotate (bitsize-b) -> a lrotate b): Likewise. |
| |
| 2025-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119683 |
| * gimple-match.h (gimple_match_ctx): Move to ... |
| * gimple-match-head.cc (gimple_match_ctx): ... here. Make static. |
| (gimple_match_range_of_expr): New static inline. |
| * match.pd ((mult (plus:s (mult:s @0 @1) @2) @3)): Use |
| gimple_match_range_of_expr. |
| ((plus (mult:s (plus:s @0 @1) @2) @3)): Likewise. |
| ((t * u) / u -> t): Likewise. |
| ((t * u) / v -> t * (u / v)): Likewise. |
| ((X + M*N) / N -> X / N + M): Likewise. |
| ((X - M*N) / N -> X / N - M): Likewise. |
| ((X + C) / N -> X / N + C / N): Likewise. |
| (((T)(A)) + CST -> (T)(A + CST)): Likewise |
| (x_5 == cstN ? cst4 : cst3): Likewise. Do r.set_varying |
| even when gimple_match_range_of_expr failed. |
| |
| 2025-11-27 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm-builtins.cc (arm_init_mve_builtins): Remove |
| volatile qualifier. |
| |
| 2025-11-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122885 |
| * tree-vect-loop.cc (vect_find_reusable_accumulator): Reject |
| mask vectors which do not use integer vector modes. |
| (vect_create_partial_epilog): Assert the same. |
| |
| 2025-11-27 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-options.cc (set_ix86_tune_features): Set |
| gather/scatter tune if OPTION_SET_P. |
| * config/i386/i386.opt: Refactor mgather/mscatter. |
| |
| 2025-11-27 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * doc/extend.texi: Remove the incorrect prompt message. |
| |
| 2025-11-27 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/invoke.texi (Option Summary) <C++ Langauge Options>: |
| Add --compile-std-module. |
| |
| 2025-11-26 Jeff Law <jlaw@ventanamicro.com> |
| |
| Revert: |
| 2025-10-14 Zhongyao Chen <chenzhongyao.hit@gmail.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_subset_list::get_profile_name): |
| New function. |
| * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define |
| profile macro if a profile is detected. |
| * config/riscv/riscv-subset.h (riscv_subset_list::get_profile_name): Declare. |
| |
| 2025-11-26 Alejandro Colomar <alx@kernel.org> |
| |
| * doc/extend.texi (Syntax Extensions): Document _Maxof & _Minof. |
| |
| 2025-11-26 Tamar Christina <tamar.christina@arm.com> |
| |
| * optabs.cc (emit_cmp_and_jump_insns): Check for non-single use. |
| |
| 2025-11-26 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/122735 |
| * simplify-rtx.cc (simplify_binary_operation_1): When moving a SUBREG |
| from an outer expression to an inner operand, make sure to avoid |
| trying to create invalid SUBREGs. |
| |
| 2025-11-26 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/122867 |
| * config/arm/arm.cc (arm_print_operand): Use %- to |
| emit LOCAL_LABEL_PREFIX. |
| (arm_print_operand_punct_valid_p): Allow %- for punct |
| and make %_ valid for all compilation variants. |
| * config/arm/thumb2.md (*thumb2_cbz): Handle very |
| large branch ranges that exceed the limit of b<cond>. |
| (*thumb2_cbnz): Likewise. |
| |
| 2025-11-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/110571 |
| * tree-vectorizer.h (vect_need_peeling_or_partial_vectors_p): Remove. |
| * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p): |
| Fix when called on epilog loops. Make static. |
| * tree-vect-loop-manip.cc (vect_do_peeling): Do not |
| re-compute LOOP_VINFO_PEELING_FOR_NITER. |
| |
| 2025-11-26 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122861 |
| * optabs.cc (emit_cmp_and_jump_insns): Check argument instead of result. |
| |
| 2025-11-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/invoke.texi (gnu++17): Remove comment about the default. |
| (c++20): Remove note about experimental support, except add a note |
| that modules are still experimental and need to be enabled separately. |
| (gnu++20): Likewise. Move here comment about the default. |
| (fcoroutines): Mention it is enabled by default for C++20 and later. |
| * doc/standards.texi: Document that the default for C++ is |
| -std=gnu++20. |
| |
| 2025-11-26 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle |
| AVX512 masking for loop masked SIMD clone call. |
| |
| 2025-11-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/122835 |
| * tree-eh.cc (replace_goto_queue_1): Handle GIMPLE_ASM. |
| (maybe_record_in_goto_queue): Likewise. |
| (lower_eh_constructs_2): Likewise. |
| |
| 2025-11-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119683 |
| * gimple-match.h (gimple_match_ctx): New inline function. |
| * match.pd ((mult (plus:s (mult:s @0 @1) @2) @3)): Capture |
| PLUS, use get_range_query (cfun) instead of |
| get_global_range_query () and pass gimple_match_ctx (@5) |
| as 3rd argument to range_of_expr. |
| ((plus (mult:s (plus:s @0 @1) @2) @3)): Similarly for MULT, |
| with @4 instead of @5. |
| ((t * u) / u -> t): Similarly with @2 instead of @4. |
| ((t * u) / v -> t * (u / v)): Capture MULT, pass gimple_match_ctx (@3) |
| as 3rd argument to range_of_expr. |
| ((X + M*N) / N -> X / N + M): Pass gimple_match_ctx (@3) or |
| gimple_match_ctx (@4) as 3rd arg to some range_of_expr calls. |
| ((X - M*N) / N -> X / N - M): Likewise. |
| ((X + C) / N -> X / N + C / N): Similarly. |
| (((T)(A)) + CST -> (T)(A + CST)): Capture CONVERT, use |
| get_range_query (cfun) instead of get_global_range_query () |
| and pass gimple_match_ctx (@2) as 3rd argument to range_of_expr. |
| (x_5 == cstN ? cst4 : cst3): Capture EQNE and pass |
| gimple_match_ctx (@4) as 3rd argument to range_of_expr. |
| |
| 2025-11-26 Soumya AR <soumyaa@nvidia.com> |
| |
| * config/aarch64/aarch64-json-tunings-parser.cc: Include |
| aarch64-json-tunings-parser-generated.inc. |
| * config/aarch64/aarch64-json-tunings-printer.cc: Include |
| aarch64-json-tunings-printer-generated.inc. |
| * config/aarch64/aarch64-opts.h (AARCH64_LDP_STP_POLICY): Use |
| aarch64-tuning-enums.def. |
| * config/aarch64/aarch64-protos.h (AARCH64_AUTOPREFETCH_MODE): Use |
| aarch64-tuning-enums.def. |
| * config/aarch64/t-aarch64: Invoke |
| aarch64-generate-json-tuning-routines.py if the schema is modified. |
| * config/aarch64/aarch64-generate-json-tuning-routines.py: New |
| maintenance script to generate JSON parser/printer routines. |
| * config/aarch64/aarch64-json-tunings-parser-generated.inc: New file. |
| * config/aarch64/aarch64-json-tunings-printer-generated.inc: New file. |
| * config/aarch64/aarch64-tuning-enums.def: New file. |
| |
| 2025-11-26 Soumya AR <soumyaa@nvidia.com> |
| |
| * config.gcc: Add aarch64-json-tunings-parser.o. |
| * config/aarch64/aarch64.cc (aarch64_override_options_internal): Invoke |
| aarch64_load_tuning_params_from_json if -muser-provided-CPU= is |
| (aarch64_json_tunings_tests): Extern aarch64_json_tunings_tests(). |
| (aarch64_run_selftests): Add aarch64_json_tunings_tests(). |
| * config/aarch64/aarch64.opt: New option. |
| * config/aarch64/t-aarch64 (aarch64-json-tunings-parser.o): New define. |
| * config/aarch64/aarch64-json-schema.h: New file. |
| * config/aarch64/aarch64-json-tunings-parser.cc: New file. |
| * config/aarch64/aarch64-json-tunings-parser.h: New file. |
| |
| 2025-11-26 Soumya AR <soumyaa@nvidia.com> |
| |
| * json.h (class object): Add get_map () method. |
| (is_a_helper<json::literal *>, is_a_helper<const json::literal *>): |
| New template specializations. |
| |
| 2025-11-26 Soumya AR <soumyaa@nvidia.com> |
| |
| * config.gcc: Add aarch64-json-tunings-printer.o. |
| * config/aarch64/aarch64.cc (aarch64_override_options_internal): Invoke |
| aarch64_print_tune_params if -fdump-tuning-model= is specified. |
| * config/aarch64/aarch64.opt: New option. |
| * config/aarch64/t-aarch64 (aarch64-json-tunings-printer.o): New define. |
| * config/aarch64/aarch64-json-tunings-printer.cc: New file. |
| * config/aarch64/aarch64-json-tunings-printer.h: New file. |
| |
| 2025-11-26 Soumya AR <soumyaa@nvidia.com> |
| |
| * config/aarch64/aarch64-protos.h |
| (struct scale_addr_mode_cost): Remove const from struct members. |
| (struct cpu_addrcost_table): Likewise. |
| (struct cpu_regmove_cost): Likewise. |
| (struct simd_vec_cost): Likewise. |
| (struct sve_vec_cost): Likewise. |
| (struct aarch64_base_vec_issue_info): Likewise. |
| (struct aarch64_simd_vec_issue_info): Likewise. |
| (struct aarch64_sve_vec_issue_info): Likewise. |
| (struct aarch64_vec_issue_info): Likewise. |
| (struct cpu_vector_cost): Likewise. |
| (struct cpu_branch_cost): Likewise. |
| (struct cpu_approx_modes): Likewise. |
| (struct cpu_prefetch_tune): Likewise. |
| * config/arm/aarch-common-protos.h |
| (struct alu_cost_table): Remove const from struct members. |
| (struct mult_cost_table): Likewise. |
| (struct mem_cost_table): Likewise. |
| (struct fp_cost_table): Likewise. |
| (struct vector_cost_table): Likewise. |
| (struct cpu_cost_table): Likewise. |
| |
| 2025-11-26 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| PR middle-end/116815 |
| * config/aarch64/aarch64.md |
| (*aarch64_plus_within_<optab><mode>3_<ovf_commutate>): New pattern. |
| (*aarch64_minus_within_<optab><mode>3): Likewise. |
| * config/aarch64/iterators.md (ovf_add_cmp): New code attribute. |
| (udf_sub_cmp): Likewise. |
| (UMAXMIN): New code iterator. |
| (ovf_commutate): New iterator. |
| (ovf_comm_opp): New int attribute. |
| |
| 2025-11-26 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add pattern for SAT_MUL form 7 include |
| mul and widen_mul. |
| |
| 2025-11-26 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiprop.cc (propagate_with_phi): Only |
| calculate on demand post dom info when the new store |
| might trap. |
| |
| 2025-11-26 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122847 |
| * tree-ssa-phiprop.cc (propagate_with_phi): Add type |
| check for reuse of the phi for the delayed statements. |
| |
| 2025-11-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_header_zstd_h): Save, restore CXXFLAGS, |
| LDFLAGS. |
| * configure: Regenerate. |
| |
| 2025-11-25 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/118974 |
| * config/aarch64/aarch64-simd.md (xor<mode>3<vczle><vczbe>): Rename ... |
| (@xor<mode>3<vczle><vczbe>): .. to this. |
| (cbranch<mode>4): Update comments. |
| (<optab><mode>): New. |
| * config/aarch64/aarch64-sve.md (cbranch<mode>4): Update comment. |
| (<optab><mode>): New. |
| (aarch64_ptest<mode>): Rename to ... |
| (@aarch64_ptest<mode>): .. this. |
| * config/aarch64/iterators.md (UNSPEC_CMP_ALL, UNSPEC_CMP_ANY, |
| UNSPEC_COND_CMP_ALL, UNSPEC_COND_CMP_ANY): New. |
| (optabs): Add them. |
| (CBRANCH_CMP, COND_CBRANCH_CMP, cbranch_op): New. |
| * config/aarch64/predicates.md (aarch64_cbranch_compare_operation): New. |
| |
| 2025-11-25 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/118974 |
| * tree-vect-stmts.cc (supports_vector_compare_and_branch): New. |
| (vectorizable_early_exit): Use it. |
| |
| 2025-11-25 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/118974 |
| * optabs.def (vec_cbranch_any_optab, vec_cbranch_all_optab, |
| cond_vec_cbranch_any_optab, cond_vec_cbranch_all_optab, |
| cond_len_vec_cbranch_any_optab, cond_len_vec_cbranch_all_optab): New. |
| * doc/md.texi: Document them. |
| * optabs.cc (prepare_cmp_insn): Refactor to take optab to check for |
| instead of hardcoded cbranch and support mask and len. |
| (emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns): Implement them. |
| (emit_conditional_move, emit_conditional_add, gen_cond_trap): Update |
| after changing function signatures to support new optabs. |
| |
| 2025-11-25 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi: Document --compile-std-module. |
| * gcc.cc (struct infile): Add artificial field. |
| (add_infile): Set it. |
| (driver::prepare_infiles): Check it. |
| |
| 2025-11-25 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi (C++ Modules): Remove TU-local caveat. |
| |
| 2025-11-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120052 |
| * gimplify.cc (gimplify_call_expr): For IFN_UBSAN_BOUNDS |
| call with integer_onep first argument, change that argument |
| to 0 and add TYPE_MAX_VALUE (TYPE_DOMAIN (arr_type)) to |
| 3rd argument before gimplification. |
| |
| 2025-11-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120564 |
| * omp-expand.cc (extract_omp_for_update_vars): Use build2 instead of |
| fold_build2 to build argument for gimple_build_cond_empty. |
| |
| 2025-11-25 Jakub Jelinek <jakub@redhat.com> |
| |
| * alias.cc (get_alias_set): Fix comment typo, TYPE_CANOINCAL |
| -> TYPE_CANONICAL. |
| |
| 2025-11-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/122624 |
| * tree.cc (build_bitint_type): Use type_hash_canon_hash. |
| |
| 2025-11-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/sourcebuild.texi (Add Options): Document |
| check_function_bodies. |
| |
| 2025-11-24 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/122767 |
| * ira-color.cc (allocno_hard_regs_compare): Break ties |
| using... |
| * hard-reg-set.h (hard_reg_set_first_diff): ... this. New |
| HARD_REG_SET API entry point. |
| |
| 2025-11-24 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): |
| Multiply scalar cost by vect-scalar-cost-multiplier. |
| |
| 2025-11-24 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| * config/riscv/autovec.md (select_vl<mode>): Rename to... |
| (select_vl<V:mode><P:mode>): ...this. |
| * doc/md.texi: Document new behavior. |
| * internal-fn.cc (select_vl_direct): Make |
| (expand_select_vl_optab_fn): Adjust for convert optab. |
| (direct_select_vl_optab_supported_p): Ditto. |
| * internal-fn.def (SELECT_VL): Ditto. |
| * optabs.def (OPTAB_CD): Add select_vl. |
| (OPTAB_D): Remove select_vl. |
| * tree-vect-loop-manip.cc (vect_set_loop_controls_directly): |
| Adjust for convert select_vl optab. |
| * tree-vect-loop.cc: Ditto. |
| |
| 2025-11-24 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| * config/riscv/autovec.md: Use V_VLS_ZVFH for vec_set. |
| * config/riscv/riscv-modes.def (RVV_NF4_MODES): Add BF mdoes. |
| (ADJUST_PRECISION): Ditto. |
| (VECTOR_MODE_WITH_PREFIX): Ditto. |
| (VLS_MODES): Ditto. |
| * config/riscv/riscv-v.cc (can_be_broadcast_p): Add BF handling. |
| * config/riscv/riscv-vector-switch.def (VLS_ENTRY): Add BF |
| modes. |
| * config/riscv/riscv.md: Ditto. |
| * config/riscv/vector-iterators.md: Document modes. |
| * config/riscv/vector.md: Add BF modes. |
| |
| 2025-11-24 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR tree-optimization/122797 |
| * tree-vect-slp.cc (vect_load_perm_consecutive_p): Check |
| permutation start at element 0 with value instead of starting |
| at a given element. |
| (vect_optimize_slp_pass::remove_redundant_permutations): |
| Use start value of 0. |
| * tree-vectorizer.h (vect_load_perm_consecutive_p): Set default |
| value to to UINT_MAX. |
| |
| 2025-11-24 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): |
| Allow nop conversions. |
| |
| 2025-11-24 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.h (REGS_OK_FOR_BASE_INDEX): New define. |
| * config/pa/pa.md: Update peephole2 patterns for scaled/unscaled |
| indexed loads and stores. |
| |
| 2025-11-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122826 |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Only |
| use single-lane SLP for SIMD_CLONE_ARG_TYPE_UNIFORM |
| and SIMD_CLONE_ARG_TYPE_LINEAR_[REF_]CONSTANT_STEP. |
| |
| 2025-11-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/116835 |
| * tree-ssa-phiprop.cc (propagate_with_phi): Admend the |
| post-dom check to deal with ssa cycles. |
| |
| 2025-11-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/60183 |
| * tree-ssa-phiprop.cc (propagate_with_phi): Delay the decision |
| of always rejecting proping into the loop until all are done. |
| if there was some delay stmts and a phi was created fill them in. |
| |
| 2025-11-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/60183 |
| * tree-ssa-phiprop.cc (propagate_with_phi): Allow |
| known non-trapping loads to happen back into the |
| loop. |
| |
| 2025-11-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (do_simple_agr_dse): Allow |
| for mismatched clobbers. |
| |
| 2025-11-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122633 |
| * tree-ssa-forwprop.cc (do_simple_agr_dse): Remove |
| lhs of dead store for a call (or the whole call stmt). |
| |
| 2025-11-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (`(ptr_diff (ptr_plus @0 @2) (ptr_plus @1 @2))`): Move pattern |
| earlier to the other `(ptr_diff (ptr_plus) (ptr_plus))` pattern. |
| |
| 2025-11-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Move |
| all SIMD clone validity checks to SIMD clone selection. |
| Remove late constant/external def vector type setting and |
| verification. |
| |
| 2025-11-24 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/122782 |
| * ext-dce.cc (ext_dct_process_uses): Guard against undefined shifts |
| by properly checking modes on the input object. |
| |
| 2025-11-24 Yury Khrustalev <yury.khrustalev@arm.com> |
| |
| PR debug/121964 |
| * dwarf2out.cc (gen_array_type_die): Add DW_AT_bit_stride attribute |
| for array types based on element type bit precision for integer and |
| boolean element types. |
| |
| 2025-11-24 Yury Khrustalev <yury.khrustalev@arm.com> |
| |
| * machmode.def (VECTOR_BOOL_MODE): Fix comment. |
| |
| 2025-11-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/33994 |
| * fold-const.h (int_const_convert): New prototype. |
| * fold-const.cc (fold_convert_const_int_from_int): Rename to... |
| (int_const_convert): ...this, remove static keyword and add third |
| parameter OVERFLOWABLE. |
| (fold_convert_const): Call int_const_convert if ARG1 is an integer |
| constant. |
| |
| 2025-11-24 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * config.gcc (aarch64-*-mingw*): Set native_system_header_dir. |
| |
| 2025-11-23 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa64-linux.h (GLIBC_DYNAMIC_LINKER): Define. |
| |
| 2025-11-23 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/113932 |
| PR target/113933 |
| * config/pa/pa.opt (mlra): Default to LRA instead of reload. |
| |
| 2025-11-23 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.cc (pa_print_operand): Use REG_POINTER |
| flag to select base and index registers on targets with |
| non-equivalent space registers. |
| (pa_legitimate_address_p): Don't allow scaled and unscaled |
| indexed addresses until reload is complete. Allow any |
| register order in unscaled addresses as long as the |
| REG_POINTER flag is correctly set/unset in the base/index |
| registers. |
| * config/pa/predicates.md (mem_operand): Remove code to |
| delay creating move insns with unscaled indexed addresses |
| until CSE is not expected. |
| (move_src_operand): Likewise. |
| |
| 2025-11-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (1/x): Use fold_before_rtl_expansion_p. |
| (`(m1 CMP m2) * d`): Likewise. |
| |
| 2025-11-23 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Remove unnecessary outer convert and add |
| c for the outer bit_ior. |
| |
| 2025-11-23 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add simplfy to fold outer convert of bit_op |
| to inner captures. |
| |
| 2025-11-23 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * ipa-split.cc (pass_split_functions::gate): Do not run when |
| flag_auto_profile. |
| (pass_feedback_split_functions::gate): Run when flag_auto_profile. |
| |
| 2025-11-23 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * tree-ssa-loop-im.cc (is_self_write): New. |
| (ref_indep_loop_p): Allow hoisting when aliasing references |
| form a self write pattern. |
| |
| 2025-11-22 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/122701 |
| * ext-dce.cc (ext_dce_try_optimize_rshift): Emit a fresh reg->reg |
| copy rather than modifying the existing right shift. |
| |
| 2025-11-22 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * omp-general.cc (omp_context_selector_matches): Add an optional |
| bool argument for the code elision case. |
| * omp-general.h (omp_context_selector_matches): Likewise. |
| |
| 2025-11-22 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * omp-general.cc (omp_mangle_variant_name): New. |
| (omp_check_for_duplicate_variant): New. |
| (omp_copy_trait_set): New. |
| (omp_trait_selectors_equivalent): New. |
| (omp_combine_trait_sets): New. |
| (omp_merge_context_selectors): New. |
| * omp-general.h (omp_mangle_variant_name): Declare. |
| (omp_check_for_duplicate_variant): Declare. |
| (omp_merge_context_selectors): Declare. |
| |
| 2025-11-22 zhaozhou <zhaozhou@loongson.cn> |
| |
| * config/loongarch/loongarch.cc: Extract plus operation. |
| |
| 2025-11-22 Deng Jianbo <dengjianbo@loongson.cn> |
| |
| * config/loongarch/loongarch.md |
| (*bstrins_w_for_ior_ashift_and_extend): New template. |
| (*bstrins_d_for_ior_ashift_and): New template. |
| * config/loongarch/predicates.md (const_uimm63_operand): New |
| predicate. |
| |
| 2025-11-22 zhaozhou <zhaozhou@loongson.cn> |
| |
| * config/loongarch/lsx.md (lsx_vshuf4i_mem_w_0): Add template. |
| (lsx_vldrepl_merge_w_0): Ditto. |
| |
| 2025-11-22 Kees Cook <kees@kernel.org> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_indirect_branch_asm): |
| Declare. |
| * config/aarch64/aarch64.cc (aarch64_indirect_branch_asm): New |
| function to generate indirect branch with SLS barrier. |
| * config/aarch64/aarch64.md (*sibcall_insn): Use |
| aarch64_indirect_branch_asm. |
| (*sibcall_value_insn): Likewise. |
| |
| 2025-11-21 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/118358 |
| * lra-constraints.cc (curr_insn_transform): Move insn reloading |
| constant into a register right before insn using it. |
| |
| 2025-11-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122762 |
| PR tree-optimization/122736 |
| PR tree-optimization/122790 |
| * cgraph.h (cgraph_simd_clone_arg::linear_step): Document |
| use for SIMD_CLONE_ARG_TYPE_MASK. |
| * omp-simd-clone.cc (simd_clone_adjust_argument_types): |
| Record the number of mask arguments in linear_step if |
| mask_mode is not VOIDmode. |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): |
| Remove num_mask_args computation, use a proper ncopies |
| to query/register loop masks, use linear_step for the |
| number of mask arguments when determining the number of |
| mask elements in a mask argument. |
| |
| 2025-11-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122778 |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Honor |
| a loop mask when passing the conditional mask with AVX512 |
| style masking. |
| |
| 2025-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/122598 |
| * config/i386/predicates.md (const_vec_dup_operand): Remove. |
| * config/i386/sse.md (cond<<insn><mode> with VI1_AVX512VL iterator): |
| Remove. |
| |
| 2025-11-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (Optimize Options) <-fmalloc-dce>: Remove |
| trailing space. |
| (AArch64 Options) <-march>: Fix pasto. |
| |
| 2025-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/122773 |
| * gimplify.cc (collect_fallthrough_labels): Check whether |
| gimple_goto_dest is a LABEL_DECL before testing VACUOUS_INIT_LABEL_P. |
| (expand_FALLTHROUGH_r): Likewise. |
| |
| 2025-11-21 Loeka Rogge <loeka@synopsys.com> |
| Keith Packard <keithp@keithp.com> |
| |
| PR target/120375 |
| * config/arc/arc.md (*<insn>si3_nobs): merged with <insn>si3_loop. |
| (<insn>si3_loop): splits to relevant pattern or emits loop assembly. |
| (<insn>si3_cnt1_clobber): Removes clobber for shift or rotate by |
| const1. |
| |
| 2025-11-21 Claudiu Zissulescu <claziss@gmail.com> |
| Michiel Derhaeg <michiel@synopsys.com> |
| |
| * config/arc/arc.md: Modify define_insn_and_split "*extvsi_n_0" |
| |
| 2025-11-21 Josef Melcr <josef.melcr@suse.com> |
| |
| * attr-callback.cc (callback_edge_callee_has_attr): New |
| function. |
| * attr-callback.h (callback_edge_callee_has_attr): New function |
| decl. |
| * ipa-prop.cc (ipa_compute_jump_functions_for_bb): Don't skip |
| callback carriers when calculating jump functions. |
| |
| 2025-11-21 Josef Melcr <josef.melcr@suse.com> |
| |
| PR ipa/122768 |
| * attr-callback.cc (callback_edge_useful_p): Rewrite the |
| heuristic, now consider clones as well as icf bodies. |
| |
| 2025-11-21 Deng Jianbo <dengjianbo@loongson.cn> |
| |
| * config/loongarch/constraints.md: Update constraint YI to support |
| more numbers. |
| * config/loongarch/loongarch-protos.h |
| (loongarch_const_vector_vrepli): Rename. |
| (loongarch_const_vector_vldi): Ditto. |
| * config/loongarch/loongarch.cc (VLDI_NEG_MASK): New macro. |
| (loongarch_parse_vldi_const): New function to check if numbers can |
| be generated by {x}vldi instruction. |
| (loongarch_const_vector_vrepli): Rename. |
| (loongarch_const_vector_vldi): Use above function. |
| (loongarch_const_insns): Call renamed function. |
| (loongarch_split_vector_move_p): Ditto. |
| (loongarch_output_move): Ditto. |
| |
| 2025-11-21 zhaozhou <zhaozhou@loongson.cn> |
| |
| * config/loongarch/lsx.md: Fix predicate. |
| |
| 2025-11-20 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/121345 |
| * gimple-range-phi.cc (phi_group::calculate_using_modifier): Restore |
| performance loss by being more selective when iterating. |
| |
| 2025-11-20 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-opt-popretz.cc: New file. |
| * config/riscv/riscv-passes.def: Insert pass_combine_popretz before |
| pass_shorten_branches. |
| * config/riscv/riscv-protos.h (make_pass_combine_popretz): New |
| declaration. |
| * config/riscv/t-riscv: Add riscv-opt-popretz.o build rule. |
| * config.gcc (riscv*): Add riscv-opt-popretz.o to extra_objs. |
| |
| 2025-11-20 Pan Li <pan2.li@intel.com> |
| |
| PR target/122692 |
| * config/riscv/riscv.cc (riscv_expand_ustrunc): Leverage |
| riscv_extend_to_xmode_reg to take care of src rtx. |
| |
| 2025-11-20 Tamar Christina <tamar.christina@arm.com> |
| |
| * target.def (instruction_selection): New. |
| * doc/tm.texi.in: Document it. |
| * doc/tm.texi: Regenerate |
| * gimple-isel.cc (pass_gimple_isel::execute): Use it. |
| * targhooks.cc (default_instruction_selection): New. |
| * targhooks.h (default_instruction_selection): New. |
| |
| 2025-11-20 Josef Melcr <josef.melcr@suse.com> |
| |
| PR ipa/122358 |
| * cgraph.cc (cgraph_add_edge_to_call_site_hash): Add an early |
| return when the hashed edge is a callback-carrying edge. |
| |
| 2025-11-20 Arsen Arsenović <aarsenovic@baylibre.com> |
| |
| * doc/rtl.texi (Regs and Memory): Use @table instead of @itemize |
| for lists with named items. |
| |
| 2025-11-20 Xinhui Yang <cyan@cyano.uk> |
| |
| PR bootstrap/105664 |
| * Makefile.in (install-driver): detect name collision when |
| installing the driver program. |
| |
| 2025-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/sol2.h: Replace USE_GAS by HAVE_GNU_AS. |
| Replace USE_GLD by HAVE_GNU_LD. |
| * config/sol2.h: Likewise. |
| * config/sparc/sol2.h: Likewise. |
| * config/i386/i386.cc (i386_solaris_elf_named_section) |
| [TARGET_SOLARIS]: Replace USE_GAS by HAVE_GNU_AS. |
| * config/ia64/hpux.h: Likewise. |
| * config.gcc: Remove usegas.h, usegld.h. |
| * config/usegas.h: Remove. |
| * config/usegld.h: Remove |
| |
| 2025-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (LINK_ARCH32_SPEC_BASE): Don't provide -YP |
| defaults. Rename to ... |
| (LINK_ARCH_SPEC_BASE): ... this. |
| (LINK_ARCH32_SPEC): Remove. |
| (LINK_ARCH64_SPEC_BASE): Remove. |
| (LINK_ARCH64_SPEC): Rename to ... |
| (LINK_ARCH_SPEC_1): ... this. |
| [!USE_GLD]: Simplify map.below4G use. |
| (LINK_ARCH_ERROR_SPEC): New macro. |
| (LINK_ARCH32_SPEC): Remove. |
| (LINK_ARCH_DEFAULT_SPEC): Remove. |
| (LINK_ARCH_SPEC): Simplify using LINK_ARCH_ERROR_SPEC, |
| LINK_ARCH_SPEC_1. |
| (SUBTARGET_EXTRA_SPECS): Remove link_arch32, link_arch64 |
| link_arch_default. |
| |
| 2025-11-20 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/lsx.md (vec_perm<mode>): Expand directly with |
| RTL template. |
| * config/loongarch/loongarch-protos.h |
| (loongarch_expand_vec_perm): Delete. |
| * config/loongarch/loongarch.cc (loongarch_expand_vec_perm): |
| Delete. |
| |
| 2025-11-20 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/lasx.md (lasx_xvpermi_d): Add "@". |
| * config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1): |
| Use gen_lasx_xvpermi_d instead of |
| gen_lasx_xvpermi_d_{v32qi,v16hi} to deduplicate the logic. Do |
| structrual programming instead of goto and label. |
| |
| 2025-11-20 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1): |
| Clamp the selector using the twice of actual number of elements. |
| Compare the clamped selector with the element number to get the |
| blending mask. |
| |
| 2025-11-20 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/lasx.md (lasx_xvshuf_b): Remove. |
| (lasx_xvshuf_<lasxfmt_f): Remove. |
| (unspec): Remove UNSPEC_LASX_XVSHUF and UNSPEC_LASX_XVSHUF_B. |
| * config/loongarch/lsx.md (lsx_vshuf_b): Remove. |
| (lsx_vshuf_<lasxfmt_f): Remove. |
| (unspec): Remove UNSPEC_LSX_VSHUF and UNSPEC_LSX_VSHUF_B. |
| * config/loongarch/simd.md (unspec): Add UNSPEC_SIMD_VSHUF. |
| (@simd_vshuf): New define_insn. |
| (<simd_isa>_<x>vshuf_<simdfmt><_f>): New define_expand. |
| * config/loongarch/loongarch.cc |
| (loongarch_try_expand_lsx_vshuf_const): Call gen_simd_vshuf |
| instead of gen_lasx_xvshuf and gen_lasx_xvshuf_b. |
| (loongarch_expand_vec_perm_const): Likewise. |
| |
| 2025-11-20 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/lasx.md (lasx_xvperm_<lasxfmt_f_wd>): Add |
| "@" for gen_lasx_xvperm helper. |
| * config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1): |
| Call gen_lasx_xvperm to unify V8SF and V8SI handling. |
| |
| 2025-11-20 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1): |
| Use lasx_xvpackev_h (mask * 2, mask * 2 + 1) to "expand" the |
| V4DI selector to V8SI. |
| |
| 2025-11-20 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/122695 |
| * config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1): |
| Simplify and fix the logic preventing the xvshuf.* unpredictable |
| behavior. |
| |
| 2025-11-19 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/122756 |
| * gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Do |
| not invoke SCEV if already in a SCEV call. |
| |
| 2025-11-19 Martin Liska <martin.liska@hey.com> |
| |
| * common.opt.urls: Include -fuse-ld=wild |
| |
| 2025-11-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122754 |
| * gimple-fold.cc (get_range_strlen_tree): Use POINTER_TYPE_P instead |
| of direct comparing to POINTER_TYPE. |
| * gimple-ssa-sprintf.cc (format_integer): Likewise. |
| * gimple-ssa-warn-access.cc (maybe_warn_nonstring_arg): Likewise. |
| * gimple-ssa-warn-restrict.cc (pass_wrestrict::check_call): Likewise. |
| * tree-ssa-strlen.cc (maybe_set_strlen_range): Likewise. |
| (is_strlen_related_p): Likewise. |
| (strlen_pass::handle_assign): Likewise. |
| |
| 2025-11-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-dce.cc (simple_dce_from_worklist): Use FOR_EACH_IMM_USE_FAST instead of |
| FOR_EACH_IMM_USE_STMT. |
| |
| 2025-11-19 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/122763 |
| * config/aarch64/aarch64.cc (aarch64_layout_arg): Return NULL_RTX for |
| arguments of size 0. |
| (aarch64_function_arg_advance): Remove assert. |
| |
| 2025-11-19 Alfie Richards <alfie.richards@arm.com> |
| |
| * doc/extend.texi (preserve_none): Minor grammar fix. |
| |
| 2025-11-19 Martin Liska <martin.liska@hey.com> |
| |
| * collect2.cc (main): Add wild linker to -fuse-ld. |
| * common.opt: Likewise. |
| * configure: Regenerate. |
| * configure.ac: Add detection for wild linker. |
| * doc/invoke.texi: Document -fuse-ld=wild. |
| * gcc.cc (driver_handle_option): Support -fuse-ld=wild. |
| * opts.cc (common_handle_option): Likewise. |
| |
| 2025-11-19 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (vec_extract<mode><v128>, |
| vec_extract<mode><v64>): New. |
| * config/aarch64/iterators.md (V64, v64): New. |
| * config/aarch64/predicates.md (const0_to_1_operand): New. |
| |
| 2025-11-19 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv-string.cc (riscv_expand_block_move_scalar): |
| Fix signed vs unsigned warning. |
| |
| 2025-11-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_load): Make dr_chain |
| an auto_vec, move down to where we use it to avoid creating |
| it twice. |
| |
| 2025-11-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122722 |
| * tree-vect-slp.cc (vect_analyze_slp_reductions): New |
| function, split out from vect_analyze_slp. Try SLP |
| sub-groups. |
| (vect_analyze_slp_reduction_group): New helper. |
| |
| 2025-11-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122747 |
| * tree-vect-stmts.cc (vectorizable_call): Handle reduction |
| operations that are already conditional. |
| |
| 2025-11-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssanames.cc (get_known_nonzero_bits): Fix a pasto in |
| function comment, this function returns 0 if unknown rather |
| than -1. |
| |
| 2025-11-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/122184 |
| * tree-ssa-live.cc (remove_unused_locals): Drop .DEFERRED_INIT |
| calls with MEM_REF lhs based on uninitialized SSA_NAME. |
| |
| 2025-11-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * genmultilib: Check $enable_multilib to define DISABLE_MULTILIB. |
| |
| 2025-11-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h: Check USE_GLD instead of USE_GNU_LD. |
| |
| 2025-11-19 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| PR target/119130 |
| * config/rs6000/altivec.md (convert_4f32_8f16): Use same operand |
| order for both endian format. |
| |
| 2025-11-19 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/i386-common.cc: Adjust to P_PROC_AVX10_1. |
| * config/i386/driver-i386.cc (host_detect_local_cpu): |
| Move Nova Lake to under AVX512 part. |
| * config/i386/i386.h (PTA_NOVALAKE): Add AVX10.1, AVX10.2, |
| APX_F and MOVRS. |
| * config/i386/x86-tune-sched.cc (ix86_issue_rate): Set to 8. |
| * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add Nova |
| Lake. |
| * doc/invoke.texi: Adjust documentation. |
| |
| 2025-11-18 Edwin Lu <ewlu@rivosinc.com> |
| |
| * config/riscv/riscv-string.cc (riscv_expand_block_move_scalar): |
| Add length check. |
| (expand_block_move): Ditto. |
| (expand_vec_setmem): Ditto. |
| * config/riscv/riscv.opt: Add param flags. |
| |
| 2025-11-18 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm_mve.h (__ARM_mve_typeid): Delete. |
| (__ARM_mve_coerce): Delete. |
| (__ARM_mve_coerce_i_scalar): Delete. |
| (__ARM_mve_coerce_s8_ptr): Delete. |
| (__ARM_mve_coerce_u8_ptr): Delete. |
| (__ARM_mve_coerce_s16_ptr): Delete. |
| (__ARM_mve_coerce_u16_ptr): Delete. |
| (__ARM_mve_coerce_s32_ptr): Delete. |
| (__ARM_mve_coerce_u32_ptr): Delete. |
| (__ARM_mve_coerce_s64_ptr): Delete. |
| (__ARM_mve_coerce_u64_ptr): Delete. |
| (__ARM_mve_coerce_f_scalar): Delete. |
| (__ARM_mve_coerce_f16_ptr): Delete. |
| (__ARM_mve_coerce_f32_ptr): Delete. |
| |
| 2025-11-18 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm-mve-builtins-shapes.cc (build_one): Add |
| which_overload parameter. |
| (inherent): Derive from overloaded_base<0>. Add support for |
| overloaded version. |
| * config/arm/arm-mve-builtins-shapes.h (inherent): Update comment. |
| * config/arm/arm-mve-builtins.cc (add_unique_function): Add |
| support for new which_overload parameter. |
| (pop_and_resolve_to): New. |
| * config/arm/arm-mve-builtins.h (NONOVERLOADED_FORM) |
| (OVERLOADED_FORM): New. |
| (add_unique_function): Update prototype. |
| (pop_and_resolve_to): New prototype. |
| * config/arm/arm_mve.h (vuninitializedq): Delete. |
| (vuninitializedq_u8): Delete. |
| (vuninitializedq_u16): Delete. |
| (vuninitializedq_u32): Delete. |
| (vuninitializedq_u64): Delete. |
| (vuninitializedq_s8): Delete. |
| (vuninitializedq_s16): Delete. |
| (vuninitializedq_s32): Delete. |
| (vuninitializedq_s64): Delete. |
| (vuninitializedq_f16): Delete. |
| (vuninitializedq_f32): Delete. |
| (__arm_vuninitializedq): Delete. |
| |
| 2025-11-18 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm-mve-builtins-base.cc (class |
| mve_function_vset_vget_lane): New. |
| (vgetq_lane, vsetq_lane): New. |
| * config/arm/arm-mve-builtins-base.def (vgetq_lane, vsetq_lane): |
| New. |
| * config/arm/arm-mve-builtins-base.h (vgetq_lane, vsetq_lane): |
| New. |
| * config/arm/arm-mve-builtins-shapes.cc (struct getq_lane) |
| (setq_lane): New. |
| * config/arm/arm-mve-builtins-shapes.h (getq_lane, setq_lane): |
| New. |
| * config/arm/arm_mve.h (vsetq_lane): Delete. |
| (vgetq_lane): Delete. |
| (vsetq_lane_f16): Delete. |
| (vsetq_lane_f32): Delete. |
| (vsetq_lane_s16): Delete. |
| (vsetq_lane_s32): Delete. |
| (vsetq_lane_s8): Delete. |
| (vsetq_lane_s64): Delete. |
| (vsetq_lane_u8): Delete. |
| (vsetq_lane_u16): Delete. |
| (vsetq_lane_u32): Delete. |
| (vsetq_lane_u64): Delete. |
| (vgetq_lane_f16): Delete. |
| (vgetq_lane_f32): Delete. |
| (vgetq_lane_s16): Delete. |
| (vgetq_lane_s32): Delete. |
| (vgetq_lane_s8): Delete. |
| (vgetq_lane_s64): Delete. |
| (vgetq_lane_u8): Delete. |
| (vgetq_lane_u16): Delete. |
| (vgetq_lane_u32): Delete. |
| (vgetq_lane_u64): Delete. |
| (__ARM_NUM_LANES): Delete. |
| (__ARM_LANEQ): Delete. |
| (__ARM_CHECK_LANEQ): Delete. |
| (__arm_vsetq_lane_s16): Delete. |
| (__arm_vsetq_lane_s32): Delete. |
| (__arm_vsetq_lane_s8): Delete. |
| (__arm_vsetq_lane_s64): Delete. |
| (__arm_vsetq_lane_u8): Delete. |
| (__arm_vsetq_lane_u16): Delete. |
| (__arm_vsetq_lane_u32): Delete. |
| (__arm_vsetq_lane_u64): Delete. |
| (__arm_vgetq_lane_s16): Delete. |
| (__arm_vgetq_lane_s32): Delete. |
| (__arm_vgetq_lane_s8): Delete. |
| (__arm_vgetq_lane_s64): Delete. |
| (__arm_vgetq_lane_u8): Delete. |
| (__arm_vgetq_lane_u16): Delete. |
| (__arm_vgetq_lane_u32): Delete. |
| (__arm_vgetq_lane_u64): Delete. |
| (__arm_vsetq_lane_f16): Delete. |
| (__arm_vsetq_lane_f32): Delete. |
| (__arm_vgetq_lane_f16): Delete. |
| (__arm_vgetq_lane_f32): Delete. |
| (__arm_vsetq_lane): Delete. |
| (__arm_vgetq_lane): Delete. |
| * config/arm/mve.md (mve_vec_extract<mode><V_elem_l>): Add '@' |
| prefix. |
| (mve_vec_set<mode>_internal): Likewise. |
| |
| 2025-11-18 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * doc/extend.texi (Half-precision Floating-point): __fp16 is now |
| always available on arm. Move x86 paragraph closer to the rest of |
| the x86 information, and make it use present tense. |
| |
| 2025-11-18 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/117814 |
| * config/arm/arm-builtins.cc (arm_init_fp16_builtins): Always |
| register __fp16 type. |
| * config/arm/arm-mve-builtins.cc (register_builtin_tuple_types): |
| Remove special handling when TARGET_HAVE_MVE_FLOAT is false. |
| (register_vector_type): Likewise. |
| (register_builtin_tuple_types): Likewise. |
| * config/arm/arm-opts.h (arm_fp16_format_type): Add |
| ARM_FP16_FORMAT_DEFAULT. |
| * config/arm/arm.cc (arm_vector_mode_supported_p): Accept |
| floating-point vector modes even if TARGET_HAVE_MVE_FLOAT is |
| false. |
| (arm_option_reconfigure_globals): Apply ARM_FP16_FORMAT_NONE if |
| requested. |
| * config/arm/arm.opt (mfp16-format): Default to |
| ARM_FP16_FORMAT_DEFAULT. |
| * config/arm/arm_mve_types.h (float16_t, float32_t): Define |
| unconditionally. |
| * doc/sourcebuild.texi (ARM-specific attributes): Document |
| arm_v8_1m_mve_nofp_ok. |
| |
| 2025-11-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122736 |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Compute |
| num_mask_args for all mask modes. Pass the mask vector |
| type to vect_record_loop_mask and adjust ncopies according |
| to the number of mask arguments. |
| |
| 2025-11-18 Austin Law <austinkylelaw@gmail.com> |
| |
| * config/riscv/riscv-cores.def: Add RISCV_TUNE and RISCV_CORE entries |
| for the spacemit-x60 design. |
| * config/riscv/riscv-opts.h (riscv_microarchitecture_type): Add entry |
| for spacemit-x60 design. |
| * config/riscv/riscv.cc (spacemit_x60_tune_info): New tune structure |
| for the spacemit-x60 design. |
| * config/riscv/riscv.md (tune): Add spacemit_x60. |
| Include spacemit-x60.md. |
| * config/riscv/spacemit-x60.md: New file |
| * doc/riscv-mtune.texi: Regenerate. |
| * doc/riscv-mcpu.texi: Regenerate. |
| |
| 2025-11-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122723 |
| * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage): |
| Handle incoming .COND_* operation. |
| (vect_transform_reduction): Likewise. Handle .COND_* |
| operation when not using COND_EXPR masking in a masked loop. |
| |
| 2025-11-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122723 |
| * tree-vect-stmts.cc (supportable_widening_operation): |
| Correct optab to query in the multi-step case when it is |
| supposed to hit the sbool case. |
| |
| 2025-11-18 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/103750 |
| * config/i386/sse.md (*<avx512>_eq<mode>3_and15): New |
| define_insn. |
| (*avx512vl_eqv2di_and3): Ditto. |
| * config/i386/i386.md (*ior<mode>_ccz_1): Fix the typo in the |
| comments above. |
| |
| 2025-11-17 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/122626 |
| * tree-logical-location.cc |
| (tree_logical_location_manager::get_parent): Return null when |
| TYPE_CONTEXT is a TRANSLATION_UNIT_DECL so that we don't fail |
| the assertion in assert_valid_tree. |
| |
| 2025-11-17 Evgeny Karpov <evgeny@kmaps.co> |
| |
| PR diagnostics/122666 |
| * config/i386/x-mingw32 (LIBS): Add -lws2_32 |
| * diagnostics/sarif-sink.cc: Move sockets includes to before |
| config.h and support __MINGW32__. |
| |
| 2025-11-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/97894 |
| * attr-fnspec.h (attr_fnspec): arg_idx, known_p, arg_specified_p, |
| arg_direct_p, arg_used_p, arg_readonly_p, |
| arg_maybe_read_p, arg_maybe_written_p, |
| arg_max_access_size_given_by_arg_p, |
| arg_access_size_given_by_type_p, |
| arg_copied_to_arg_p, arg_noescape_p, returns_arg, |
| returns_noalias_p, global_memory_read_p, |
| global_memory_written_p, errno_maybe_written_p, arg_eaf_flags, |
| and get_str as const methods. |
| |
| 2025-11-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (maybe_remove_forwarder_block): Move a few |
| checks earlier. |
| |
| 2025-11-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (tree_forwarder_block_p): Merge this and ... |
| (remove_forwarder_block): This into ... |
| (maybe_remove_forwarder_block): Here. |
| (cleanup_tree_cfg_bb): Call only maybe_remove_forwarder_block. |
| (pass_merge_phi::execute): Likewise. |
| |
| 2025-11-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (pass_merge_phi::execute): Add stats for the removed |
| blocks. |
| |
| 2025-11-17 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/122575 |
| * simplify-rtx.cc (simplify_context::simplify_relational_operation_1): |
| Use correct mode for simplified IOR expression inside equality |
| conditional. |
| |
| 2025-11-17 Xi Ruoyao <xry111@xry111.site> |
| |
| * simplify-rtx.cc (simplify_const_binary_operation): Simplify |
| VEC_CONCAT two constant vectors. |
| |
| 2025-11-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.cc (move_computations_worker): Avoid newline |
| between 'Moving statement' and actual statement dump in dumpfile. |
| |
| 2025-11-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.cc (fill_always_executed_in): Skip |
| blocks not in loops when looking for possibly not returning |
| calls. |
| |
| 2025-11-17 Victor Do Nascimento <vicdon01@ip-10-248-139-187.eu-west-1.compute.internal> |
| |
| * cfgloop.cc (loop_exits_to_bb_p): Change return type. |
| (loop_exits_from_bb_p): Likewise. |
| * cfgloop.h: (loop_exits_to_bb_p): Likewise. |
| (loop_exits_from_bb_p): Likewise. |
| |
| 2025-11-17 Alfie Richards <alfie.richards@arm.com> |
| |
| * doc/extend.texi: (ARM C Language Extensions (ACLE)) Update ACLE URL |
| and description. |
| |
| 2025-11-17 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * tree-ssa-forwprop.cc (optimize_vector_load): Inhibit |
| optimization when all uses are through subvectors without |
| extension. |
| |
| 2025-11-17 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-core.h (enum built_in_function): Avoid arithmetics or |
| bitwise operations between enumerators from different enums. |
| * lto-streamer.h (lto_tag_is_gimple_code_p): Likewise. |
| * gimple.h (gimple_omp_atomic_set_memory_order): Likewise. |
| * common/config/i386/i386-cpuinfo.h (M_CPU_SUBTYPE_START, |
| M_CPU_TYPE): Likewise. |
| * tree-complex.cc (expand_complex_libcall): Likewise. |
| * ipa-modref-tree.h (modref_access_node::operator ==): Change |
| argument type from modref_access_node & to |
| const modref_access_node &. |
| * ipa-modref-tree.cc (modref_access_node::operator ==): Likewise. |
| |
| 2025-11-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122573 |
| * config/i386/i386.cc (ix86_vector_costs::finish_cost): Avoid |
| using masked epilogues when an SSE epilogue would have a VF of one. |
| |
| 2025-11-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_compress_debug) <*-*-solaris2*>: Check |
| for zstd compression support. |
| * configure: Regenerate. |
| * doc/invoke.texi (Debugging Options, gz): Document zstd. |
| |
| 2025-11-16 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/121345 |
| * gimple-range-phi.cc (phi_group::phi_group): Add modifier name. |
| (phi_group::is_modifier_p): Set modifier stmt operand name. |
| (phi_group::calculate_using_modifier): Bound the iteration range |
| by known global range. |
| (phi_analyzer::process_phi): Allow single PHIS if they meet certain |
| criteria. |
| * gimple-range-phi.h (m_modifier_name): New member. |
| (is_modifier_p): Adjust prototype. |
| |
| 2025-11-16 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove |
| the PHI analysis query. |
| * gimple-range-phi.cc (phi_analysis_object): Delete. |
| (phi_analysis_initialize): Delete. |
| (phi_analysis_finalize): Delete. |
| (phi_analysis_available_p): Delete. |
| (phi_analysis): Invoke a phi analyzer. |
| (phi_analyzer::phi_analyzer): Preprocess all phi nodes and set |
| global values for them in a query. |
| (phi_analyzer::process_phi): Use query, and export any inital |
| values found to the query. |
| * gimple-range-phi.h (m_global): Delete. |
| (phi_analysis_initialize): Delete. |
| (phi_analysis_finalize): Delete. |
| (phi_analysis_available_p): Delete. |
| (phi_analysis): Change prototype. |
| * tree-vrp.cc (execute_ranger_vrp): Call phi_analysis. |
| |
| 2025-11-16 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::update_consumers): New. |
| * gimple-range-cache.h (update_consumers): New prototype. |
| * gimple-range-fold.cc (fur_depend::fur_depend): Add cache ptr. |
| (fur_depend::register_relation): call update_consumers. |
| * gimple-range-fold.h (fur_depend): Add a cache pointer. |
| * gimple-range.cc (gimple_ranger::fold_range_internal): Add cache ptr. |
| |
| 2025-11-16 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range.cc (gimple_ranger::update_range_info): New. |
| * gimple-range.h (update_range_info): New prototype. |
| * tree-ssanames.cc (set_range_info): Update the range info for |
| the current range query. |
| * value-query.h (update_range_info): New prototype. |
| * value-query.cc (update_range_info): New default stub. |
| |
| 2025-11-16 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (tree_forwarder_block_p): Restore check on |
| LOOPS_HAVE_PREHEADERS. |
| |
| 2025-11-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (MD_EXEC_PREFIX): Remove. |
| |
| 2025-11-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): |
| Initialize can_use_partial_vectors_p to true. |
| (vect_determine_partial_vectors_and_peeling): Add masked_p |
| parameter and honor it. |
| (vect_analyze_loop_2): Pass through masked_p. |
| (vect_analyze_loop_1): Pass down masked_p. |
| (vect_analyze_loop): Simplify check on possible masking of |
| the epilog when there's no .WHILE_ULT. |
| |
| 2025-11-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling): |
| Remove resetting of LOOP_VINFO_USING_SELECT_VL_P. |
| (vect_analyze_loop_2): Decide on partial vectors before |
| deciding on decrementing IV or .SELECT_VL usage. |
| |
| 2025-11-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_determine_partial_vectors_and_peeling): |
| Remove. |
| (vect_need_peeling_or_partial_vectors_p): Declare. |
| * tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling): |
| Make static. |
| (vect_need_peeling_or_partial_vectors_p): Export. |
| * tree-vect-loop-manip.cc (vect_do_peeling): Do not call |
| vect_determine_partial_vectors_and_peeling but instead |
| re-compute LOOP_VINFO_PEELING_FOR_NITER using |
| vect_need_peeling_or_partial_vectors_p. |
| |
| 2025-11-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_loop_vec_info::epil_using_partial_vectors_p): |
| Remove. |
| (LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P): Likewise. |
| * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): |
| Do not initialize epil_using_partial_vectors_p. |
| (vect_determine_partial_vectors_and_peeling): Do not set it. |
| |
| 2025-11-16 Lewis Hyatt <lhyatt@gmail.com> |
| |
| * diagnostics/context.cc (num_digits): Change argument type from |
| `int' to `uint64_t'. |
| (test_num_digits): Add test for 64-bit argument. |
| * diagnostic.h (num_digits): Adjust prototype. |
| * input.cc (write_digit): Accept argument in range 0-9 instead of |
| an arbitrary int. |
| (write_digit_row): Adjust to change in write_digit(). |
| |
| 2025-11-15 Jason Xu <bravejason@outlook.com> |
| |
| * config.gcc (aarch64-*-mingw*): Set use_gcc_stdint to wrap. |
| |
| 2025-11-15 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (risc_legitimize_move): Use convert_modes |
| rather than gen_extend_insn for most cases. |
| * config/riscv/riscv.md (addv<mode>4): Likewise. |
| (uaddv<mode>4, subv<mode>4, usubv<mode>4): Likewise. |
| (mulv<mode>4, umulv<mode>4): Likewise. |
| * config/riscv/sync.md (atomic_compare_and_swap<mode>): Likewise. |
| |
| 2025-11-15 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md (mov<GPF:mode><GPI:mode>cc): Delete. |
| |
| 2025-11-15 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md(mov<ALLI_GPF:mode>cc): Use new predicate. |
| (mov<GPF:mode><GPI:mode>cc): Likewise. |
| (<neg_not_op><mode>cc): Likewise. |
| * config/aarch64/predicates.md (aarch64_comparison_operator_cc): |
| New predicate. |
| |
| 2025-11-15 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md (mov<ALLI_GPF:mode>): Delete |
| redundant check. |
| (mov<GPF:mode><GPI:mode>cc): Likewise. |
| (<neg_not_op><mode>cc): Likewise. |
| |
| 2025-11-15 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md (mov<ALLI>cc): Merge with ... |
| (mov<ALLI>cc): ... this. |
| * config/aarch64/iterators.md(ALLI_GPF): New mode iterator. |
| |
| 2025-11-15 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md(mov<GPF>cc): Accept MODE_CC |
| conditions directly; reject QI/HImode conditions. |
| |
| 2025-11-14 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/riscv.cc (andes_25_tune_info): Add prefer-agnostic. |
| |
| 2025-11-14 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift): |
| Add ss_SQRSHR, ss_SQSHL, ss_SRSHR, ss_UQRSHL, ss_UQSHL, and |
| ss_URSHR. |
| (mve_function_scalar_shift): Add support for ss_SQRSHR, ss_SQSHL, |
| ss_SRSHR, ss_UQRSHL, ss_UQSHL, and ss_URSHR. |
| (sqrshr, sqshl, srshr, uqrshl, uqshl, urshr): New. |
| * config/arm/arm-mve-builtins-base.def (sqrshr, sqshl, srshr) |
| (uqrshl, uqshl, urshr): New. |
| * config/arm/arm-mve-builtins-base.h (sqrshr, sqshl, srshr) |
| (uqrshl, uqshl, urshr): New. |
| * config/arm/arm-mve-builtins-shapes.cc (scalar_s32_shift): New. |
| (scalar_s32_shift_imm): New. |
| (scalar_u32_shift): New. |
| (scalar_u32_shift_imm): New. |
| * config/arm/arm-mve-builtins-shapes.h (scalar_s32_shift): New. |
| (scalar_s32_shift_imm): New. |
| (scalar_u32_shift): New. |
| (scalar_u32_shift_imm): New. |
| * config/arm/arm_mve.h (sqrshr): Delete. |
| (sqshl): Delete. |
| (srshr): Delete. |
| (uqrshl): Delete. |
| (uqshl): Delete. |
| (urshr): Delete. |
| (__arm_uqrshl): Delete. |
| (__arm_sqrshr): Delete. |
| (__arm_uqshl): Delete. |
| (__arm_urshr): Delete. |
| (__arm_sqshl): Delete. |
| (__arm_srshr): Delete. |
| * config/arm/mve.md (mve_sqshl_si, mve_srshr_si): Fix operand 1 |
| mode. |
| |
| 2025-11-14 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift): |
| Add ss_SQSHLL, ss_SRSHRL, ss_UQSHLL, ss_URSHRL. |
| (mve_function_scalar_shift): Add support for ss_SQSHLL, ss_SRSHRL, |
| ss_UQSHLL, ss_URSHRL. |
| * config/arm/arm-mve-builtins-base.def (sqshll, srshrl, uqshll) |
| (urshrl): New. |
| * config/arm/arm-mve-builtins-base.h (sqshll, srshrl, uqshll) |
| (urshrl): New. |
| * config/arm/arm-mve-builtins-shapes.cc (scalar_s64_shift_imm) |
| (scalar_u64_shift_imm): New. |
| * config/arm/arm-mve-builtins-shapes.h (scalar_s64_shift_imm) |
| (scalar_u64_shift_imm): New. |
| * config/arm/arm_mve.h (sqshll): Delete. |
| (srshrl): Delete. |
| (uqshll): Delete. |
| (urshrl): Delete. |
| (__arm_uqshll): Delete. |
| (__arm_urshrl): Delete. |
| (__arm_srshrl): Delete. |
| (__arm_sqshll): Delete. |
| |
| 2025-11-14 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift): |
| Add ss_SQRSHRL, ss_SQRSHRL_SAT48. |
| (mve_function_scalar_shift): Add support for ss_SQRSHRL, |
| ss_SQRSHRL_SAT48. |
| (sqrshrl, sqrshrl_sat48): New. |
| * config/arm/arm-mve-builtins-base.def (sqrshrl, sqrshrl_sat48): New. |
| * config/arm/arm-mve-builtins-base.h (sqrshrl, sqrshrl_sat48): New. |
| * config/arm/arm_mve.h (sqrshrl): Delete. |
| (sqrshrl_sat48): Delete. |
| (__arm_sqrshrl): Delete. |
| (__arm_sqrshrl_sat48): Delete. |
| * config/arm/mve.md (mve_sqrshrl_sat<supf>_di): Add '@' prefix. |
| |
| 2025-11-14 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift): |
| Add ss_UQRSHLL, ss_UQRSHLL_SAT48. |
| (mve_function_scalar_shift): Add support for ss_UQRSHLL, |
| ss_UQRSHLL_SAT48. |
| * config/arm/arm-mve-builtins-base.def (uqrshll, uqrshll_sat48): |
| New. |
| * config/arm/arm-mve-builtins-base.h (uqrshll, uqrshll_sat48): |
| New. |
| * config/arm/arm_mve.h (uqrshll): Delete. |
| (uqrshll_sat48): Delete. |
| (__arm_uqrshll): Delete. |
| (__arm_uqrshll_sat48): Delete. |
| * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Add '@' prefix. |
| |
| 2025-11-14 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm-mve-builtins-base.cc (class mve_function_vpnot): New. |
| (vpnot): New. |
| * config/arm/arm-mve-builtins-base.def (vpnot): New. |
| * config/arm/arm-mve-builtins-base.h (vpnot): New. |
| * config/arm/arm-mve-builtins-shapes.cc (struct vpnot): New. |
| * config/arm/arm-mve-builtins-shapes.h (vpnot): New. |
| * config/arm/arm_mve.h (vpnot): Delete. |
| (__arm_vpnot): Delete. |
| |
| 2025-11-14 Filip Kastl <fkastl@suse.cz> |
| |
| * doc/invoke.texi: Remove mention of switch-lower-slow-alg-max-cases. |
| * params.opt: Remove switch-lower-slow-alg-max-cases. |
| |
| 2025-11-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*sub<mode>_3): |
| Remove 'i' from operand 0 constraint. |
| |
| 2025-11-14 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/122663 |
| * ipa-param-manipulation.cc (purge_all_uses): Collect |
| stmts to remove and process that list in reverse. |
| |
| 2025-11-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122573 |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Support |
| groups of invariant loads. |
| (vect_build_slp_tree_2): Likewise. |
| (vect_transform_slp_perm_load_1): Likewise. |
| * tree-vect-stmts.cc (vectorizable_load): Handle non-splat |
| SLP for invaraint loads. |
| |
| 2025-11-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122680 |
| * tree-vect-stmts.cc (vectorizable_conversion): Avoid range |
| queries during transform. |
| |
| 2025-11-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/121458 |
| PR target/121457 |
| * configure.ac: Fix typos. |
| <*-*-solaris2*>: Require GNU ld 2.30. |
| (comdat_group) <*-*-solaris2.1[1-9]*>: Always set to yes. |
| (ld_ix86_gld_32_opt): Only use -melf_i386_sol2 for Solaris target. |
| (ld_ix86_gld_64_opt): Likewise with -melf_x86_64_sol. |
| (gcc_cv_ld_eh_frame_hdr) <*-*-solaris2*>: Likewise. |
| (gcc_cv_ld_pie) <*-*-solaris2*>: Remove special cases. |
| (gcc_cv_ld_compress_debug) <*-*-solaris2*>: Remove guard. |
| (gcc_cv_ld_as_needed): Simplify guard. |
| (gcc_cv_ld_sol2_emulation): Remove. |
| (gcc_cv_solaris_crts): Remove. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Remove !HAVE_LD_PIE |
| support. |
| (ENDFILE_CRTEND_SPEC): Likewise. |
| (LD_PIE_SPEC): Likewise. |
| [USE_GLD] (LINK_EH_SPEC): Set unconditionally. |
| * config/i386/sol2.h [USE_GLD]: Remove !HAVE_LD_SOL2_EMULATION |
| support. |
| * config/sparc/sol2.h: Likewise. |
| * doc/install.texi (Specific, *-*-solaris2*): Update bundled gcc |
| versions. |
| Raise required binutils version. |
| Remove binutils 2.44 caveat. |
| |
| 2025-11-14 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/122216 |
| * config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift): New. |
| (mve_function_scalar_shift): New. |
| (asrl, lsll): New. |
| * config/arm/arm-mve-builtins-base.def (asrl, lsll): New. |
| * config/arm/arm-mve-builtins-base.h (asrl, lsll): New. |
| * config/arm/arm_mve.h (asrl): Delete. |
| (lsll): Delete. |
| (__arm_asrl): Delete. |
| (__arm_lsll): Delete. |
| |
| 2025-11-14 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/122216 |
| * config/arm/arm-mve-builtins-shapes.cc (scalar_s64_shift): New. |
| (scalar_u64_shift): New. |
| * config/arm/arm-mve-builtins-shapes.h: Likewise. |
| |
| 2025-11-14 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/122216 |
| * config/arm/arm.md (ashldi3, ashrdi3): Force shift amount into |
| QImode. |
| * config/arm/constraints.md: Fix comment, Pg is valid in Thumb-2 |
| state only. |
| * config/arm/mve.md (mve_asrl): Handle various shift amount ranges. |
| (mve_asrl_imm, mve_asrl_internal): New patterns. |
| (mve_lsll): Handle various shift amount ranges. |
| (mve_lsll_imm, mve_lsll_internal): New patterns. |
| |
| 2025-11-14 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/122216 |
| * config/arm/thumb2.md (thumb2_asrl, thumb2_lsll, thumb2_lsrl): |
| Move to ... |
| * config/arm/mve.md (mve_asrl, mve_lsll, mve_lsrl): ... here. Use |
| match_operand instead of match_dup. |
| * config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Remove useless |
| copy. Update for new prototype. |
| |
| 2025-11-14 Xi Ruoyao <xry111@xry111.site> |
| |
| * configure: Regenerate. |
| |
| 2025-11-14 zhaozhou <zhaozhou@loongson.cn> |
| |
| * config/loongarch/lasx.md (lasx_xvbsrl_d_f): New template. |
| * config/loongarch/loongarch.cc (emit_reduc_half): Replace insn. |
| |
| 2025-11-14 zhaozhou <zhaozhou@loongson.cn> |
| |
| * config/loongarch/predicates.md: Update ops. |
| |
| 2025-11-14 zhaozhou <zhaozhou@loongson.cn> |
| |
| * config.gcc: Add target_gtfiles. |
| * config/loongarch/loongarch-builtins.cc: Add header file. |
| |
| 2025-11-13 Alexandre Oliva <oliva@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| |
| * config/vxworks/base/b_NULL.h: New. |
| * config.gcc (extra_headers) <*-*-vxworks*>: Add it. |
| * Makefile.in (stmp-int-hdrs): Support /././ markers in USER_H |
| to mark the beginning of the install name. Document. |
| * doc/sourcebuild.texi (Headers): Document /././ marker. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (tree_forwarder_block_p): Remove must argument. |
| (remove_forwarder_block): Add can_split |
| argument. Handle the splitting case (iff phis in bb). |
| (cleanup_tree_cfg_bb): Update argument to tree_forwarder_block_p. |
| (remove_forwarder_block_with_phi): Remove. |
| (pass_merge_phi::execute): Update argument to tree_forwarder_block_p |
| and call remove_forwarder_block instead of remove_forwarder_block_with_phi. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122493 |
| * tree-cfgcleanup.cc (tree_forwarder_block_p): Change bool argument |
| to a must have phi and allow phis if it is false. |
| (remove_forwarder_block): Add support for merging of forwarder blocks |
| with phis. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfg.cc (copy_phi_arg_into_existing_phi): Use the original location |
| if the mapped location is unknown. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfg.cc (copy_phi_arg_into_existing_phi): New use_map argument. |
| * tree-cfg.h (copy_phi_arg_into_existing_phi): Update declaration. |
| * tree-cfgcleanup.cc (remove_forwarder_block_with_phi): Use |
| copy_phi_arg_into_existing_phi instead of inlining it. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (remove_forwarder_block): Move |
| variable declaration ei into for loop. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (remove_forwarder_block_with_phi): Use |
| edge iterator instead of while loop. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (remove_forwarder_block): Remove check |
| on the available dominator information. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (tree_forwarder_block_p): Reject bb which has a single |
| predecessor which has a single successor. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (pass_merge_phi::execute): Move |
| check for abnormal or no phis to remove_forwarder_block_with_phi |
| and the check on dominated to tree_forwarder_block_p. |
| (remove_forwarder_block_with_phi): here. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (remove_forwarder_block_with_phi): Remove check on non-local label. |
| (remove_forwarder_block): Remove check on non-label/eh landing pad. |
| (tree_forwarder_block_p): Add check on lable for an eh landing pad. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (remove_forwarder_block): Remove check for infinite loop. |
| (remove_forwarder_block_with_phi): Likewise. Also remove check for loop header. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-cfgcleanup.cc (pass_merge_phi::execute): Remove worklist. |
| |
| 2025-11-13 Jeff Law <jlaw@ventanamicro.com> |
| |
| * ext-dce.cc (ext_dce_try_optimize_rshift): New function to optimize a |
| shift pair implementing a zero/sign extension. |
| (ext_dce_try_optimize_extension): Renamed from |
| ext_dce_try_optimize_insn. |
| (ext_dce_process_uses): Handle shift pairs implementing extensions. |
| |
| 2025-11-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122637 |
| * tree-scalar-evolution.cc (final_value_replacement_loop): Fix order |
| of gimplification and constant prop. |
| |
| 2025-11-13 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/122627 |
| * lra-constraints.cc (update_equiv): Remove patch from last week |
| related to pr122321. |
| (lra_constraints): Expand the equivalence array after eliminations |
| are complete. |
| |
| 2025-11-13 Xi Ruoyao <xry111@xry111.site> |
| |
| * configure.ac (HAVE_AS_16B_ATOMIC): Define if the assembler |
| supports LSX and sc.q. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/loongarch/loongarch-opts.h (HAVE_AS_16B_ATOMIC): |
| Defined to 0 if undefined yet. |
| * config/loongarch/linux.h (HAVE_IFUNC_FOR_LIBATOMIC_16B): |
| Define as HAVE_AS_16B_ATOMIC && OPTION_GLIBC. |
| * config/loongarch/loongarch-protos.h |
| (loongarch_16b_atomic_lock_free_p): New prototype. |
| * config/loongarch/loongarch.cc |
| (loongarch_16b_atomic_lock_free_p): Implement. |
| * config/loongarch/sync.md (atomic_storeti_lsx): Require |
| loongarch_16b_atomic_lock_free_p. |
| (atomic_storeti): Likewise. |
| (atomic_exchangeti_scq): Likewise. |
| (atomic_exchangeti): Likewise. |
| (atomic_compare_and_swapti): Likewise. |
| (atomic_fetch_<amop_ti_fetch>ti_scq): Likewise. |
| (atomic_fetch_<amop_ti_fetch>ti): Likewise. |
| (ALL_SC): Likewise for TImode. |
| (atomic_storeti_scq): Remove. |
| |
| 2025-11-13 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386-features.cc (pass_x86_cse::x86_cse): Delete |
| loads. |
| |
| 2025-11-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR other/122638 |
| * doc/install.texi (Configuration, --enable-x86-64-mfentry): Fix |
| typo. |
| |
| 2025-11-13 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md (*ior<mode>_ccz_1): New define_insn. |
| |
| 2025-11-13 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/driver-aarch64.cc |
| (host_detect_local_cpu): Extend feature string syntax. |
| |
| 2025-11-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-dce.cc (simple_dce_from_worklist): For calls |
| with side-effects remove their LHS. |
| |
| 2025-11-13 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*eor3q<mode>4): New insn to be used by |
| combine after reload to optimize any grouping of eor's that are using FP |
| registers for scalar modes. |
| |
| 2025-11-13 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/riscv-target-attr.cc (riscv_process_target_str): Clean |
| the final byte of str_to_check. |
| |
| 2025-11-12 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/115970 |
| * diagnostics/sarif-sink.cc (maybe_open_sarif_sink_for_socket): |
| Add "%m" to error messages, so that we print the string form of |
| errno. |
| |
| 2025-11-12 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/sarif-sink.cc (class unique_fd): New. |
| (sarif_socket_sink::sarif_socket_sink): Convert "fd" arg and m_fd |
| from int to unique_fd. |
| (~sarif_socket_sink): Drop. |
| (sarif_socket_sink::dump_kind): Update for m_fd becoming a |
| unique_fd. |
| (sarif_socket_sink::m_fd): Convert from "int" to "unique_fd". |
| (maybe_open_sarif_sink_for_socket): Likewise for "sfd". |
| |
| 2025-11-12 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add ampere1c. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Document the above. |
| |
| 2025-11-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/i386/i386.opt.urls: Regenerate. |
| * config/s390/s390.opt.urls: Ditto. |
| * doc/invoke.texi: Add documentation for |
| -mstack-protector-guard= and -mstack-protector-guard-record. |
| |
| 2025-11-12 Arsen Arsenović <arsen@aarsen.me> |
| |
| * doc/invoke.texi (Diagnostic Message Formatting Options): Add |
| index entries for SARIF and HTML output formats. |
| |
| 2025-11-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122653 |
| * tree-scalar-evolution.cc (interpret_rhs_expr): Handle |
| POINTER_DIFF_EXPR. |
| |
| 2025-11-12 Christophe Lyon <christophe.lyon@linaro.org> |
| Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/122175 |
| * config/arm/iterators.md (asm_const_size): New mode attr. |
| * config/arm/mve.md (@mve_<mve_insn>q_n_<supf><mode>): Use it. |
| |
| 2025-11-12 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| PR target/122539 |
| * config/arm/arm.cc (comp_not_to_clear_mask_str_un): Skip partial |
| register clearing logic for FP_REGS. |
| (compute_not_to_clear_mask): Likewise. |
| |
| 2025-11-12 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| PR target/122539 |
| * config/arm/arm.cc (comp_not_to_clear_mask_str_un): Update |
| not_to_clear_reg_mask for union members. |
| |
| 2025-11-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-opts.h (enum stack_protector_guard): Define |
| SP_TLS and SP_GLOBAL. |
| * config/s390/s390.h (TARGET_SP_GLOBAL_GUARD): Define predicate. |
| (TARGET_SP_TLS_GUARD): Define predicate. |
| * config/s390/s390.md (stack_protect_global_guard_addr<mode>): |
| New insn. |
| (stack_protect_set): Also deal with a global guard. |
| (stack_protect_test): Also deal with a global guard. |
| * config/s390/s390.opt (-mstack-protector-guard={global,tls}): |
| New option. |
| (-mstack-protector-guard-record) New option. |
| |
| 2025-11-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122647 |
| * tree-vect-stmts.cc (vectorizable_conversion): Fix guard on |
| bool to non-bool conversion. |
| * tree-vect-patterns.cc (vect_recog_bool_pattern): Also handle |
| FLOAT_EXPR from bool. |
| |
| 2025-11-12 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/andes-25-series.md: New file. |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add andes-25-series. |
| (RISCV_CORE): Add Andes 25-series cpu list. |
| * config/riscv/riscv-opts.h |
| (enum riscv_microarchitecture_type): Add andes_25_series_. |
| * config/riscv/riscv.cc: Add andes_25_tune_info. |
| * config/riscv/riscv.md: Add andes_25. |
| * doc/riscv-mcpu.texi: Regenerated for Andes cpu list. |
| * doc/riscv-mtune.texi: Regenerated for andes-25-series. |
| |
| 2025-11-11 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/mkoffload.cc (process_asm): Replace "configure_stack_size" |
| constructor with a new regular function, "mkoffload_setup". |
| (process_obj): Call mkoffload_setup from the "init" constructor. |
| |
| 2025-11-11 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/115970 |
| * diagnostics/sarif-sink.cc: Include <sys/un.h> and <sys/socket.h>. |
| (sarif_builder::end_group): Update comment. |
| (sarif_sink::on_end_group): Drop "final". |
| (class sarif_socket_sink): New subclass. |
| (maybe_open_sarif_sink_for_socket): New function. |
| * diagnostics/sarif-sink.h: (maybe_open_sarif_sink_for_socket): |
| New decl. |
| * doc/invoke.texi (EXPERIMENTAL_SARIF_SOCKET): Document new |
| environment variable. |
| * toplev.cc: Define INCLUDE_VECTOR. Add include of |
| "diagnostics/sarif-sink.h". |
| (toplev::main): Call |
| diagnostics::maybe_open_sarif_sink_for_socket. |
| |
| 2025-11-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122587 |
| * tree-vectorizer.cc (pass_vectorize::execute): Enable |
| ranger around analysis and code generation. |
| |
| 2025-11-11 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-niter.cc (simplify_using_initial_conditions): |
| Use the active ranger to simplify boolean expressions. |
| |
| 2025-11-11 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/crypto.md (packf splitters): Variant with |
| operands reversed. Add variants with the ashift/sign extend |
| exchanged as well. |
| |
| 2025-11-11 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_extend_to_xmode_reg): Simplify |
| by using convert_modes + force_reg. |
| |
| 2025-11-11 Richard Biener <rguenther@suse.de> |
| |
| * gimple-range.cc (gimple_ranger::range_on_edge): Pass |
| the edge as 'edge' to get_tree_range. |
| (dom_ranger::range_on_edge): Likewise. |
| |
| 2025-11-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-query.cc (range_query::invoke_range_of_expr): New |
| edge argument. If set invoke range_on_edge. |
| (range_query::get_tree_range): Likewise and adjust. |
| * value-query.h (range_query::invoke_range_of_expr): New |
| edge argument. |
| (range_query::get_tree_range): Likewise. |
| |
| 2025-11-11 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * match.pd: New patterns. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * doc/extend.texi: Add description for LoongArch function |
| attributes. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_can_inline_p): |
| Do not inline when callee is versioned but caller is not. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_option_same_function_versions): Compare the target |
| attributes in two functions to determine which function’s |
| features get higher priority. |
| (TARGET_OPTION_SAME_FUNCTION_VERSIONS): Define. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch-protos.h |
| (loongarch_parse_fmv_features): Modify the type of parameter. |
| (loongarch_compare_version_priority): Function declaration. |
| * config/loongarch/loongarch-target-attr.cc |
| (enum features_prio): Define LA_PRIO_MAX to indicate the |
| highest priority of supported attributes. |
| (loongarch_parse_fmv_features): Added handling of setting |
| priority in attribute string. |
| (loongarch_compare_version_priority): Likewise. |
| * config/loongarch/loongarch.cc |
| (loongarch_process_target_version_attr): Likewise. |
| (get_feature_mask_for_version): Likewise. |
| (loongarch_compare_version_priority): Delete. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_compare_version_priority): Returns true if DECL1 |
| and DECL2 are versions of the same function. |
| (TARGET_COMPARE_VERSION_PRIORITY): Define. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/genopts/gen-evolution.awk: |
| * config/loongarch/loongarch-evol-attr.def: Regenerate. |
| * config/loongarch/loongarch-protos.h |
| (loongarch_parse_fmv_features): Function declaration. |
| (get_feature_mask_for_version): Likewise. |
| * config/loongarch/loongarch-target-attr.cc |
| (enum features_prio): Defining the priority of features. |
| (struct loongarch_attribute_info): Add members about |
| features. |
| (LARCH_ATTR_MASK): Likewise. |
| (LARCH_ATTR_ENUM): Likewise. |
| (LARCH_ATTR_BOOL): Likewise. |
| (loongarch_parse_fmv_features): Parse a function |
| multiversioning feature string STR. |
| * config/loongarch/loongarch.cc |
| (get_suffixed_assembler_name): Return an identifier for the |
| base assembler name of a versioned function. |
| (get_feature_mask_for_version): Get the mask and priority of |
| features. |
| (add_condition_to_bb): Insert judgment statements for different |
| features functions. |
| (dispatch_function_versions): Generates the dispatch function for |
| multi-versioned functions. |
| (make_resolver_func): Make the resolver function decl to dispatch |
| the versions of a multi-versioned function. |
| (loongarch_generate_version_dispatcher_body): Generate the |
| dispatcher logic to invoke the right function version at run-time |
| for a given set of function versions. |
| (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Define. |
| * common/config/loongarch/cpu-features.h: New file. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (INCLUDE_STRING): Include. |
| (loongarch_mangle_decl_assembler_name): New function. |
| (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_get_function_versions_dispatcher): New function. |
| (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Define. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_process_target_version_attr): New function. |
| (loongarch_option_valid_version_attribute_p): New function. |
| (TARGET_OPTION_VALID_VERSION_ATTRIBUTE_P): Define. |
| * config/loongarch/loongarch.h |
| (TARGET_HAS_FMV_TARGET_ATTRIBUTE): Define it to 0. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/genopts/gen-evolution.awk: Output the |
| info needed for handling evolution features when parsing |
| the target pragma and attribute. |
| * config/loongarch/genopts/genstr.sh: Add support for |
| generating *.def files. |
| * config/loongarch/loongarch-target-attr.cc |
| (struct loongarch_attribute_info): Add structure member |
| record option mask. |
| (LARCH_ATTR_MASK): New macro. |
| (LARCH_ATTR_ENUM): Likewise. |
| (LARCH_ATTR_BOOL): Likewise. |
| (loongarch_handle_option): Support for new options. |
| (loongarch_process_one_target_attr): Added support for |
| the la64v1.1 extended instruction set. |
| * config/loongarch/t-loongarch: Generate loongarch-evol-attr.def. |
| * doc/extend.texi: Add new attribute description information. |
| * config/loongarch/loongarch-evol-attr.def: Generate. |
| |
| 2025-11-11 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch-target-attr.cc |
| (loongarch_process_one_target_attr): Fix ICE. |
| |
| 2025-11-11 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122629 |
| * tree-if-conv.cc (factor_out_operators): Reject |
| BIT_FIELD_REF and BIT_INSERT_EXPR if operand other |
| than 0 is different. |
| |
| 2025-11-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR lto/122620 |
| * gimplify-me.cc (gimple_regimplify_operands): Don't try to regimplify |
| TREE_CLOBBER on rhs of gimple_clobber_p if it has gimple_reg_type. |
| |
| 2025-11-11 Hu, Lin1 <lin1.hu@intel.com> |
| |
| PR target/122446 |
| * config/i386/amxavx512intrin.h (_tile_cvtrowps2bf16hi_internal): |
| Input register name by inline asm %c[...], and remove %% before tmm |
| from intel side. |
| (_tile_cvtrowps2bf16li_internal): Ditto. |
| * config/i386/amxbf16intrin.h (_tile_dpbf16ps_internal): Ditto |
| * config/i386/amxcomplexintrin.h (_tile_cmmimfp16ps_internal): Ditto |
| (_tile_cmmrlfp16ps_internal): Ditto |
| (_tile_cmmimfp16ps): Ditto |
| (_tile_cmmrlfp16ps): Ditto |
| * config/i386/amxfp16intrin.h (_tile_dpfp16ps_internal): Ditto |
| (_tile_dpfp16ps): Ditto |
| * config/i386/amxfp8intrin.h (_tile_dpbf8ps_internal): Ditto |
| (_tile_dpbhf8ps_internal): Ditto |
| (_tile_dphbf8ps_internal): Ditto |
| (_tile_dphf8ps_internal): Ditto |
| (_tile_dpbf8ps): Ditto |
| (_tile_dpbhf8ps): Ditto |
| (_tile_dphbf8ps): Ditto |
| (_tile_dphf8ps): Ditto |
| * config/i386/amxint8intrin.h (_tile_int8_dp_internal): Ditto |
| * config/i386/amxmovrsintrin.h (_tile_loaddrs_internal): Ditto |
| (_tile_loaddrst1_internal): Ditto |
| (_tile_loaddrs): Ditto |
| (_tile_loaddrst1): Ditto |
| * config/i386/amxtf32intrin.h (_tile_mmultf32ps_internal): Ditto |
| * config/i386/amxtileintrin.h (_tile_loadd): Ditto |
| (_tile_loadd_internal): Ditto |
| (_tile_stream_loadd): Ditto |
| (_tile_stream_loadd_internal): Ditto |
| (_tile_stored): Ditto |
| (_tile_stored_internal): Ditto |
| (_tile_zero): Ditto |
| (_tile_zero_internal): Ditto |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * common.opt.urls: Regenerated. |
| * config/dragonfly.opt.urls: Regenerated. |
| * config/freebsd.opt.urls: Regenerated. |
| * config/gcn/gcn.opt.urls: Regenerated. |
| * config/gnu-user.opt.urls: Regenerated. |
| |
| 2025-11-10 Sam James <sam@gentoo.org> |
| |
| * acinclude.m4: Quote "$gcc_cv_nm" and friends. |
| * configure.ac: Ditto. |
| * configure: Regenerate. |
| |
| 2025-11-10 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/122605 |
| * builtins.cc (expand_ifn_atomic_bit_test_and): Split out the call to |
| build_call_nary into two different statements. |
| (expand_ifn_atomic_op_fetch_cmp_0): Likewise. |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * common.opt: Clean up comments/documentation for -fident. |
| * doc/invoke.texi: Move -Qy/-Qn documentation from System V options |
| and combine with -fident/-fno-ident entry. |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * common.opt: Add comments/documentation for -N, -Q, -S, -T, |
| -Tbss, -Tdata, -Ttext, -Z, -n, -Q, -s, -t, -z. |
| * doc/invoke.texi: Add documentation for -Tbss, -Tdata, -Ttext, |
| -N, -n, -t, -Z. |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| PR rtl-optimization/120064 |
| * doc/invoke.texi: Document -fconcepts-diagnostics-depth, |
| -Wdeprecated-copy-dtor, -Wformat-diag, -Wcannot-profile, |
| -fvar-tracking-uninit, -gno-pubnames, -finline-atomics, |
| -fext-dce, -fipa-icf-functions, -fipa-icf-variables, |
| -fprofile, -fdump-internal-locations, and -Wopenacc-dims. |
| Minor copy-editing and rearrangement of items in the option |
| summary lists. |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/cppdiropts.texi: Document --include-directory, |
| --include-directory-after, --include-barrier, --include-prefix, |
| --include-with-prefix, --include-with-prefix-after, |
| --include-with-prefix-before, --no-standard-includes. |
| --embed-directory. |
| * doc/cppopts.texi: Document --define-macro, --undefine-macro, |
| --include, --imacros, --dependencies, --user-dependencies, |
| --print-missing-file-dependencies, --write-dependencies, |
| --write-user-dependencies, --comments, --comments-in-macros, |
| --no-line-commands, --traditional, --traditional-cpp, |
| --trigraphs, --trace-includes, --dump. |
| * doc/invoke.texi: Add missing long options to Option Summary. |
| Document --language, --compile, --assemble, --preprocess, |
| --output, --dumpbase, --dumpbase-ext, --dumpdir, |
| --verbose, --pass-exit-codes, --pipe, --specs, --ansi, |
| --no-warnings, --pedantic, --pedantic-errors, --all-warnings, |
| --extra-warnings, --debug, --optimize, --profile, -coverage, |
| --no-integrated-cpp, --for-assembler, --no-standard-libraries, |
| --entries, --pie, --static-pie, --static, --shared, --symbolic, |
| --for-linker, --force-link, --library-directory, --prefix, |
| --no-canonical-prefixes, --dump, --save-temps, --print-file-name, |
| --print-multi-directory, --print-multi-lib, |
| --print-multi-os-directory, --print-multiarch, |
| --print-prog-name, --print-libgcc-file-name, --print-search-dirs, |
| --print-sysroot, --print-sysroot-headers-suffix. |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/cppopts.texi (-A): Restrict option documentation to the CPP |
| manual. Also document the --assert form. |
| * doc/invoke.texi (Option Summary): Don't list the -A option. |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary): Add missing entries, |
| also correct alphabetization and formatting of the C++ options. |
| (C++ Language Options): Fix some formatting issues. |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * common.opt (fhelp, fhelp=, ftarget-help, fversion): Mark as |
| "Undocumented". |
| (fbounds-check): Update comments. |
| (flag-graphite, fsel-sched-reschedule-pipelined): Mark as |
| "Undocumented". |
| (fstack-limit): Add comment. |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * common.opt (fhelp): Add RejectNegative. |
| (fhelp=): Likewise. |
| (ftarget-help): Likewise. |
| (fversion): Likewise. |
| (Wno-frame-larger-than): Likewise. |
| (Wno-larger-than): Likewise. |
| (Wno-stack-usage): Likewise. |
| (fdiagnostics-minimum-margin-width=): Likewise. |
| (flto-incremental=): Likewise. |
| (foffload=): Likewise. |
| (foffload-options=): Likewise. |
| (foffload-abi-host-opts=): Likewise. |
| (fpatchable-function-entry=): Likewise. |
| (gno-pubnames): Likewise. |
| (gpubnames): Likewise. |
| (ggnu-pubnames): Likewise. |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * common.opt (ftree-lrs): Mark as "Ignore". |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/cppopts.texi (fcanonical-system-headers): Add @opindex. |
| * doc/invoke.texi (fdump-ada-spec-slim): Add @opindex. |
| (fcontract-semantic): Likewise. |
| (fdiagnostics-plain-output): Likewise. |
| (Wc11-c2x-compat): Likewise. |
| (Wvla-parameter): Likewise. |
| (fanalyzer-verbose-edges): Likewise. |
| (fanalyzer-verbose-state-changes): Likewise. |
| (fanalyzer-verbosity): Likewise. |
| (flimit-function-alignment): Likewise. |
| |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (fdump-analyzer-exploded-nodes): Correct |
| spelling of option in @opindex. |
| (fdump-analyzer-exploded-nodes-2): Likewise. |
| (fdump-analyzer-exploded-nodes-3): Likewise. |
| (fdump-analyzer-feasibility): Likewise. |
| (fdump-analyzer-infinite-loop): Likewise. |
| (fstack-reuse): Likewise. |
| |
| 2025-11-10 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/pru/pru.h (REG_CLASS_CONTENTS): Use unsigned integer |
| constants. |
| |
| 2025-11-10 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| PR target/122415 |
| * config/pru/pru-protos.h (pru_fixup_jump_address_operand): |
| Declare. |
| * config/pru/pru.cc (pru_fixup_jump_address_operand): New |
| function. |
| (pru_addr_space_legitimize_address): New function. |
| (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Declare. |
| * config/pru/pru.md (call): Fixup the address operand. |
| (call_value): Ditto. |
| (sibcall): Ditto. |
| (sibcall_value): Ditto. |
| |
| 2025-11-10 Tejas Belagod <tejas.belagod@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Make |
| SVE vector boolean type equivalent to GNU vectors. |
| * config/aarch64/aarch64-sve.md (extend<vpred><mode>2, |
| zero_extend<vpred><mode>2, trunc<mode><vpred>2, vec_cmp<mode><mode>): |
| New patterns to support additional operations on predicate modes. |
| * config/aarch64/aarch64.cc (aarch64_valid_vector_boolean_op): New. |
| (aarch64_invalid_unary_op): Consider vector bool types. |
| (aarch64_invalid_binary_op): Likewise. |
| (aarch64_convert_to_type): Define target hook and handle standard to |
| non-standard bool conversion. |
| |
| 2025-11-10 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/118460 |
| * config/arm/arm.md (movhfcc): Use expandable_comparison_operator. |
| (movsfcc, movdfcc): Likewise. |
| |
| 2025-11-10 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR middle-end/121985 |
| * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Only |
| set niter_vector's range if step == 1. |
| |
| 2025-11-10 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * optabs-query.cc (qimode_for_vec_perm): Check if QImode's |
| precision divides the inner mode's precision. |
| |
| 2025-11-10 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Bail if |
| offset_vectype is NULL. |
| |
| 2025-11-10 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-vect-slp.cc (vect_load_perm_consecutive_p): New function. |
| (vect_lower_load_permutations): Use. |
| (vect_optimize_slp_pass::remove_redundant_permutations): Use. |
| * tree-vect-stmts.cc (has_consecutive_load_permutation): New |
| function that uses vect_load_perm_consecutive_p. |
| (get_load_store_type): Use. |
| (vectorizable_load): Reduce group size. |
| * tree-vectorizer.h (struct vect_load_store_data): Add |
| subchain_p. |
| (vect_load_perm_consecutive_p): Declare. |
| |
| 2025-11-08 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| PR tree-optimization/122126 |
| * gimple-isel.cc (gimple_expand_vec_set_extract_expr): Add bound check. |
| |
| 2025-11-08 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/122097 |
| * config/loongarch/loongarch.cc |
| (loongarch_const_vector_same_bytes_p): Add processing for |
| floating-point vector data. |
| |
| 2025-11-08 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| PR tree-optimization/122065 |
| * tree-vect-generic.cc (target_supports_mult_synth_alg): Add helper to |
| check mult synth. |
| (expand_vector_mult): Optimize mult when const is uniform but not |
| power of 2. |
| |
| 2025-11-08 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122599 |
| * tree-scalar-evolution.cc (final_value_replacement_loop): Move |
| the removal of the phi until after the gimplification of the final |
| value expression. |
| |
| 2025-11-07 David Malcolm <dmalcolm@redhat.com> |
| |
| * gdbhooks.py (class AnaSupernodePrinter): New. |
| (class AnaExplodedNodePrinter): New. |
| (build_pretty_printer): Register the above. |
| |
| 2025-11-07 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree.cc (build_call_nary): Remove decl. |
| Add template definition that uses std::initializer_list<tree> |
| and call build_call. |
| (build_call): New declaration. |
| * tree.h (build_call_nary): Remove. |
| (build_call): New function. |
| |
| 2025-11-07 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/autovec.md: Use const_1_operand for scale and |
| extend predicates. |
| * config/riscv/riscv-v.cc (expand_gather_scatter): Remove scale |
| and extension handling. |
| |
| 2025-11-07 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-vect-stmts.cc (vect_use_strided_gather_scatters_p): |
| Do not convert offset type. |
| |
| 2025-11-07 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-vect-data-refs.cc (struct gather_scatter_config): |
| Add scale. |
| (vect_gather_scatter_get_configs): Try various scales. |
| (vect_gather_scatter_fn_p): Add scale handling. |
| (vect_check_gather_scatter): Add scale parameter. |
| * tree-vect-stmts.cc (check_load_store_for_partial_vectors): |
| Ditto. |
| (vect_truncate_gather_scatter_offset): Ditto. |
| (vect_use_grouped_gather): Ditto. |
| (get_load_store_type): Ditto. |
| (vectorizable_store): Scale offset if necessary. |
| (vectorizable_load): Ditto. |
| * tree-vectorizer.h (struct vect_load_store_data): Add |
| supported_scale. |
| (vect_gather_scatter_fn_p): Add argument. |
| |
| 2025-11-07 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-vect-data-refs.cc (struct gather_scatter_config): New |
| struct to hold gather/scatter configurations. |
| (vect_gather_scatter_which_ifn): New function to determine which |
| IFN to use. |
| (vect_gather_scatter_get_configs): New function to enumerate all |
| target-supported configs. |
| (vect_gather_scatter_fn_p): Rework to use |
| vect_gather_scatter_get_configs and try sign-swapped offset. |
| (vect_check_gather_scatter): Use new supported offset vectype |
| argument. |
| * tree-vect-stmts.cc (check_load_store_for_partial_vectors): |
| Ditto. |
| (vect_truncate_gather_scatter_offset): Ditto. |
| (vect_use_grouped_gather): Ditto. |
| (get_load_store_type): Ditto. |
| (vectorizable_store): Convert to sign-swapped offset type if |
| needed. |
| (vectorizable_load): Ditto. |
| * tree-vectorizer.h (struct vect_load_store_data): Add |
| supported_offset_vectype. |
| (vect_gather_scatter_fn_p): Add argument. |
| |
| 2025-11-07 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122588 |
| * tree-ssa-forwprop.cc (optimize_unreachable): Don't touch |
| if the condition was already true or false. |
| |
| 2025-11-07 David Faust <david.faust@oracle.com> |
| |
| PR target/122140 |
| * config/bpf/bpf.cc (bpf_expand_cpymem): Fix off-by-one offset |
| in backwards loop. Improve src and dest addrs used for the |
| branch condition. |
| (emit_move_loop): Improve emitted set insns and remove the |
| explict temporary register. |
| |
| 2025-11-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122577 |
| * tree-vect-stmts.cc (vectorizable_conversion): Allow conversions |
| from non-mode-precision types. |
| |
| 2025-11-07 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Leverage usmul_widen_mult by bit_ior based |
| unsigned SAT_MUL pattern. |
| |
| 2025-11-07 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*vwsll_sign_extend_<mode>): Add |
| pattern to combine vsext.vf2 and vslli.vi to vwsll.vi. |
| |
| 2025-11-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122589 |
| PR middle-end/122594 |
| * gimple-iterator.cc (gsi_replace_with_seq): Instead of |
| removing the last stmt from the sequence with gsi_remove, |
| split it using gsi_split_seq_before. |
| (gsi_split_seq_before): Fix bogus documentation. |
| |
| 2025-11-07 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/118328 |
| * config/aarch64/aarch64.cc (handle_aarch64_vector_pcs_attribute): |
| Add handling for ARM_PCS_PRESERVE_NONE. |
| (aarch64_pcs_exclusions): New definition. |
| (aarch64_gnu_attributes): Add entry for preserve_none and add |
| aarch64_pcs_exclusions to aarch64_vector_pcs entry. |
| (aarch64_preserve_none_abi): New function. |
| (aarch64_fntype_abi): Add handling for preserve_none. |
| (aarch64_reg_save_mode): Add handling for ARM_PCS_PRESERVE_NONE. |
| (aarch64_hard_regno_call_part_clobbered): Add handling for |
| ARM_PCS_PRESERVE_NONE. |
| (num_pcs_arg_regs): New helper function. |
| (get_pcs_arg_reg): New helper function. |
| (aarch64_function_ok_for_sibcall): Add handling for ARM_PCS_PRESERVE_NONE. |
| (aarch64_layout_arg): Add preserve_none argument lauout.. |
| (function_arg_preserve_none_regno_p): New helper function. |
| (aarch64_function_arg): Update to handle preserve_none. |
| (function_arg_preserve_none_regno_p): Update logic for preserve_none. |
| (aarch64_expand_builtin_va_start): Add preserve_none layout. |
| (aarch64_setup_incoming_varargs): Add preserve_none layout. |
| (aarch64_is_variant_pcs): Update for case of ARM_PCS_PRESERVE_NONE. |
| (aarch64_comp_type_attributes): Add preserve_none. |
| * config/aarch64/aarch64.h (NUM_PRESERVE_NONE_ARG_REGS): New macro. |
| (PRESERVE_NONE_REGISTERS): New macro. |
| (enum arm_pcs): Add ARM_PCS_PRESERVE_NONE. |
| * doc/extend.texi (preserve_none): Add docs for new attribute. |
| |
| 2025-11-07 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*widen_mul_plus_vx_<mode>): Add |
| new pattern to combine the vwmaccu.vx. |
| * config/riscv/vector.md (*pred_widen_mul_plus_u_vx<mode>_undef): |
| Add undef define_insn for vmwaccu.vx emiting. |
| (@pred_widen_mul_plus_u_vx<mode>): Ditto. |
| |
| 2025-11-07 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_sign_extend_if_subreg_prom_p): Determine if the |
| current operand is SUBREG and if the source of SUBREG is |
| the sign-extended value. |
| (loongarch_expand_conditional_move): Optimize. |
| |
| 2025-11-07 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_canonicalize_int_order_test): Support GT GTU LT |
| and LTU. |
| (loongarch_extend_comparands): Expand the scope of op1 from |
| 0 to all immediate values. |
| * config/loongarch/loongarch.md |
| (*sge<u>_<X:mode><GPR:mode>): New template. |
| |
| 2025-11-07 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_legitimize_move): Optimize. |
| |
| 2025-11-06 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/invoke.texi (AArch64 Options): Clean up description of |
| -mbranch-protection= argument. |
| (ARM Options): Likewise. |
| |
| 2025-11-06 Alejandro Colomar <alx@kernel.org> |
| |
| * doc/extend.texi: Move _Countof under 'Syntax Extensions'. |
| |
| 2025-11-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/122516 |
| * config/avr/elf.h (SUPPORTS_SHF_GNU_RETAIN): Define if |
| HAVE_GAS_SHF_GNU_RETAIN. |
| |
| 2025-11-06 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): Ignore |
| assignments of (const_int 0) to a register. They will get propagated |
| away. |
| |
| 2025-11-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_output_addr_vec): Output |
| a valid opcode prior to the first gs() label provided: |
| - The code is compiled for an arch that has AVR-SD mcus, and |
| - the function has a "section" attribute, and |
| - the function has a gs() label addresses switch/case table. |
| |
| 2025-11-06 Your Name <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/121136 |
| * config/riscv/riscv.md: Add define_insn to test the |
| upper bits of a register against zero using sltiu when |
| the bits are extracted via zero_extract or logial right shift. |
| Add 3->2 define_splits for gtu/leu cases testing upper bits |
| against zero. |
| |
| 2025-11-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-core.h (tree_ssa_name::active_iterated_stmt): Mark |
| GTY((skip(""))). |
| |
| 2025-11-06 Richard Biener <rguenther@suse.de> |
| |
| * ssa-iterators.h (imm_use_iterator::name): Add. |
| (delink_imm_use): When in a FOR_EACH_IMM_USE_STMT iteration |
| enforce we only remove uses from the current stmt. |
| (end_imm_use_stmt_traverse): Reset current stmt. |
| (first_imm_use_stmt): Assert no FOR_EACH_IMM_USE_STMT on |
| var is in progress. Set the current stmt. |
| (next_imm_use_stmt): Set the current stmt. |
| (auto_end_imm_use_fast_traverse): New, lower iteration |
| depth upon destruction. |
| (first_readonly_imm_use): Bump the iteration depth. |
| * tree-core.h (tree_ssa_name::active_iterated_stmt, |
| tree_ssa_name::fast_iteration_depth): New members when |
| ENABLE_GIMPLE_CHECKING. |
| * tree-ssanames.cc (make_ssa_name_fn): Initialize |
| immediate use verifier bookkeeping members. |
| |
| 2025-11-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122502 |
| * ssa-iterators.h (imm_use_iterator::iter_node): Remove. |
| (imm_use_iterator::next_stmt_use): New. |
| (next_readonly_imm_use): Adjust checking code. |
| (end_imm_use_stmt_traverse): Simplify. |
| (link_use_stmts_after): Likewise. Return the last use |
| with the same stmt. |
| (first_imm_use_stmt): Simplify. Set next_stmt_use. |
| (next_imm_use_stmt): Likewise. |
| (end_imm_use_on_stmt_p): Adjust. |
| |
| 2025-11-06 Richard Biener <rguenther@suse.de> |
| |
| * doc/tree-ssa.texi: Update immediate use iterator |
| documentation. |
| * ssa-iterators.h: Likewise. |
| |
| 2025-11-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/113632 |
| * range-op-mixed.h (operator_bitwise_xor): Relocate and adjust. |
| (operator_bitwise_xor::m_and, m_or, m_not): New. |
| * range-op.cc (operator_bitwise_xor::fold_range): New. |
| |
| 2025-11-06 Xi Ruoyao <xry111@xry111.site> |
| |
| * config.gcc: Support --with-cmodel={medium,normal} and make |
| medium the default for LoongArch, define TARGET_DEFAULT_CMODEL |
| as the selected value. |
| * config/loongarch/loongarch-opts.cc: Use TARGET_DEFAULT_CMODEL |
| instead of hard coding CMODEL_NORMAL. |
| * doc/install.texi: Document that --with-cmodel= is supported |
| for LoongArch. |
| * doc/invoke.texi: Update the document about default code model |
| on LoongArch. |
| |
| 2025-11-05 Nathaniel Shead <nathanieloshead@gmail.com> |
| |
| PR c++/121574 |
| * doc/invoke.texi: Document '-Wexpose-global-module-tu-local'. |
| |
| 2025-11-05 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): Support |
| vector constructor elements. |
| * tree-vect-generic.cc (ssa_uniform_vector_p): Make non-static and |
| move ... |
| * tree.cc (ssa_uniform_vector_p): ... here. |
| * tree.h (ssa_uniform_vector_p): Declare it. |
| |
| 2025-11-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.cc (forward_propagate_addr_expr): |
| Use gather_imm_use_stmts instead of FOR_EACH_IMM_USE_STMT. |
| |
| 2025-11-05 Richard Biener <rguenther@suse.de> |
| |
| * gimple.h (gimple::pad): Rename to ... |
| (gimple::ilf): ... this. |
| * ssa-iterators.h (gather_imm_use_stmts): Declare. |
| * tree-ssa-operands.cc (gather_imm_use_stmts): New function. |
| |
| 2025-11-05 Richard Biener <rguenther@suse.de> |
| |
| * gimple-ssa-isolate-paths.cc (check_loadstore): Set |
| the volatile flag on the stmt manually. |
| (find_implicit_erroneous_behavior): Move code transform |
| outside of FOR_EACH_IMM_USE_STMT iteration. |
| |
| 2025-11-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-niter.cc (dump_affine_iv): Use file, not |
| dump_file when printing. |
| (debug): New overload for affine_iv. |
| |
| 2025-11-05 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.md (cntmap): Change to uppercase. |
| (popcount<GPR:mode>2): Modify to a post reload split. |
| |
| 2025-11-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/122390 |
| * config/i386/i386.md (*add<mode>3_carry_2): New insn pattern. |
| (*add<mode>3_carry_0_cc): Ditto. |
| (*add<mode>3_carry_0r_cc): Ditto. |
| (*sub<mode>3_carry_2): Ditto. |
| (*sub<mode>3_carry_0_cc): Ditto. |
| (*sub<mode>3_carry_0r_cc): Ditt. |
| |
| 2025-11-04 Kees Cook <kees@kernel.org> |
| |
| * config/arc/builtins.def: Add ATTRS parameter to DEF_BUILTIN |
| macro calls. Mark mathematical builtins (FFS, FLS, NORM, NORMW, |
| SWAP) with attr_const, leave others as NULL_TREE. |
| * config/arc/arc.cc: Add support for builtin function attributes. |
| Create attr_const using tree_cons. Update DEF_BUILTIN macro to |
| pass ATTRS parameter to add_builtin_function. |
| |
| 2025-11-04 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add usmul_widen_mult helper and referenced by |
| min based unsigned SAT_MUL pattern. |
| |
| 2025-11-04 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| PR lto/122515 |
| * lto-wrapper.cc (debug_objcopy): Set type of INOFF to int64_t. |
| (run_gcc): Set type of FILE_OFFSET to int64_t. |
| |
| 2025-11-04 Kishan Parmar <kishan@linux.ibm.com> |
| |
| PR rtl-optimization/93738 |
| * simplify-rtx.cc (simplify_binary_operation_1): Canonicalize |
| SUBREG(LSHIFTRT) into LSHIFTRT(SUBREG) when valid. |
| |
| 2025-11-04 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/122544 |
| * diagnostics/paths.cc (event::meaning::maybe_get_verb_str): |
| Handle the new verbs. |
| * diagnostics/paths.h (event::meaning::verb): Add new values |
| for special control flow operations. |
| (event::meaning::meaning): Add ctor taking just a verb. |
| |
| 2025-11-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/122534 |
| * config/i386/i386.md (@test<mode>_ccno_1): |
| Use <general_szext_operand> as operand 1 predicate. |
| (testqi_ccz_1): Use general_operand as operand 1 predicate. |
| (*testdi_1): Use x86_64_szext_general_operand as operand 1 predicate. |
| (*testqi_1_maybe_si): Use general_operand as operand 1 predicate. |
| Add (n,*a) alternative to allow UV pairing for pentium processor. |
| (*test<mode>_1): Use <general_operand> as operand 1 predicate. |
| |
| 2025-11-03 Sam James <sam@gentoo.org> |
| |
| * configure: Regenerate. |
| |
| 2025-11-03 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/122536 |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Fix |
| guard against variable bit extracts in recent change. |
| |
| 2025-11-03 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR ipa/122512 |
| * symtab.cc: Fix 'static_assert'. |
| |
| 2025-11-03 Loeka Rogge <loeka@synopsys.com> |
| |
| * config/arc/simdext.md(movv2hi_insn): Change order for movv2hi |
| for big-endian. |
| |
| 2025-11-03 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR libgomp/122281 |
| PR middle-end/105001 |
| * gimple.cc (gimple_copy): Add missing unshare_expr for |
| GIMPLE_OMP_ATOMIC_LOAD and GIMPLE_OMP_ATOMIC_STORE. |
| |
| 2025-11-03 Alfie Richards <alfie.richards@arm.com> |
| |
| PR c/122202 |
| * doc/extend.texi (target function attribute): Update to describe FMV |
| behaviour. |
| (target_version function attribute): New section. |
| (target_clones attribute): Update to descrbe new behaviour with |
| target_version. |
| (Function Multiversioning): Update to discuss both target_version and |
| target based FMV. |
| |
| 2025-11-03 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.cc (riscv_flatten_aggregate_field): Skip |
| empty unions and zero-length arrays when flattening aggregate |
| fields for ABI classification. |
| (riscv_pass_aggregate_in_fpr_pair_p): Refactor to use separate |
| field parsing and emit ABI change warning for affected types. |
| (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise. |
| |
| 2025-11-03 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (dit): New fmv feature. |
| (dpb): New fmv feature. |
| (dpb2): New fmv feature. |
| (memtag): Change to also define an FMV feature. |
| (ssbs): Change to also define an FMV feature. |
| (bti): New fmv feature. |
| * config/aarch64/aarch64.cc (FEAT_SSBS): Add macro. |
| (FEAT_MEMTAG): Ditto. |
| |
| 2025-11-03 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (int_iterator ANY_ROUND): |
| Specify "flag_unsafe_math_optimizations" in the condition of the |
| UNSPEC_ROUND element. |
| (int_attr c_round): Remove. |
| (l<m_round>sfsi2, *l<m_round>sfsi2_2x, *l<m_round>sfsi2_scaled): |
| Remove " && <c_round>" from the conditions. |
| |
| 2025-11-03 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_modes_tieable_p): |
| Make MODE_FLOAT and MODE_INT tieable. |
| * config/loongarch/loongarch.md: Adjust constraints. |
| |
| 2025-11-03 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/loongarch.md |
| (and_load_zero_extend<mode>): New combiner. |
| * config/loongarch/predicates.md |
| (mask_operand): New predicate. |
| |
| 2025-11-03 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>): |
| Add new splitter for optimization. |
| |
| 2025-11-03 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/loongarch-protos.h |
| (loongarch_use_bstrins_bstrpick_for_and): New proto. |
| * config/loongarch/loongarch.cc |
| (loongarch_use_bstrins_bstrpick_for_and): Decide whether |
| to optimize. |
| (loongarch_rtx_costs): Adjust the cost of AND operation. |
| * config/loongarch/loongarch.md |
| (bstrins_bstrpick_for_and_imm<mode>): New insn_and_split. |
| |
| 2025-11-03 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_can_change_mode_class): Support for conversion |
| between scalar INT and scalar FP. |
| |
| 2025-11-03 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_rtx_costs): |
| Correct the cost of mulh.{w[u]|d[u]}. |
| |
| 2025-11-03 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122475 |
| * tree-vect-loop.cc (vectorizable_reduction): Check for neutral_op. |
| |
| 2025-11-03 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/90262 |
| * config/i386/i386-expand.cc (ix86_expand_unroll_movmem): New. |
| (ix86_expand_n_move_movmem): Likewise. |
| (ix86_expand_load_movmem): Likewise. |
| (ix86_expand_store_movmem): Likewise. |
| (ix86_expand_n_overlapping_move_movmem): Likewise. |
| (ix86_expand_less_move_movmem): Likewise. |
| (ix86_expand_movmem): Likewise. |
| * config/i386/i386-protos.h (ix86_expand_movmem): Likewise. |
| * config/i386/i386.md (movmem<mode>): Likewise. |
| |
| 2025-11-03 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| PR target/52345 |
| * simplify-rtx.cc (simplify_relational_operation_1): Optimize boolean |
| IOR equality tests. |
| |
| 2025-11-03 chenxiaolong <chenxiaolong@loongson.cn> |
| |
| * config/loongarch/lasx.md (vec_cast<mode>): New template |
| implemention. |
| (vec_insert_lo_<mode>): Dito. |
| (vec_insert_hi_<mode>): Dito. |
| * config/loongarch/lasxintrin.h (defined): Test for adding |
| the builtin function. |
| (__lasx_cast_128_s): Dito. |
| (__lasx_cast_128_d): Dito. |
| (__lasx_cast_128): Dito. |
| (__lasx_concat_128_s): Dito. |
| (__lasx_concat_128_d): Dito. |
| (__lasx_concat_128): Dito. |
| (__lasx_extract_128_lo_s): Dito. |
| (__lasx_extract_128_hi_s): Dito. |
| (__lasx_extract_128_lo_d): Dito. |
| (__lasx_extract_128_hi_d): Dito. |
| (__lasx_extract_128_lo): Dito. |
| (__lasx_extract_128_hi): Dito. |
| (__lasx_insert_128_lo_s): Dito. |
| (__lasx_insert_128_hi_s): Dito. |
| (__lasx_insert_128_lo_d): Dito. |
| (__lasx_insert_128_hi_d): Dito. |
| (__lasx_insert_128_lo): Dito. |
| (__lasx_insert_128_hi): Dito. |
| * config/loongarch/loongarch-builtins.cc |
| (CODE_FOR_lasx_extract_128_lo_s): Add builtins and register |
| icode. |
| (CODE_FOR_lasx_extract_128_hi_s): Dito. |
| (CODE_FOR_lasx_extract_128_lo_d): Dito. |
| (CODE_FOR_lasx_extract_128_hi_d): Dito. |
| (CODE_FOR_lasx_extract_128_lo): Dito. |
| (CODE_FOR_lasx_extract_128_hi): Dito. |
| (CODE_FOR_lasx_insert_128_lo_s): Dito. |
| (CODE_FOR_lasx_insert_128_hi_s): Dito. |
| (CODE_FOR_lasx_insert_128_lo_d): Dito. |
| (CODE_FOR_lasx_insert_128_hi_d): Dito. |
| (CODE_FOR_lasx_insert_128_lo): Dito. |
| (CODE_FOR_lasx_insert_128_hi): Dito. |
| (CODE_FOR_lasx_concat_128_s): Dito. |
| (CODE_FOR_lasx_concat_128_d): Dito. |
| (CODE_FOR_lasx_concat_128): Dito. |
| (CODE_FOR_lasx_cast_128_s): Dito. |
| (CODE_FOR_lasx_cast_128_d): Dito. |
| (CODE_FOR_lasx_cast_128): Dito. |
| (loongarch_expand_builtin_direct): For the newly added |
| insertion or extraction, construct the parallel parameter |
| corresponding to the operand. |
| * config/loongarch/loongarch-c.cc |
| (loongarch_update_cpp_builtins): Define |
| __loongarch_asx_sx_conv. |
| * config/loongarch/loongarch-ftypes.def: Declare the type |
| of the builtin function. |
| * doc/extend.texi: Add document description. |
| |
| 2025-11-03 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_move_integer): |
| No new virtual register is allocated during immediate load. |
| |
| 2025-11-03 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/122477 |
| * config/loongarch/loongarch.cc |
| (loongarch_split_reduction): Added handling of scalar mode. |
| |
| 2025-11-02 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/bitmanip.md (rotrsi3): Use the sign extended form |
| for 32 bit rotates on TARGET_64BIT, even for constant counts. |
| * config/riscv/thead.md (th_srrisi3_extended): New pattern. |
| (th_srri<mode>3): Adjust formatting. |
| |
| 2025-11-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/122518 |
| * config/i386/i386.cc (ix86_canonicalize_comparison): Convert |
| (compare (minus (a b)) a) to (compare (a b)) to |
| match *sub<mode>_3 pattern. |
| |
| 2025-11-02 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/122527 |
| * config/avr/avr.cc (avr_load_libgcc_p): Return false if |
| the address-space is not ADDR_SPACE_FLASH. |
| (avr_out_lpm_no_lpmx [addr=REG]): Handle sizes of 3 and 4 bytes. |
| |
| 2025-11-02 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR tree-optimization/118012 |
| PR tree-optimization/122505 |
| * config/avr/avr.md (mulpsi3): Also allow the insn condition |
| in the case where avropt_pr118012 && !AVR_TINY. |
| (*mulpsi3): Handle split for the !AVR_HAVE_MUL case. |
| (*mulpsi3-nomul.libgcc_split, *mulpsi3-nomul.libgcc): New insns. |
| |
| 2025-11-02 Richard Biener <rguenther@suse.de> |
| |
| * doc/tree-ssa.texi: Remove outdated info on FOR_EACH_IMM_USE_STMT |
| iteration, clarify SSA operand parts. |
| * ssa-iterators.h: Update toplevel comment. |
| |
| 2025-11-02 Sam James <sam@gentoo.org> |
| |
| * .simplify-rtx.cc.swo: Removed. |
| |
| 2025-11-01 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| PR target/67731 |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): |
| Handle IOR of single bit bitfields from the same object. |
| |
| 2025-11-01 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv-protos.h (has_vtype_op): Add prototype. |
| (mask_agnostic_p, get_avl, vsetvl_insn_p): Likewise. |
| * config/riscv/riscv-vsetvl.cc (has_vtype_op): No longer static. |
| (vsetvl_insn_p, get_avl_mask_agnostic_p): Likewise. |
| * config/riscv/riscv.cc (struct last_vcofnig): New structure. |
| (clear_vconfig): New function. |
| (compatible_with_last_vconfig, riscv_sched_init): Likewise. |
| (riscv_sched_reorder): Likewise. |
| (TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Define. |
| * config/riscv/vector.md ("*mov<mode>"): Set has_vtype_op, has_vl_op |
| attributes. |
| * .simplify-rtx.cc.swo: New file. |
| |
| 2025-11-01 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/122321 |
| * lra-constraints.cc (update_equiv): Make sure REGNO is in |
| ira_reg_equiv before trying to update ira_reg_equiv. |
| |
| 2025-11-01 Martin Uecker <uecker@tugraz.at> |
| |
| * doc/extend.texi: Document new extension. |
| |
| 2025-11-01 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (negsf2): |
| Add another insn pattern that is valid when TARGET_DENSITY is |
| enabled and both the source and destination are address registers. |
| |
| 2025-11-01 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md |
| (c_enum "unspec", int_iterator ANY_ROUND): Add UNSPEC_ROUND. |
| (int_attr m_round): Add a pair of UNSPEC_ROUND and "round". |
| (int_attr c_round): New integer iterator attribute, that expands |
| to "flag_unsafe_math_optimizations" in the case of UNSPEC_ROUND, |
| and to "1" otherwise. |
| (l<m_round>sfsi2, *l<m_round>sfsi2_2x, *l<m_round>sfsi2_scaled): |
| Append " && <c_round>" to the conditions. |
| |
| 2025-11-01 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (*fix<s_fix>_truncsfsi2_scaled, |
| *float<s_float>sisf2_scaled, *l<m_round>sfsi2_scaled): |
| Remove 'F'-constraint. |
| |
| 2025-11-01 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR ipa/122512 |
| * cgraph.h (enum toplevel_type): Add TOPLEVEL_MAX. Add comment |
| about keeping toplevel_type_names in sync. |
| * symtab.cc (symtab_type_names): Rename to ... |
| (toplevel_type_names): Add new types and add an assert about |
| the size. |
| (symtab_node::get_symtab_type_string): Use toplevel_type_names |
| instead of symtab_type_names. |
| (symtab_node::dump_base): Likewise. |
| |
| 2025-10-31 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122437 |
| * fold-const.h (div_if_zero_remainder): Remove. |
| |
| 2025-10-31 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/121853 |
| * config/aarch64/aarch64-simd.md (extendbfsf2): New. |
| |
| 2025-10-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122502 |
| * tree-scalar-evolution.cc (final_value_replacement_loop): |
| Avoid folding from within FOR_EACH_IMM_USE_STMT due to active |
| ranger. |
| |
| 2025-10-31 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122437 |
| * fold-const.cc (div_if_zero_remainder): Remove. |
| |
| 2025-10-31 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122497 |
| * tree-scalar-evolution.cc (final_value_replacement_loop): Call replace_uses_by |
| only after the replacement statement was created. |
| |
| 2025-10-31 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/lasx.md: Support. |
| * config/loongarch/loongarch.cc |
| (loongarch_expand_vec_widen_hilo): Remove unused code. |
| * config/loongarch/lsx.md: Support. |
| |
| 2025-10-31 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/lasx.md (ILASX_HB): Move to ... |
| * config/loongarch/lsx.md (ILSX_HB): Move to ... |
| * config/loongarch/simd.md (ILSX_HB): ... here. |
| (ILASX_HB): ... here. |
| (IVEC_HB): New iterator. |
| (WVEC_QUARTER): New attr. |
| (wvec_quarter): Likewise. |
| (simdfmt_qw): Likewise. |
| (<su>dot_prod<wvec_quarter><mode>): New template. |
| |
| 2025-10-31 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/lasx.md (hi_lo): Move to ... |
| * config/loongarch/simd.md (hi_lo): ... here. |
| * config/loongarch/loongarch.cc |
| (loongarch_expand_vec_widen_hilo): Add 128-bit data processing. |
| * config/loongarch/lsx.md |
| (vec_widen_<su><optab>_<hi_lo>_<mode>): New define_expand. |
| (vec_widen_<su>mult_<hi_lo>_<mode>): Likewise. |
| |
| 2025-10-31 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/lasx.md (vec_widen_<su>add_hi_<mode>): |
| Move. |
| (vec_widen_<su>add_lo_<mode>): Move. |
| (vec_widen_<su>sub_hi_<mode>): Move. |
| (vec_widen_<su>sub_lo_<mode>): Move. |
| (vec_widen_<su>mult_hi_<mode>): Move. |
| (vec_widen_<su>mult_lo_<mode>): Move. |
| (hi_lo): New define_int_attr. |
| (vec_widen_<su><optab>_<hi_lo>_<mode>): New define_expand. |
| (vec_widen_<su>mult_<hi_lo>_<mode>): Likewise. |
| * config/loongarch/loongarch-protos.h |
| (loongarch_expand_vec_widen_hilo): Modify the function |
| parameter list. |
| * config/loongarch/loongarch.cc |
| (loongarch_expand_vec_widen_hilo): Optimized. |
| |
| 2025-10-30 David Faust <david.faust@oracle.com> |
| |
| PR debug/122248 |
| * dwarf2out.cc (gen_btf_tag_dies): Always replace an existing |
| AT_GNU_annotation on the target die. |
| |
| 2025-10-30 David Faust <david.faust@oracle.com> |
| |
| * btfout.cc (btf_add_used_type_1): Do not consider creating |
| fixups at typedefs. |
| |
| 2025-10-30 Michal Jires <mjires@suse.cz> |
| |
| * lto-cgraph.cc (output_symtab): Remove asm_nodes_out. |
| * lto-streamer-out.cc (lto_output_toplevel_asms): Use |
| partitioning. |
| (create_order_remap): Remove asm_nodes_out. |
| (lto_output): In LGEN add asm_nodes into partition. |
| * lto-streamer.h (lto_output_toplevel_asms): Add encoder. |
| |
| 2025-10-30 Michal Jires <mjires@suse.cz> |
| |
| * lto-cgraph.cc (compute_ltrans_boundary): Add asm_node. |
| |
| 2025-10-30 Michal Jires <mjires@suse.cz> |
| |
| * ipa-icf.cc (sem_item_optimizer::write_summary): Use |
| toplevel_node. |
| (sem_item_optimizer::read_section): Likewise. |
| * ipa-modref.cc (modref_write): Likewise. |
| * ipa-prop.cc (ipa_write_return_summaries): Likewise. |
| (ipcp_write_transformation_summaries): Likewise. |
| * ipa-reference.cc (ipa_reference_write_optimization_summary): |
| Likewise. |
| * lto-cgraph.cc (lto_symtab_encoder_new): Likewise. |
| (lto_symtab_encoder_encode): Likewise. |
| (lto_symtab_encoder_delete_node): Likewise. |
| (lto_symtab_encoder_in_partition_p): Likewise. |
| (lto_set_symtab_encoder_in_partition): Likewise. |
| (output_refs): Likewise. |
| (compute_ltrans_boundary): Likewise. |
| (output_symtab): Likewise. |
| (output_cgraph_opt_summary): Likewise. |
| * lto-streamer-out.cc (lto_output): Likewise. |
| (produce_symtab): Likewise. |
| (produce_symtab_extension): Likewise. |
| * lto-streamer.h (struct lto_encoder_entry): Likewise. |
| (struct lto_symtab_encoder_d): Likewise. |
| (lto_symtab_encoder_encode): Likewise. |
| (lto_symtab_encoder_delete_node): Likewise. |
| (lto_symtab_encoder_in_partition_p): Likewise. |
| (lto_symtab_encoder_lookup): Likewise. |
| (lsei_next): Likewise. |
| (lsei_varpool_node): Likewise. |
| |
| 2025-10-30 Michal Jires <mjires@suse.cz> |
| |
| * cgraph.h (enum symtab_type): Replace with toplevel_type. |
| (enum toplevel_type): New. |
| (struct toplevel_node): New. |
| (struct asm_node): Inherits from toplevel_node. |
| (test): New. |
| (symbol_table::finalize_toplevel_asm): Use constructor. |
| * coretypes.h (struct toplevel_node): New. |
| (struct asm_node): New. |
| * lto-streamer-in.cc (lto_input_toplevel_asms): Add |
| lto_file_data. |
| |
| 2025-10-30 Michal Jires <mjires@suse.cz> |
| |
| * cgraph.cc (cgraph_node::release_body): Keep lto_file_data. |
| (cgraph_node::remove): likewise. |
| * lto-section-in.cc (lto_free_function_in_decl_state_for_node): |
| likewise. |
| * varpool.cc (varpool_node::remove): likewise. |
| |
| 2025-10-30 Qing Zhao <qing.zhao@oracle.com> |
| |
| * doc/extend.texi: Clarification when the counted_by attribute is applied |
| on a void pointer. |
| |
| 2025-10-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/116075 |
| * fold-const-call.cc (fold_const_vec_shl_insert): New function. |
| (fold_const_call): Call fold_const_vec_shl_insert for CFN_VEC_SHL_INSERT. |
| * match.pd (`VEC_SHL_INSERT (dup (A), A)`): New pattern. |
| |
| 2025-10-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122247 |
| * tree-ssa-forwprop.cc (do_simple_agr_dse): Allow phi node for the usage |
| if the usage of the phi result is just the "same" as the original clobber. |
| |
| 2025-10-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122247 |
| * tree-ssa-forwprop.cc (do_simple_agr_dse): Allow |
| use to be a clobber of the same kind to the same lhs. |
| |
| 2025-10-30 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-ssa-loop-niter.cc (shifted_range_nonzero_p): New |
| function. |
| (number_of_iterations_cltz): Call new function. |
| * tree-ssa-loop.cc (pass_scev_cprop::execute): Enable ranger. |
| |
| 2025-10-30 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| PR target/122445 |
| * config/riscv/riscv-avlprop.cc (pass_avlprop::get_vlmax_ta_preferred_avl): |
| Scale AVL of subreg uses. |
| |
| 2025-10-30 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| PR tree-optimization/122478 |
| * match.pd: Fix the view_convert (BIT_FIELD_REF) pattern. |
| |
| 2025-10-30 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386-options.cc (ix86_option_override_internal): |
| Fix check during opts->x_ix86_move_max initialization. |
| |
| 2025-10-30 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR rtl-optimization/121198 |
| * lra-constraints.cc (process_alt_operands): Compute least upper |
| bound of all register classes over all required registers in |
| order to determine register class for a hard register constraint. |
| |
| 2025-10-30 Richard Biener <rguenther@suse.de> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-vect-slp.cc (vect_get_operand_map): Handle commutative |
| operands when swapping is requested. |
| (vect_build_slp_tree_1): Allow STMT_VINFO_REDUC_IDX differences |
| when operand swapping makes them match and request swapping. |
| (vect_build_slp_instance): Indicate we have successfully |
| discovered a SLP reduction group. |
| |
| 2025-10-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/116815 |
| * config/i386/i386.md (ovf_add_cmp): New code attribute. |
| (udf_sub_cmp): Ditto. |
| (ovf_comm): New int iterator. |
| (*plus_within_<code><mode>3_<ovf_comm>): New insn and split pattern. |
| (*minus_within_<code><mode>3): Ditto. |
| |
| 2025-10-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * gimple-fold.cc (gimple_fold_builtin_assume_aligned): Remove. |
| (gimple_fold_builtin): Don't fold __builtin_assume_aligned |
| |
| 2025-10-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| Revert: |
| 2025-10-27 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/107389 |
| PR tree-optimization/122086 |
| * tree-ssa-forwprop.cc (forwprop_may_propagate_copy): New function. |
| (pass_forwprop::execute): Use forwprop_may_propagate_copy |
| instead of may_propagate_copy. |
| |
| 2025-10-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120687 |
| * tree-vect-slp.cc (vect_optimize_slp_pass::is_compatible_layout): |
| New overload for checking a whole partition. |
| (vect_optimize_slp_pass::legitimize): New function trying |
| a single layout for all partitions for now. |
| (vect_optimize_slp_pass::run): Try legitimizing to a single |
| layout before propagating. |
| (vect_slp_analyze_operations): For dumping deal with |
| SLP_TREE_SCALAR_STMTS being empty or element zero being NULL. |
| |
| 2025-10-30 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/122457 |
| * config/i386/sse.md (VI2_AVX10_2): New mode iterator. |
| (usdot_prod<sseunpackmodelower><mode>): Use VI2_AVX10_2 |
| instead of VI2_AVX512F. |
| (udot_prod<sseunpackmodelower><mode>): Ditto. |
| |
| 2025-10-30 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/lasx.md (fnma<mode>4): Remove. |
| * config/loongarch/lsx.md (fnma<mode>4): Remove. |
| * config/loongarch/simd.md (fnma<mode>4): Simplify and correct. |
| |
| 2025-10-30 Jinyang He <hejinyang@loongson.cn> |
| Peng Fan <fanpeng@loongson.cn> |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_expand_conditional_move): Only allow valid binary |
| op when optimize conditional move. |
| |
| 2025-10-29 Jeff Law <jlaw@ventanamicro.com> |
| |
| Revert: |
| 2025-10-29 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/116662 |
| * config/riscv/riscv.cc (riscv_option_override): Override |
| default value for destructive interference size. |
| |
| 2025-10-29 Jeff Law <jlaw@ventanamicro.com> |
| |
| Revert: |
| 2025-10-29 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/116662 |
| * config/riscv/riscv.cc (riscv_option_override): Apply correct version |
| of the patch. |
| |
| 2025-10-29 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/116662 |
| * config/riscv/riscv.cc (riscv_option_override): Apply correct version |
| of the patch. |
| |
| 2025-10-29 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/116662 |
| * config/riscv/riscv.cc (riscv_option_override): Override |
| default value for destructive interference size. |
| |
| 2025-10-29 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/91191 |
| * gimple-range-op.cc (gimple_range_op_handler): Descend one |
| operand lower for a VIEW_CONVERT_EXPR. |
| * range-op-mixed.h (class operator_view): New. |
| * range-op.cc (range_op_table): Add VIEW_CONVERT_EXPR case. |
| (operator_view::fold_range): New. |
| (operator_view::op1_range): New. |
| (operator_view::update_bitmask): New. |
| |
| 2025-10-29 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_analyze_slp): Mark stmts in BB roots |
| as released after vect_build_slp_instance. |
| (vect_build_slp_instance): Release scalar_stmts when exiting |
| early. |
| |
| 2025-10-29 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/122097 |
| * config/loongarch/loongarch.cc |
| (loongarch_const_vector_bitimm_set_p): Add support for vector float. |
| (loongarch_const_vector_bitimm_clr_p): Likewise. |
| (loongarch_print_operand): Likewise. |
| * config/loongarch/simd.md (and<mode>3): Likewise. |
| |
| 2025-10-29 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/lasx.md (xor<mode>3): Delete. |
| (ior<mode>3): Delete. |
| (and<mode>3): Delete. |
| * config/loongarch/lsx.md (xor<mode>3): Delete. |
| (ior<mode>3): Delete. |
| (and<mode>3): Delete. |
| * config/loongarch/simd.md (xor<mode>3): Define. |
| (ior<mode>3): Likewise. |
| (and<mode>3): Likewise. |
| |
| 2025-10-29 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/genopts/loongarch.opt.in (-mbreak-code=): |
| New. |
| * config/loongarch/loongarch.opt: Regenerate. |
| * config/loongarch/loongarch.md (trap): Separate to a |
| define_insn and a define_expand which takes la_break_code. |
| * doc/invoke.texi (-mbreak-code=): Document. |
| * config/loongarch/loongarch.opt.urls: Regenerate. |
| |
| 2025-10-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer): |
| Avoid explicit LOOP_VINFO_IV_EXIT reference. |
| |
| 2025-10-28 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * match.pd: Add pattern to simplify view_convert (BIT_FIELD_REF). |
| |
| 2025-10-28 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.cc (riscv_get_vls_cc_attr): Fix error message |
| parameter order and add check_only condition. Improve diagnostic |
| message formatting with proper quoting. |
| (riscv_handle_rvv_vls_cc_attribute): Anonymize unused node parameter. |
| |
| 2025-10-28 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| PR tree-optimization/122065 |
| * tree-vect-generic.cc (add_rshift): Update name and add code parameter. |
| (add_shift): Update name. |
| (expand_vector_mult): New lowering for MULT_EXPR. |
| (expand_vector_divmod): Use updated function name. |
| (expand_vector_operation): Use updated function name. |
| |
| 2025-10-27 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * expr.cc (expr_has_boolean_range): New function. |
| (expand_expr_real_2): Use expr_has_boolean_range instead of |
| gimple_zero_one_valued_p. |
| * tree-ssanames.cc (ssa_name_has_boolean_range): Update to take |
| a gimple STMT. |
| * tree-ssanames.h (ssa_name_has_boolean_range): Update for the new |
| argument and default to nullptr. |
| |
| 2025-10-27 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/105749 |
| PR tree-optimization/80635 |
| * match.pd (`VCE<bool>(zero_one_valued_p) ==\!= 0`): New pattern. |
| |
| 2025-10-27 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122408 |
| * tree-vect-slp-patterns.cc (vect_validate_multiplication): Cleanup and |
| document interface. |
| (complex_mul_pattern::matches, complex_fms_pattern::matches): Update to |
| new interface. |
| |
| 2025-10-27 Andrew Stubbs <ams@baylibre.com> |
| |
| PR tree-optimization/104116 |
| * config/gcn/gcn-valu.md (abs<mode>2): New define_expand for |
| integer vector modes. |
| |
| 2025-10-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/122325 |
| * common.opt (flag_default_complex_method): Remove. |
| * opts.cc (init_options_struct): Default to fortran rules |
| for complex evaluations. |
| (finish_options): Remove (re-)instantiating of the frontend |
| default of the complex evaluation method. |
| |
| 2025-10-27 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-protos.h (riscv_init_cumulative_args): Add |
| bool parameter. |
| * config/riscv/riscv.h (enum riscv_cc): Add RISCV_CC_VLS_V_32, |
| RISCV_CC_VLS_V_64, RISCV_CC_VLS_V_128, RISCV_CC_VLS_V_256, |
| RISCV_CC_VLS_V_512, RISCV_CC_VLS_V_1024, RISCV_CC_VLS_V_2048, |
| RISCV_CC_VLS_V_4096, RISCV_CC_VLS_V_8192, RISCV_CC_VLS_V_16384. |
| (CUMULATIVE_ARGS): Add abi_vlen field. |
| * config/riscv/riscv.cc (riscv_handle_rvv_vls_cc_attribute): New |
| function. |
| (riscv_gnu_attributes): Add vls_cc attribute entry. |
| (riscv_attributes): Add riscv_vls_cc attribute entry. |
| (riscv_flatten_aggregate_field): Add vls_p and abi_vlen parameters |
| to handle VLS vector types. |
| (riscv_flatten_aggregate_argument): Update call to |
| riscv_flatten_aggregate_field. |
| (riscv_get_vector_arg): Add vls_p parameter for VLS handling. |
| (riscv_vls_cc_p): New function. |
| (riscv_get_cc_abi_vlen): New function. |
| (riscv_valid_abi_vlen_vls_cc_p): New function. |
| (riscv_get_riscv_cc_by_abi_vlen): New function. |
| (riscv_get_vls_container_type): New function. |
| (riscv_pass_vls_in_vr): New function. |
| (riscv_pass_aggregate_in_vr): New function. |
| (riscv_get_arg_info): Add VLS calling convention handling. |
| (riscv_function_arg_advance): Update for VLS calling convention. |
| (riscv_return_in_memory): Add fntype parameter and initialize |
| cumulative args properly. |
| (riscv_v_abi): Add abi parameter. |
| (riscv_get_vls_cc_attr): New function. |
| (riscv_vls_cc_function_abi): New function. |
| (riscv_fntype_abi): Add VLS calling convention detection. |
| (riscv_asm_output_variant_cc): Update for VLS calling convention. |
| |
| 2025-10-27 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/64345 |
| PR tree-optimization/80770 |
| * config/riscv/bitmanip.md (<optab>_not_const<mode>): Turn into a |
| peephole2 to avoid matching prior to combine. |
| * ifcvt.cc (noce_try_sign_bit_splat): When costs are equal steer |
| towards an AND based sequence. |
| |
| 2025-10-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122419 |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Only |
| skip noop conversions. |
| |
| 2025-10-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122435 |
| * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): |
| Also match noop conversions when detecting redundant stores. |
| |
| 2025-10-27 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_rtx_costs): |
| Ignore the cost impact of SIGN_EXTEND/ZERO_EXTEND. |
| |
| 2025-10-27 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/loongarch.md (both_non_zero): New combiner. |
| (both_non_zero_subreg): Ditto. |
| |
| 2025-10-27 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/loongarch.md |
| (sign_extend_ashift<GPR:mode><SHORT:mode>): New combiner. |
| |
| 2025-10-27 Kito Cheng <kito.cheng@sifive.com> |
| |
| * function-abi.h (NUM_ABI_IDS): Increase from 8 to 12. |
| |
| 2025-10-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (one_cmplsi2): |
| Rearrange back as an expand pattern. |
| |
| 2025-10-27 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/107389 |
| PR tree-optimization/122086 |
| * tree-ssa-forwprop.cc (forwprop_may_propagate_copy): New function. |
| (pass_forwprop::execute): Use forwprop_may_propagate_copy |
| instead of may_propagate_copy. |
| |
| 2025-10-26 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/122270 |
| * config/riscv/riscv-vector-builtins-bases.cc (vset::fold): Use the |
| unshare_expr for the statement that will be added seperately rather |
| the one which will be used for the replacement. |
| |
| 2025-10-26 James K. Lowden <jklowden@cobolworx.com> |
| |
| * doc/install.texi: Add libxml2 dependency for COBOL |
| library. Clarify 128-bit numeric dependency. |
| |
| 2025-10-26 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * poly-int.h: Change struct poly_int to class poly_int. |
| |
| 2025-10-26 LIU Hao <lh_mouse@126.com> |
| |
| PR target/119079 |
| * config/i386/i386.md: Use `movsxd` to perform SI-to-DI extension in Intel |
| syntax. |
| |
| 2025-10-26 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/riscv.cc (riscv_legitimize_move): Append extend. |
| |
| 2025-10-26 Osama Abdelkader <osama.abdelkader@gmail.com> |
| |
| * wide-int.h: Fix typo "accomodate" to "accommodate" in comment. |
| * value-range-storage.h: Likewise. |
| * tree-vectorizer.h (dr_set_safe_speculative_read_required): |
| Fix duplicate "the the" to "the" in comment. |
| |
| 2025-10-25 Sam James <sam@gentoo.org> |
| |
| * doc/extend.texi (nocf_check): Fix syntax errors in example. |
| |
| 2025-10-25 Jiahao Xu <xujiahao@loongson.cn> |
| |
| * config/loongarch/lasx.md (vec_extract<mode><lasxhalf>): New define_expand. |
| (vec_extract_lo_<mode>): New define_insn_and_split. |
| (vec_extract_hi_<mode>): New define_insn. |
| * config/loongarch/loongarch-protos.h (loongarch_check_vect_par_cnst_half) |
| New function prototype. |
| * config/loongarch/loongarch.cc (loongarch_split_reduction): |
| Implement TARGET_VECTORIZE_SPLIT_REDUCTION. |
| (loongarch_check_vect_par_cnst_half): New function. |
| * config/loongarch/predicates.md |
| (vect_par_cnst_low_half): New predicate. |
| (vect_par_cnst_high_half): New predicate. |
| |
| 2025-10-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/114025 |
| * gimple-range-fold.cc (fold_using_range::condexpr_adjust): Handle |
| the same ssa_name in the condition and the COND_EXPR better. |
| |
| 2025-10-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| * range-op.cc (operator_bitwise_and::wi_fold): Split signed |
| operations crossing zero into 2 operations. |
| |
| 2025-10-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/118254 |
| PR tree-optimization/114331 |
| * range-op.cc (operator_cast::fold_range): When VARYING is |
| reached, update the bitmask if we reach VARYING. |
| (operator_cast::op1_range): For truncating casts, create a |
| bitmask bit in LHS. |
| |
| 2025-10-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (call_internal, call_value_internal, |
| sibcall_internal, sibcall_value_internal): Remove 'n'-constraint. |
| |
| 2025-10-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (*addsubx, *subsi3_from_const, |
| *xtensa_clamps, *andsi3_const_pow2_minus_one, |
| *andsi3_const_negative_pow2, *andsi3_const_shifted_mask, |
| *splice_bits, extvsi_internal, extzvsi_internal, |
| *extzvsi-1bit_ashlsi3, *extzvsi-1bit_addsubx, insvsi, *lsiu, *ssiu, |
| *lsip, *ssip, *shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1, |
| *shlrd_const, *shlrd_per_byte_omit_AND, *masktrue_const_bitcmpl, |
| *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2, |
| *masktrue_const_shifted_mask, call_internal, call_value_internal, |
| sibcall_internal, sibcall_value_internal, entry, |
| *eqne_zero_masked_bits, *eqne_in_range): Remove 'i'-constraint. |
| |
| 2025-10-24 Josef Melcr <jmelcr02@gmail.com> |
| |
| PR middle-end/122392 |
| * attr-callback.cc (callback_build_attr): Remove erroneous |
| annotation. |
| |
| 2025-10-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_reduction): SLP-ify reduction |
| operation processing a bit more. |
| |
| 2025-10-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122406 |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Create |
| the SLP nodes for the conversions around the reduction |
| operation if required. |
| |
| 2025-10-24 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR fortran/121452 |
| * omp-low.cc (check_omp_nesting_restrictions): Accept an |
| OMP_STRUCTURED_BLOCK in a collapsed simd region and in an ordered loop. |
| |
| 2025-10-24 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| * match.pd: Fold VEC_PERM_EXPR chains implementing vector |
| concat-and-extract. |
| |
| 2025-10-24 Olivier Hainque <hainque@adacore.com> |
| |
| * config/rs6000/vxworks.h (SET_CMODEL): Undefine before |
| (re)defining. |
| |
| 2025-10-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (`(type1)x CMP CST1 ? (type2)x : CST2`): Better handling |
| of `((signed)x) < 0`. |
| |
| 2025-10-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/101024 |
| * tree-ssa-phiopt.cc (match_simplify_replacement): Special |
| case fp `a CMP b ? a : b` when not creating a min/max. |
| (strip_bit_not): Remove. |
| (invert_minmax_code): Remove. |
| (minmax_replacement): Remove. |
| (pass_phiopt::execute): Update pass comment. |
| Don't call minmax_replacement. |
| |
| 2025-10-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/101024 |
| * fold-const.cc (minmax_from_comparison): New version that takes widest_int |
| instead of tree. |
| (minmax_from_comparison): Call minmax_from_comparison for integer cst case. |
| * fold-const.h (minmax_from_comparison): New declaration. |
| * match.pd (`((signed)a </>= 0) ? min/max (a, c) : b`): New pattern. |
| |
| 2025-10-23 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add |
| __HAVE_FUNCTION_MULTI_VERSIONING macro. |
| |
| 2025-10-23 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.cc (dispatch_function_versions): Remove |
| unnecessary sorting and data structure. |
| |
| 2025-10-23 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/122190 |
| * config/aarch64/aarch64.cc (compare_feature_masks): Fix version rules. |
| |
| 2025-10-23 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_generate_version_dispatcher_body): |
| Dump function versions and the ordering. |
| |
| 2025-10-23 zhaozhou <zhaozhou@loongson.cn> |
| |
| * match.pd: Add new pattern for round. |
| |
| 2025-10-23 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_loop_vec_info::slp_unrolling_factor): Remove. |
| (LOOP_VINFO_SLP_UNROLLING_FACTOR): Likewise. |
| * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Adjust. |
| (vect_analyze_loop_2): Likewise. |
| * tree-vect-slp.cc (vect_make_slp_decision): Set |
| LOOP_VINFO_VECT_FACTOR directly. |
| |
| 2025-10-23 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_analyze_loop_2): Move vect_optimize_slp |
| after applying suggested_unroll_factor. |
| |
| 2025-10-23 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_analyze_loop_2): Deal with NULL |
| element in SLP_TREE_SCALAR_STMTS. |
| |
| 2025-10-23 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101639 |
| * config/i386/sse.md |
| (VI_AVX): New mode iterator. |
| (VI_AVX_CMP): Ditto. |
| (ssebytemode): Add V16HI, V32QI, V16QI. |
| (reduc_sbool_and_scal_<mode>): New expander. |
| (reduc_sbool_ior_scal_<mode>): Ditto. |
| (reduc_sbool_xor_scal_<mode>): Ditto. |
| (*eq<mode>3_2_negate): New pre_reload splitter. |
| (*ptest<mode>_ccz): Ditto. |
| |
| 2025-10-23 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101639 |
| * config/i386/sse.md |
| (reduc_sbool_and_scal_<mode>): New expander. |
| (reduc_sbool_ior_scal_<mode>): Ditto. |
| (reduc_sbool_xor_scal_<mode>): Ditto. |
| |
| 2025-10-22 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Use |
| HOST_WIDE_INT_0U and HOST_WIDE_INT_M1U to initialize unsigned |
| HOST_WIDE_INT. |
| |
| 2025-10-22 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (reduc_sbool_and_scal_<mode>, |
| reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): Use SVE if |
| available. |
| * config/aarch64/aarch64-sve.md (*cmp<cmp_op><mode>_ptest): Rename ... |
| (@aarch64_pred_cmp<cmp_op><mode>_ptest): ... To this. |
| (reduc_sbool_xor_scal_<mode>): Rename ... |
| (@reduc_sbool_xor_scal_<mode>): ... To this. |
| |
| 2025-10-22 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (reduc_sbool_and_scal_<mode>, |
| reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): New. |
| * config/aarch64/iterators.md (VALLI): New. |
| |
| 2025-10-22 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (reduc_sbool_and_scal_<mode>, |
| reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): New. |
| |
| 2025-10-22 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vect-loop.cc (vectorizable_reduction): Don't always require |
| IFN_VEC_SHL_INSERT when using reduc sbool optabs. |
| |
| 2025-10-22 Srinath Parvathaneni <srinath.parvathaneni@arm.com> |
| |
| * config/aarch64/aarch64.opt.urls: Regenerate. |
| |
| 2025-10-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122364 |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Re-try |
| linearization on a conversion source. |
| |
| 2025-10-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122370 |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): |
| Also update compute_vectype when demoting masks to an |
| integer vector. |
| |
| 2025-10-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122371 |
| * tree-vect-loop.cc (vectorize_fold_left_reduction): Get |
| to the scalar def to replace via the scalar PHI backedge def. |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Do not |
| re-associate to for a reduction chain if a fold-left |
| reduction is required. |
| |
| 2025-10-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122365 |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): |
| Convert all inputs. Use the proper vector element sizes |
| for the elementwise reduction. |
| |
| 2025-10-22 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/cpuinfo.h |
| (get_intel_cpu): Handle Nova Lake. |
| * common/config/i386/i386-common.cc (processor_name): |
| Add Nova Lake. |
| (processor_alias_table): Ditto. |
| * common/config/i386/i386-cpuinfo.h (enum processor_types): |
| Add INTEL_COREI7_NOVALAKE. |
| * config.gcc: Add -march=novalake. |
| * config/i386/driver-i386.cc (host_detect_local_cpu): Handle |
| novalake. |
| * config/i386/i386-c.cc (ix86_target_macros_internal): Ditto. |
| * config/i386/i386-options.cc (processor_cost_table): Ditto. |
| (m_NOVALAKE): New. |
| (m_CORE_HYBRID): Add novalake. |
| * config/i386/i386.h (enum processor_type): Ditto. |
| * doc/extend.texi: Ditto. |
| * doc/invoke.texi: Ditto. |
| |
| 2025-10-22 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/driver-i386.cc (host_detect_local_cpu): Correct |
| the logic for unknown model number cpu guess value. |
| |
| 2025-10-22 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/122320 |
| * config/i386/sse.md (*<avx512>_cmp<mode>3_dup_op): New define_insn_and_split. |
| |
| 2025-10-22 Antoni Boucher <bouanto@zoho.com> |
| |
| * config/i386/i386-jit.cc: Mark new float types as supported. |
| |
| 2025-10-21 Antoni Boucher <bouanto@zoho.com> |
| |
| * config.gcc (jit_target_objs): Don't set this variable since |
| the object files don't exist. |
| |
| 2025-10-21 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/i386-features.cc (timode_concatdi_p): New |
| function to recognize the various variants of *concatditi3_[1-7]. |
| (scalar_chain::add_insn): Like VEC_SELECT, ZERO_EXTEND and |
| timode_concatdi_p instructions don't require their input |
| operands to be converted (to TImode). |
| (timode_scalar_chain::compute_convert_gain): Split/clone XOR and |
| IOR cases from AND case, to handle timode_concatdi_p costs. |
| <case PLUS>: Handle timode_concatdi_p conversion costs. |
| <case ZERO_EXTEND>: Provide costs of DImode to TImode extension. |
| (timode_convert_concatdi): Helper function to transform |
| a *concatditi3 instruction into a vec_concatv2di instruction. |
| (timode_scalar_chain::convert_insn): Split/clone XOR and IOR |
| cases from ANS case, to handle timode_concatdi_p using the new |
| timode_convert_concatdi helper function. |
| <case ZERO_EXTEND>: Convert zero_extendditi2 to *vec_concatv2di_0. |
| <case PLUS>: Handle timode_concatdi_p using the new |
| timode_convert_concatdi helper function. |
| (timode_scalar_to_vector_candidate_p): Support timode_concatdi_p |
| instructions in IOR, XOR and PLUS cases. |
| <case ZERO_EXTEND>: Consider zero extension of a register from |
| DImode to TImode to be a candidate. |
| |
| 2025-10-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120687 |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): When |
| there's no natural reduction chain see if vect_slp_linearize_chain |
| can recover one and built the SLP instance manually in that |
| case. |
| (vect_schedule_slp): Deal with NULL lanes when looking for |
| stores to remove. |
| * tree-vect-loop.cc (vect_transform_cycle_phi): Dump when we |
| are successfully transforming a reduction chain. |
| |
| 2025-10-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_create_partial_epilog): Pun back |
| to the requested type if necessary. |
| |
| 2025-10-21 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/95699 |
| PR tree-optimization/101024 |
| PR tree-optimization/110068 |
| * match.pd (`(type1)x CMP CST1 ? (type2)x : CST2`): Treat |
| `(signed)x </>= 0` as `x >=/< SIGNED_TYPE_MIN` |
| |
| 2025-10-21 Olivier Hainque <hainque@adacore.com> |
| |
| * config/rs6000/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): |
| Redefine. |
| |
| 2025-10-21 Olivier Hainque <hainque@adacore.com> |
| |
| * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): |
| Remove guard on -fself-tests and replace %:getenv(VSB_DIR) by |
| sysroot references. |
| |
| 2025-10-20 Josef Melcr <jmelcr02@gmail.com> |
| |
| * ipa-fnsummary.cc (redirect_to_unreachable): Purge callback |
| edges when redirecting the carrying edge. |
| (analyze_function_body): Fix typo. |
| |
| 2025-10-20 Svante Signell <svante.signell@gmail.com> |
| |
| PR go/104290 |
| * config/gnu.h (OPTION_GLIBC_P, OPTION_GLIBC): Define. |
| |
| 2025-10-20 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/constraints.md (R, U): |
| Change define_memory_constraint to define_special_memory_constraint. |
| * config/xtensa/xtensa.md |
| (movsi_internal, movhi_internal, movqi_internal): |
| Rearrange their alternatives in the order of constant assignment, register- |
| register move, load, store and special. And also consolidate overlapping |
| alternatives. |
| (movsf_internal): Rearrange the alternatives as above, and remove the '^' |
| alternative character which is no longer needed. |
| |
| 2025-10-20 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc |
| (constantsynth_method_const16): New. |
| (constantsynth_methods): Append constantsynth_method_const16(). |
| (constantsynth_info): Add cost calculation for full-word constant |
| assignment when TARGET_CONST16 is enabled. |
| (constantsynth_pass1): Change it so that it works regardless of |
| TARGET_CONST16. |
| * config/xtensa/xtensa.md (*xtensa_const16): New. |
| |
| 2025-10-20 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (do_largeconst): |
| Change split_DI_SF_DF_const() to be called unconditionally. |
| |
| 2025-10-20 Olivier Hainque <hainque@adacore.com> |
| |
| * config.gcc (powerpc*-wrs-vxworks7r*): Add linux-protos.h |
| to tm_p_file. |
| |
| 2025-10-20 Olivier Hainque <hainque@adacore.com> |
| |
| * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): Only |
| builtin_define TOOL and TOOL_FAMILY for !TARGET_VXWORKS7. |
| Augment comment on VXWORKS_PERSONALITY. |
| * config/vxworks/vxworks-predef.h: Infer TOOL and TOOL_FAMILY |
| from the VSB autoconf.h when we have one, determined by the presence |
| of a _VSB_CONFIG_FILE definition. |
| |
| 2025-10-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> |
| |
| * config/aarch64/aarch64-elf.h (ASM_SPEC): Update the macro. |
| * config/aarch64/aarch64.cc (aarch64_valid_sysreg_name_p): |
| Add feature check condition. |
| (aarch64_retrieve_sysreg): Likewise. |
| * config/aarch64/aarch64.opt (menable-sysreg-checking): |
| Define new flag. |
| * doc/invoke.texi (menable-sysreg-checking): Document new flag. |
| |
| 2025-10-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121631 |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): |
| When the reduction operation invokes UB on signed overflow |
| make sure to perform operations with it on an unsigned type. |
| |
| 2025-10-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101639 |
| PR tree-optimization/103495 |
| * tree-vectorizer.h (vect_reduc_info_s): Add reduc_type_for_mask. |
| (VECT_REDUC_INFO_VECTYPE_FOR_MASK): New. |
| * tree-vect-patterns.cc (vect_determine_mask_precision): |
| Return whether the mask precision changed. |
| (vect_determine_precisions): Iterate mask precision computation |
| for loop vectorization. |
| * tree-vect-loop.cc (get_initial_defs_for_reduction): Properly |
| convert non-mask initial values to a mask initial def for |
| the reduction. |
| (sbool_reduction_fn_for_fn): New function. |
| (vect_create_epilog_for_reduction): For a mask input convert |
| it to the vector type analysis decided to use. Use a regular |
| conversion for the final convert to the scalar code type. |
| (vectorizable_reduction): Support mask reductions. Verify |
| we can compute a data vector from the mask result or a direct |
| maks reduction is provided by the target. |
| |
| 2025-10-20 Richard Biener <rguenther@suse.de> |
| |
| * doc/md.texi (reduc_sbool_{and,ior,xor}_scal_<mode>): Document. |
| * optabs.def (reduc_sbool_and_scal_optab, |
| reduc_sbool_ior_scal_optab, reduc_sbool_xor_scal_optab): New. |
| * internal-fn.def (REDUC_SBOOL_AND, REDUC_SBOOL_IOR, |
| REDUC_SBOO_XOR): Likewise. |
| * internal-fn.cc (reduc_sbool_direct): New initializer. |
| (expand_reduc_sbool_optab_fn): New expander. |
| (direct_reduc_sbool_optab_supported_p): New. |
| |
| 2025-10-20 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/99930 |
| PR target/122323 |
| * config/i386/i386-expand.cc (ix86_expand_copysign): Swap |
| operands[1] with operands[2]. Optimize copysign (x, const_double) |
| instead of copysign (const_double, x). |
| * config/i386/i386.md (copysign<mode>3): Swap constraints for |
| operands[1] and operands[2]. |
| |
| 2025-10-19 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_nonzero_bits_lsr_operands_p): Also |
| handle PLUS. |
| * config/avr/avr.md (pixaop): New code iterator for PLUS, |
| IOR, XOR, AND. |
| (nzb=1 insns): Use pixaop instead of bitop code iterator. |
| Handle PLUS in outputs. |
| |
| 2025-10-18 Mark Wielaard <mark@klomp.org> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2025-10-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR c++/119060 |
| * builtins.cc (expand_builtin): Handle BUILT_IN_OBSERVABLE_CHKPT. |
| * builtins.def (BUILT_IN_OBSERVABLE_CHKPT): New. |
| * tree.cc (build_common_builtin_nodes): Build observable |
| checkpoint builtin. |
| |
| 2025-10-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122069 |
| * config/aarch64/aarch64-sve2.md |
| (widen_ssum<mode><Vnarrow>3): Update. |
| (widen_usum<mode><Vnarrow>3): Update. |
| |
| 2025-10-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122069 |
| * config/aarch64/aarch64-sve2.md: (widen_ssum<mode><Vnarrow>3): New. |
| (widen_usum<mode><Vnarrow>3): New. |
| * config/aarch64/iterators.md (Vnarrow): New, to match VNARROW. |
| |
| 2025-10-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122069 |
| * config/aarch64/aarch64-sve.md (widen_<sur>sum<mode><vsi2qi>3): New. |
| |
| 2025-10-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122069 |
| * config/rs6000/altivec.md (widen_usum<mode>3): Rename ... |
| (widen_usumv4si<mode>3): ... to this. |
| (widen_ssumv16qi3): Rename ... |
| (widen_ssumv4siv16qi3): ... to this. |
| (widen_ssumv8hi3): Rename ... |
| (widen_ssumv4siv8hi3): ... to this. |
| |
| 2025-10-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122069 |
| * config/ia64/vect.md (widen_usumv8qi3): Renamed ... |
| (widen_usumv4hiv8qi3): ... into this. |
| (widen_usumv4hi3): Renamed ... |
| (widen_usumv2siv4hi3): ... into this. |
| (widen_ssumv8qi3): Renamed ... |
| (widen_ssumv4hiv8qi3): ... into this. |
| (widen_ssumv4hi3): Renamed ... |
| (widen_ssumv2siv4hi3): ... into this. |
| |
| 2025-10-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122069 |
| * config/arm/iterators.md (v_double_width): New, matching |
| V_double_width. |
| * config/arm/neon.md (widen_ssum<mode>3): Renamed ... |
| (widen_ssum<v_double_width><mode>3, widen_ssum<V_widen_l><mode>3): ... |
| into these. |
| (widen_usum<mode>3): Renamed ... |
| (widen_usum<v_double_width><mode>3, widen_usum<V_widen_l><mode>3): ... |
| into these. |
| |
| 2025-10-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122069 |
| * config/aarch64/aarch64-simd.md (widen_ssum<mode><vsi2qi>3): New. |
| (widen_usum<mode><vsi2qi>3): New. |
| |
| 2025-10-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122069 |
| * config/aarch64/aarch64-simd.md (widen_ssum<mode>3): Change into.. |
| (widen_ssum<Vdblw><mode>3, widen_ssum<Vwide><mode>3): ... these. |
| (widen_usum<mode>3): Change into ... |
| (widen_usum<Vdblw><mode>3, widen_usum<Vwide><mode>3): ... these. |
| * config/aarch64/iterators.md (Vdblw): New. |
| (Vwide): Extend to match VWIDE. |
| |
| 2025-10-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/122069 |
| * doc/md.texi (widen_ssum@var{n}@var{m}3, widen_usum@var{n}@var{m}3): |
| Update docs. |
| * optabs.cc (expand_widen_pattern_expr): Add WIDEN_SUM_EXPR as widening. |
| * optabs.def (ssum_widen_optab, usum_widen_optab): Convert from direct |
| to a conversion optab. |
| * tree-vect-patterns.cc (vect_recog_widen_sum_pattern): Change |
| vect_supportable_direct_optab_p into vect_supportable_conv_optab_p. |
| |
| 2025-10-18 Linsen Zhou <i@lin.moe> |
| |
| PR tree-optimization/122012 |
| * tree-object-size.cc (check_for_plus_in_loops): Skip check |
| for the variable offset |
| |
| 2025-10-17 David Faust <david.faust@oracle.com> |
| |
| PR target/122139 |
| * config/bpf/bpf.cc (bpf_expand_setmem): Duplicate byte value |
| across to new mode when using larger modes for store. |
| |
| 2025-10-17 Tamar Christina <tamar.christina@arm.com> |
| Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| PR target/121604 |
| * config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication): |
| Store gp_index. |
| (struct pmov_to_vector_lane_def): Mark instruction as has no GP. |
| * config/aarch64/aarch64-sve-builtins.h (function_instance::gp_value, |
| function_instance::inactive_values, function_instance::gp_index, |
| function_shape::has_gp_argument_p): New. |
| * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::fold_pfalse): |
| Simplify code and use GP helpers. |
| |
| 2025-10-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122308 |
| * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Do LIM |
| after applying unroll-and-jam. |
| |
| 2025-10-17 Josef Melcr <jmelcr02@gmail.com> |
| |
| * Makefile.in: Add attr-callback.o to OBJS. |
| * builtin-attrs.def (ATTR_CALLBACK): Callback attr identifier. |
| (DEF_CALLBACK_ATTRIBUTE): Macro for callback attr creation. |
| (GOMP): Attr for libgomp functions. |
| (ATTR_CALLBACK_GOMP_LIST): ATTR_NOTHROW_LIST with GOMP callback |
| attr added. |
| * cgraph.cc (cgraph_add_edge_to_call_site_hash): Always hash the |
| callback-carrying edge. |
| (cgraph_node::get_edge): Always return the callback-carrying |
| edge. |
| (cgraph_edge::set_call_stmt): Add cascade for callback edges. |
| (symbol_table::create_edge): Allow callback edges to share call |
| stmts, initialize new flags. |
| (cgraph_edge::make_callback): New method, derives a new callback |
| edge. |
| (cgraph_edge::get_callback_carrying_edge): New method. |
| (cgraph_edge::first_callback_edge): Likewise. |
| (cgraph_edge::next_callback_edge): Likewise. |
| (cgraph_edge::purge_callback_edges): Likewise. |
| (cgraph_edge::redirect_callee): When redirecting a callback |
| edge, redirect its ref as well. |
| (cgraph_edge::redirect_call_stmt_to_callee): Add callback edge |
| redirection logic, set update_derived_edges to true hwne |
| redirecting the carrying edge. |
| (cgraph_node::remove_callers): Add cascade for callback edges. |
| (cgraph_edge::dump_edge_flags): Print callback flags. |
| (cgraph_node::verify_node): Add sanity checks for callback |
| edges. |
| * cgraph.h: Add new 1 bit flags and 16 bit callback_id to |
| cgraph_edge class. |
| * cgraphclones.cc (cgraph_edge::clone): Copy over callback data. |
| * cif-code.def (CALLBACK_EDGE): Add CIF_CALLBACK_EDGE code. |
| * ipa-cp.cc (purge_useless_callback_edges): New function, |
| deletes callback edges when necessary. |
| (ipcp_decision_stage): Call purge_useless_callback_edges. |
| * ipa-fnsummary.cc (ipa_call_summary_t::duplicate): Add |
| an exception for callback edges. |
| (analyze_function_body): Copy over summary from carrying to |
| callback edge. |
| * ipa-inline-analysis.cc (do_estimate_growth_1): Skip callback |
| edges when estimating growth. |
| * ipa-inline-transform.cc (inline_transform): Add redirection |
| cascade for callback edges. |
| * ipa-param-manipulation.cc |
| (drop_decl_attribute_if_params_changed_p): New function. |
| (ipa_param_adjustments::build_new_function_type): Add |
| args_modified out param. |
| (ipa_param_adjustments::adjust_decl): Drop callback attrs when |
| modifying args. |
| * ipa-param-manipulation.h: Adjust decl of |
| build_new_function_type. |
| * ipa-prop.cc (ipa_duplicate_jump_function): Add decl. |
| (init_callback_edge_summary): New function. |
| (ipa_compute_jump_functions_for_edge): Add callback edge |
| creation logic. |
| * lto-cgraph.cc (lto_output_edge): Stream out callback data. |
| (input_edge): Input callback data. |
| * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC): Use new |
| attr list. |
| (BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED): Likewise. |
| (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC): Likewise. |
| (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME): Likewise. |
| (BUILT_IN_GOMP_PARALLEL): Likewise. |
| (BUILT_IN_GOMP_PARALLEL_SECTIONS): Likewise. |
| (BUILT_IN_GOMP_TEAMS_REG): Likewise. |
| * tree-core.h (ECF_CB_1_2): New constant for callback(1,2). |
| * tree-inline.cc (copy_bb): Copy callback edges when copying the |
| carrying edge. |
| (redirect_all_calls): Redirect callback edges. |
| * tree.cc (set_call_expr_flags): Create callback attr according |
| to the ECF_CB flag. |
| * attr-callback.cc: New file. |
| * attr-callback.h: New file. |
| |
| 2025-10-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122301 |
| * tree-vect-patterns.cc (vect_recog_over_widening_pattern): |
| Fix reduction guard. |
| (vect_mark_pattern_stmts): Fix reduction def check. |
| |
| 2025-10-17 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| PR tree-optimization/104116 |
| * tree-vect-patterns.cc (add_code_for_floorceilround_divmod): patt recog |
| for {FLOOR,ROUND,CEIL}_{DIV,MOD}_EXPR. |
| (vect_recog_divmod_pattern): Call add_code_for_floorceilround_divmod |
| after computing div/mod for each control path. |
| |
| 2025-10-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122296 |
| * match.pd (`(a != b) | ((a|b) != 0)`): Reuse both |
| the ior and zero instead of recreating them. |
| (`(a == b) & ((a|b) == 0)`): Likewise |
| |
| 2025-10-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122296 |
| * match.pd (`(a == b) | ((a|b) != 0)`): Fix true value. |
| |
| 2025-10-17 Hu, Lin1 <lin1.hu@intel.com> |
| |
| PR target/122119 |
| * config/i386/amxmovrsintrin.h |
| (_tile_loaddrs_internal): Use __PTRDIFF_TYPE__ instead of long. |
| (_tile_loaddrst1_internal): Ditto. |
| |
| 2025-10-16 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add |
| custom-sarif-properties/digraphs.o and |
| custom-sarif-properties/state-graphs.o. Remove |
| diagnostics/state-graphs.o. |
| * configure: Regenerate. |
| * configure.ac: Add custom-sarif-properties to subdir iteration. |
| * custom-sarif-properties/digraphs.cc: New file. |
| * custom-sarif-properties/digraphs.h: New file. |
| * custom-sarif-properties/state-graphs.cc: New file. |
| * custom-sarif-properties/state-graphs.h: New file. |
| * diagnostics/diagnostics-selftests.cc |
| (run_diagnostics_selftests): Drop call of state_graphs_cc_tests. |
| * diagnostics/diagnostics-selftests.h (state_graphs_cc_tests): |
| Delete decl. |
| * diagnostics/digraphs.cc: Include |
| "custom-sarif-properties/digraphs.h". Move include of |
| "selftest.h" to within CHECKING_P section. |
| (using digraph_object): New. |
| (namespace properties): New. |
| (diagnostics::digraphs::object::get_attr): Delete. |
| (diagnostics::digraphs::object::set_attr): Delete. |
| (diagnostics::digraphs::object::set_json_attr): Delete. |
| (digraph_object::get_property): New definitions, for various |
| property types. |
| (digraph_object::set_property): Likewise. |
| (digraph_object::maybe_get_property): New. |
| (digraph_object::get_property_as_tristate): New. |
| (digraph_object::ensure_property_bag): New. |
| (digraph::get_graph_kind): New. |
| (digraph::set_graph_kind): New. |
| Add include of "custom-sarif-properties/state-graphs.h". |
| (selftest::test_simple_graph): Rewrite to use json::property |
| instances rather than string attribute names. |
| (selftest::test_property_objects): New test. |
| (selftest::digraphs_cc_tests): Call it. |
| * diagnostics/digraphs.h: Include "tristate.h". |
| (object::get_attr): Delete. |
| (object::set_attr): Delete. |
| (object::get_property): New decls. |
| (object::set_property): New decls. |
| (object::maybe_get_property): New. |
| (object::get_property_as_tristate): New. |
| (object::set_json_attr): Delete. |
| (object::ensure_property_bag): New. |
| (graph::get_graph_kind): New. |
| (graph::set_graph_kind): New. |
| * diagnostics/html-sink.cc |
| (html_generation_options::html_generation_options): Update for |
| field renamings. |
| (html_generation_options::dump): Likewise. |
| (html_builder::maybe_make_state_diagram): Likewise. |
| (html_builder::add_graph): Show SARIF and .dot src inline, if |
| requested. |
| * diagnostics/html-sink.h |
| (html_generation_options::m_show_state_diagrams_sarif): Rename |
| to... |
| (html_generation_options::m_show_graph_sarif): ...this. |
| (html_generation_options::m_show_state_diagrams_dot_src): Rename |
| to... |
| (html_generation_options::m_show_graph_dot_src0): ...this. |
| * diagnostics/output-spec.cc |
| (html_scheme_handler::maybe_handle_kv): Rename keys. |
| (html_scheme_handler::get_keys): Likewise. |
| * diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to |
| use json::property instances found within custom_sarif_properties |
| throughout, rather than types in diagnostics::state_graphs. |
| * diagnostics/state-graphs.cc: Deleted file. |
| * diagnostics/state-graphs.h: Delete almost all, except decl of |
| diagnostics::state_graphs::make_dot_graph. |
| * doc/invoke.texi: Update for changes to "experimental-html" sink |
| keys. |
| * json.cc (json::object::set_string): New. |
| (json::object::set_integer): New. |
| (json::object::set_bool): New. |
| (json::object::set_array_of_string): New. |
| * json.h: Include "label-text.h". |
| (struct json::property): New template. |
| (json::string_property): New. |
| (json::integer_property): New. |
| (json::bool_property): New. |
| (json::json_property): New. |
| (using json::array_of_string_property): New. |
| (struct json::enum_traits): New. |
| (enum_json::property): New. |
| (json::value::dyn_cast_array): New vfunc. |
| (json::value::dyn_cast_integer_number): New vfunc. |
| (json::value::set_string): New. |
| (json::value::set_integer): New. |
| (json::value::set_bool): New. |
| (json::value::set_array_of_string): New. |
| (json::value::maybe_get_enum): New. |
| (json::value::set_enum): New. |
| (json::array::dyn_cast_array): New. |
| (json::integer_number::dyn_cast_integer_number): New. |
| (object::maybe_get_enum): New. |
| (object::set_enum): New. |
| |
| 2025-10-16 Ayappan Perumal <ayappap2@in.ibm.com> |
| |
| * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): |
| Error out when stack-protector option is used in AIX |
| as it is not supported on AIX |
| Approved By: Segher Boessenkool <segher@kernel.crashing.org> |
| |
| 2025-10-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122292 |
| * tree-vect-loop.cc (vect_transform_reduction): Compute the |
| input vector type the same way the analysis phase does. |
| |
| 2025-10-15 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/121468 |
| PR tree-optimization/121206 |
| PR tree-optimization/122200 |
| * value-range.cc (irange_bitmask::range_from_mask): New. |
| (irange::snap): Add explicit overflow flag. |
| (irange::snap_subranges): Use overflow flag. |
| (irange::set_range_from_bitmask): Use range_from_mask. |
| (test_irange_snap_bounds): Adjust for improved ranges. |
| * value-range.h (irange::range_from_mask): Add prototype. |
| (irange::snap): Adjust prototype. |
| |
| 2025-10-15 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn-devices.def (gfx942, gfx950): Set generic name |
| to GFX9_4_GENERIC. |
| * config/gcn/t-omp-device: Include generic names for OpenMP's |
| ISA trait. |
| |
| 2025-10-15 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * print-tree.cc (print_node): Print out clique/base |
| for MEM_REF and TARGET_MEM_REF. |
| |
| 2025-10-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/118460 |
| * config/arm/arm.cc (arm_canonicalize_comparison): For floating- |
| point comparisons, swap the operand order if that will be more |
| likely to produce a comparison that can be used with VSEL. |
| (arm_validize_comparison): Make sure that HFmode comparisons |
| are compatible with VSEL. |
| |
| 2025-10-15 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122037 |
| * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove |
| __builtin_stack_save when the lhs is unused. |
| |
| 2025-10-15 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-sys-regs.def: Copy from Binutils. |
| * config/aarch64/aarch64.cc (F_ARCHEXT): Delete flag. |
| * config/aarch64/aarch64.h |
| (AARCH64_FL_AMU): Delete unused macro. |
| (AARCH64_FL_SCXTNUM): Ditto. |
| (AARCH64_FL_ID_PFR2): Ditto. |
| (AARCH64_FL_AIE): Ditto. |
| (AARCH64_FL_DEBUGv8p9): Ditto. |
| (AARCH64_FL_FGT2): Ditto. |
| (AARCH64_FL_PFAR): Ditto. |
| (AARCH64_FL_PMUv3_ICNTR): Ditto. |
| (AARCH64_FL_PMUv3_SS): Ditto. |
| (AARCH64_FL_PMUv3p9): Ditto. |
| (AARCH64_FL_S1PIE): Ditto. |
| (AARCH64_FL_S1POE): Ditto. |
| (AARCH64_FL_S2PIE): Ditto. |
| (AARCH64_FL_S2POE): Ditto. |
| (AARCH64_FL_SCTLR2): Ditto. |
| (AARCH64_FL_SEBEP): Ditto. |
| (AARCH64_FL_SPE_FDS): Ditto. |
| (AARCH64_FL_TCR2): Ditto. |
| |
| 2025-10-15 Sebastian Pop <spop@nvidia.com> |
| |
| * doc/invoke.texi (ftree-parallelize-loops): Update. |
| * common.opt (ftree-parallelize-loops): Add alias that maps to |
| special value INT_MAX for runtime thread detection. |
| * tree-parloops.cc (create_parallel_loop): Use INT_MAX for runtime |
| detection. Call gimple_build_omp_parallel without building a |
| OMP_CLAUSE_NUM_THREADS clause. |
| (gen_parallel_loop): For auto-detection, use a conservative |
| estimate of 2 threads. |
| (parallelize_loops): Same. |
| |
| 2025-10-15 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/122189 |
| * config/arm/iterators.md (VxCIQ_carry, VxCIQ_M_carry, VxCQ_carry) |
| (VxCQ_M_carry): New iterators. |
| * config/arm/mve.md (get_fpscr_nzcvqc, set_fpscr_nzcvqc): Use |
| unspec instead of unspec_volatile. |
| (vadciq, vadciq_m, vadcq, vadcq_m): Use vfpcc in operation. Use a |
| different unspec code for carry calcultation. |
| * config/arm/unspecs.md (VADCQ_U_carry, VADCQ_M_U_carry) |
| (VADCQ_S_carry, VADCQ_M_S_carry, VSBCIQ_U_carry ,VSBCIQ_S_carry |
| ,VSBCIQ_M_U_carry ,VSBCIQ_M_S_carry ,VSBCQ_U_carry ,VSBCQ_S_carry |
| ,VSBCQ_M_U_carry ,VSBCQ_M_S_carry ,VADCIQ_U_carry |
| ,VADCIQ_M_U_carry ,VADCIQ_S_carry ,VADCIQ_M_S_carry): New unspec |
| codes. |
| |
| 2025-10-15 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR rtl-optimization/122266 |
| * combine.cc (struct reg_stat_type): Change types of sign_bit_copies |
| and last_set_sign_bit_copies to unsigned short, to avoid overflows |
| on TImode (and wider) values. |
| |
| 2025-10-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (scale_bb_profile): Use |
| profile_count::max_prefer_initialized. |
| (afdo_adjust_guessed_profile): Likewise. |
| * bb-reorder.cc (edge_order): Do not use max. |
| * cfghooks.cc (merge_blocks): Likewise. |
| * ipa-fnsummary.cc (param_change_prob): Likewise. |
| * ipa-inline-transform.cc (inline_transform): Likewise. |
| * predict.cc (update_max_bb_count): Likewise. |
| (estimate_bb_frequencies): Likewise. |
| (rebuild_frequencies): Likewise. |
| * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Likewise. |
| * profile-count.h (profile_count::max): Rename to |
| (profile_count::max_prefer_initialized): this; update handling |
| of qualities. |
| |
| 2025-10-15 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/cpuinfo.h |
| (get_intel_cpu): Handle Wildcat Lake. |
| * common/config/i386/i386-common.cc (processor_name): |
| Add Wildcat Lake. |
| * doc/invoke.texi: Ditto. |
| |
| 2025-10-15 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/i386.h |
| (PTA_PANTHERLAKE): Remove PREFETCHI. |
| (PTA_DIAMONDRAPIDS): Remove USER_MSR. |
| * doc/invoke.texi: Correct documentation. |
| |
| 2025-10-15 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md: Take concrete op instead |
| of any_widen_binop for vwaddu/vwsubu wx combine. |
| |
| 2025-10-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (REDUC_GROUP_FIRST_ELEMENT, |
| REDUC_GROUP_NEXT_ELEMENT, REDUC_GROUP_SIZE): Remove. |
| * tree-vect-slp.cc (REDUC_GROUP_FIRST_ELEMENT): Re-instantiate |
| here. |
| |
| 2025-10-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_analyze_slp_reduction): Move |
| reduction chain discovery ... |
| (vect_analyze_slp_reduc_chain): ... here. |
| |
| 2025-10-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): Move |
| bitsize compute down to where it is used and consistently |
| use vectype1 for element extraction. |
| |
| 2025-10-14 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/121949 |
| * tree-vect-patterns.cc (vect_recog_vector_vector_shift_pattern): Remove |
| restriction on internal_def. |
| |
| 2025-10-14 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-vect-stmts.cc (get_load_store_type): Add load-permutation |
| checks and setting of slp_perm. |
| (vectorizable_store): Remove perm_ok argument. |
| (vectorizable_load): Ditto and replace slp_perm by ls.slp_perm. |
| * tree-vectorizer.h (struct vect_load_store_data): Add slp_perm. |
| |
| 2025-10-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_reduc_info_s::is_reduc_chain): New. |
| (_loop_vec_info::reduction_chains): Remove. |
| (LOOP_VINFO_REDUCTION_CHAINS): Likewise. |
| * tree-vect-patterns.cc (vect_reassociating_reduction_p): |
| Do not special-case reduction group stmts. |
| * tree-vect-loop.cc (vect_is_simple_reduction): Remove |
| reduction chain handling. |
| (vect_analyze_scalar_cycles_1): Remove slp parameter and adjust. |
| (vect_analyze_scalar_cycles): Likewise. |
| (vect_fixup_reduc_chain): Remove. |
| (vect_fixup_scalar_cycles_with_patterns): Likewise. |
| (vect_analyze_loop_2): Adjust. |
| (vect_create_epilog_for_reduction): Check the reduction info |
| for whether this is a reduction chain. |
| (vect_transform_cycle_phi): Likewise. |
| (vectorizable_reduction): Likewise. Simplify code for all-SLP. |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Simplify. |
| (vect_analyze_slp_reduction): New function, perform reduction |
| chain discovery here. |
| (vect_analyze_slp): Remove reduction chain handling. |
| Use vect_analyze_slp_reduction for possible reduction chain |
| processing. |
| |
| 2025-10-14 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/cpuinfo.h |
| (get_available_features): Remove AMX-TRANSPOSE. |
| * common/config/i386/i386-common.cc |
| (OPTION_MASK_ISA2_AMX_TRANSPOSE_SET): Removed. |
| (OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET): Ditto. |
| (ix86_handle_option): Remove amx-transpose handle. |
| * common/config/i386/i386-cpuinfo.h |
| (enum processor_features): Remove FEATURE_AMX_TRANSPOSE. |
| Set FEATURE_AMX_MOVRS value. |
| * common/config/i386/i386-isas.h: Remove AMX-TRANSPOSE. |
| * config.gcc: Do not include amxtransposeintrin.h. |
| * config/i386/amxmovrsintrin.h: Remove AMX-TRANSPOSE intrins. |
| * config/i386/amxtransposeintrin.h: Ditto. |
| * config/i386/cpuid.h (bit_AMX_TRANSPOSE): Removed. |
| * config/i386/i386.h (PTA_DIAMONDRAPIDS): Remove AMX-TRANSPOSE. |
| * config/i386/i386-c.cc (ix86_target_macros_internal): Remove |
| AMX_TRANSPOSE. |
| * config/i386/i386-isa.def (AMX_TRANSPOSE): Removed. |
| * config/i386/i386-options.cc |
| (ix86_valid_target_attribute_inner_p): Remove AMX-TRANSPOSE. |
| * config/i386/i386.opt: Ditto. |
| * config/i386/i386.opt.urls: Ditto. |
| * config/i386/immintrin.h: Remove amxtransposeintrin.h. |
| * doc/extend.texi: Remove amx-transpose. |
| * doc/invoke.texi: Ditto. |
| * doc/sourcebuild.texi: Ditto. |
| |
| 2025-10-14 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiopt.cc (pass_phiopt::execute): Disable |
| cselim-limited and factor out operations for -Og. |
| |
| 2025-10-14 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122178 |
| * tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Handle |
| clobber statements. |
| |
| 2025-10-14 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122182 |
| * tree-ssa-dom.cc (cprop_operand): Don't check may_propagate_copy_into_asm. |
| * tree-ssa-propagate.cc (substitute_and_fold_engine::replace_uses_in): Don't |
| check may_propagate_copy_into_asm. |
| (may_propagate_copy_into_asm): Remove. |
| * tree-ssa-propagate.h (may_propagate_copy_into_asm): Remove. |
| |
| 2025-10-14 Zhongyao Chen <chenzhongyao.hit@gmail.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_subset_list::get_profile_name): |
| New function. |
| * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define |
| profile macro if a profile is detected. |
| * config/riscv/riscv-subset.h (riscv_subset_list::get_profile_name): Declare. |
| |
| 2025-10-13 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| PR target/120811 |
| * config/riscv/riscv.cc (synthesize_add): Exchange constant terms when |
| generating addi pairs. |
| (synthesize_addsi): Similarly. |
| * config/riscv/riscv.md (addptr<mode>3): New define_expand. |
| (*add<mode>3_const_sum_of_two_s12): Remove pattern. |
| |
| 2025-10-13 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/120674 |
| * config/riscv/riscv.cc (riscv_dwarf_poly_indeterminite_value): Do not |
| set FACTOR to zero, for that case use one instead. |
| |
| 2025-10-13 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add simplifed pattern for widen_mul based unsigned |
| SAT_MUL. |
| |
| 2025-10-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.cc (max_count): Remove. |
| (has_nonzero_ipa_profile): New. |
| (inline_small_functions): Update. |
| (dump_inline_stats): Update. |
| |
| 2025-10-13 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/118019 |
| * internal-fn.cc (get_supported_else_vals): Exit at invalid |
| index. |
| (internal_strided_fn_supported_p): New funtion. |
| * internal-fn.h (internal_strided_fn_supported_p): Declare. |
| * tree-vect-stmts.cc (vector_vector_composition_type): |
| Add vector_only argument. |
| (vect_use_grouped_gather): New function. |
| (vect_get_store_rhs): Adjust docs of |
| vector_vector_composition_type. |
| (get_load_store_type): Try grouped gather. |
| (vectorizable_store): Use punned vectype. |
| (vectorizable_load): Ditto. |
| * tree-vectorizer.h (struct vect_load_store_data): Add punned |
| vectype. |
| |
| 2025-10-13 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| PR tree-optimization/122213 |
| * match.pd: Canonicalize unsigned pow2 div only for trunk, floor and |
| exact div. |
| |
| 2025-10-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-patterns.cc (integer_type_for_mask): Add optional |
| output dt argument. |
| (vect_recog_bool_pattern): Make sure to not apply the bitwise |
| binary pattern to an external operand. |
| |
| 2025-10-11 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| PR target/119587 |
| * config/riscv/thead.md (*th_memidx_operand): New splitter. |
| |
| 2025-10-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| * coretypes.h (enum artificial_rodata): New enum type. |
| * doc/tm.texi: Rebuild. |
| * doc/tm.texi.in (TARGET_ADDR_SPACE_FOR_ARTIFICIAL_RODATA): |
| New hook. |
| * target.def (addr_sapce.for_artificial_rodata): New DEFHOOK. |
| * targhooks.cc (default_addr_space_convert): New function. |
| * targhooks.h (default_addr_space_convert): New prototype. |
| * tree-switch-conversion.cc (build_one_array) <value_type>: |
| Set type_quals address-space according to |
| targetm.addr_space.for_artificial_rodata(). |
| * config/avr/avr.cc (avr_rodata_in_flash_p): Move up. |
| (TARGET_ADDR_SPACE_FOR_ARTIFICIAL_RODATA): Define to... |
| (avr_addr_space_for_artificial_rodata): ...this new function. |
| * common/config/avr/avr-common.cc (avr_option_optimization_table): |
| Adjust -ftree-switch-conversion comment. |
| |
| 2025-10-11 Austin Law <austinklaw@gmail.com> |
| |
| * config/riscv/sync.md (lrsc_atomic_fetch_<atomic_optab><mode>): |
| Adjust operand predicate/constraint to allow simm12 operands |
| where valid. Adjust output template accordingly. |
| (subword_atomic_fech_strong_<atomic_optab>): Likewise. |
| (subword_atomic_fetch_strong_nand): Likewise. |
| (subword_atomic_exchange_strong): Likewise. |
| (subword_atomic_cas_strong): Likewise. |
| |
| 2025-10-10 David Faust <david.faust@oracle.com> |
| |
| PR target/122141 |
| * config/bpf/bpf.cc (bpf_expand_cbranch): Use swap_condition |
| rather than reverse_condition when reversing jump condition to |
| work around missing instructions in very old BPF ISAs. |
| |
| 2025-10-10 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (do_simple_agr_dse): New function. |
| (pass_forwprop::execute): Call do_simple_agr_dse for clobbers. |
| |
| 2025-10-10 Umesh Kalvakuntla <Umesh.Kalvakuntla@amd.com> |
| |
| * common/config/i386/cpuinfo.h (get_amd_cpu): Fix znver5 family |
| model numbers. |
| (get_available_features): Set FEATURE_PREFETCHI for bit_AMD_PREFETCHI. |
| * config/i386/cpuid.h (bit_AMD_PREFETCHI): New Macro. |
| |
| 2025-10-10 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*widen_wsubu_wx_<mode>): Add new |
| pattern to match vwsubu.wx. |
| |
| 2025-10-10 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/vector.md (fmax<mode>3): Restrict to no trapping |
| math. |
| (fmin<mode>3): Ditto. |
| |
| 2025-10-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (mode_iterator CCANY): Add CCFP and CCEQ. |
| |
| 2025-10-10 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/122223 |
| * config/arm/mve.md (@mve_vbicq_f<mode>): Fix operands order. |
| |
| 2025-10-10 Andrew Stubbs <ams@baylibre.com> |
| |
| * tree-vect-stmts.cc: Fix VEC_STMT parameter comments throughout. |
| |
| 2025-10-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): Improve Apple |
| M3 and add Apple M4 cores. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Add apple-m4 core to the ones listed |
| for arch and tune selections. |
| |
| 2025-10-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122111 |
| * tree-ssa-math-opts.cc (build_and_insert_cast): Remove |
| conversion simplification, instead use gimple_convert. |
| |
| 2025-10-10 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/arm/arm.cc (arm_builtin_support_vector_misalignment): |
| Remove use of type. |
| |
| 2025-10-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122225 |
| * tree-cfg.cc (verify_gimple_return): Look at DECL_RESULT |
| for DECL_BY_REFERENCE. |
| |
| 2025-10-10 YunQiang Su <yunqiang@isrc.iscas.ac.cn> |
| |
| Revert: |
| 2025-09-27 Jie Mei <jie.mei@oss.cipunited.com> |
| |
| * config/mips/mips.cc(mips_option_override):Add conditions |
| for use of the -mmips16e2 and -mips16 option. |
| |
| 2025-10-09 David Faust <david.faust@oracle.com> |
| |
| * doc/extend.texi (Common Function Attributes) |
| (Common Variable Attributes): Document btf_decl_tag attribute. |
| (Common Type Attributes): Document btf_type_tag attribute. |
| |
| 2025-10-09 David Faust <david.faust@oracle.com> |
| |
| * btfout.cc (get_btf_kind): Handle DECL_TAG and TYPE_TAG kinds. |
| (btf_calc_num_vbytes): Likewise. |
| (btf_asm_type): Likewise. |
| (output_asm_btf_vlen_bytes): Likewise. |
| (output_btf_tags): New. |
| (btf_output): Call it here. |
| (btf_add_used_type): Replace with simple wrapper around... |
| (btf_add_used_type_1): ...the implementation. Handle |
| BTF_KIND_DECL_TAG and BTF_KIND_TYPE_TAG. |
| (btf_add_vars): Update btf_add_used_type call. |
| (btf_assign_tag_ids): New. |
| (btf_mark_type_used): Update btf_add_used_type call. |
| (btf_collect_pruned_types): Likewise. Handle type and decl tags. |
| (btf_finish): Call btf_assign_tag_ids. |
| |
| 2025-10-09 David Faust <david.faust@oracle.com> |
| |
| * ctfc.cc (ctf_dtu_d_union_selector): Handle CTF_K_DECL_TAG and |
| CTF_K_TYPE_TAG. |
| (ctf_add_type_tag, ctf_add_decl_tag): New. |
| (ctf_add_variable): Return the new ctf_dvdef_ref rather than zero. |
| (new_ctf_container): Initialize new members. |
| (ctfc_delete_container): Deallocate new members. |
| * ctfc.h (ctf_dvdef, ctf_dvdef_t, ctf_dvdef_ref): Move forward |
| declarations earlier in file. |
| (ctf_decl_tag_t): New typedef. |
| (ctf_dtdef): Add ctf_decl_tag_t member to dtd_u union. |
| (ctf_dtu_d_union_enum): Add new CTF_DTU_D_TAG enumerator. |
| (ctf_container): Add ctfc_tags vector and ctfc_type_tags_map hash_map |
| members. |
| (ctf_add_type_tag, ctf_add_decl_tag): New function protos. |
| (ctf_add_variable): Change prototype return type to ctf_dvdef_ref. |
| * dwarf2ctf.cc (gen_ctf_type_tags, gen_ctf_decl_tags) |
| (gen_ctf_decl_tags_for_var): New static functions. |
| (gen_ctf_pointer_type): Handle type tags. |
| (gen_ctf_sou_type): Handle decl tags. |
| (gen_ctf_function_type): Likewise. |
| (gen_ctf_variable): Likewise. |
| (gen_ctf_function): Likewise. |
| (gen_ctf_type): Handle TAG_GNU_annotation DIEs. |
| |
| 2025-10-09 David Faust <david.faust@oracle.com> |
| |
| * dwarf2out.cc (struct annotation_node, struct annotation_node_hasher) |
| (btf_tag_htab): New ancillary structures and hash table. |
| (annotation_node_hasher::hash, annotation_node_hasher::equal): New. |
| (hash_btf_tag, gen_btf_tag_dies, maybe_gen_btf_type_tag_dies) |
| (maybe_gen_btf_decl_tag_dies): New functions. |
| (modified_type_die): Add new argument to pass type attributes. |
| Handle btf_type_tag, and update recursive calls. |
| (base_type_for_mode): Add new arg for modified_type_die call. |
| (add_type_attribute): Likewise. |
| (gen_array_type_die): Call maybe_gen_btf_type_tag_dies for the type. |
| (gen_formal_parameter_die): Call maybe_gen_btf_decl_tag_dies for the |
| parameter. |
| (override_type_for_decl_p): Add new arg for modified_type_die call. |
| (force_type_die): Likewise. |
| (gen_tagged_type_die): Call maybe_gen_btf_type_tag_dies for the type. |
| (gen_decl_die): Call maybe_gen_btf_decl_tag_dies for the decl. |
| (dwarf2out_finish): Empty btf_tag_htab. |
| (dwarf2out_cc_finalize): Delete btf_tag_htab hash table. |
| |
| 2025-10-09 Jakub Jelinek <jakub@redhat.com> |
| |
| * ginclude/stdarg.h (va_start): Use __builtin_c23_va_start |
| also for C++26. |
| (__STDC_VERSION_STDARG_H__): Also define for C++26. |
| |
| 2025-10-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-global-context.cc: Define INCLUDE_VECTOR. |
| * diagnostics/buffering.cc: Likewise. |
| * diagnostics/context.cc (context::finish): Call |
| finalize_extensions on each sink. |
| (sink::dump): Dump any extensions. |
| (sink::finalize_extensions): New. |
| * diagnostics/macro-unwinding.cc: Define INCLUDE_VECTOR. |
| * diagnostics/selftest-context.cc: Likewise. |
| * diagnostics/sink.h (class sink::extension): New. |
| (sink::add_extension): New. |
| (sink::finalize_extensions): New decl. |
| (sink::m_extensions): New member. |
| * gcc.cc: Define INCLUDE_VECTOR. |
| * langhooks.cc: Likewise. |
| * opts.cc: Likewise. |
| * tree-diagnostic-client-data-hooks.cc: Likewise. |
| * tree-diagnostic.cc: Likewise. |
| |
| 2025-10-09 Filip Kastl <fkastl@suse.cz> |
| |
| * Makefile.in: Add gimple-ssa-pta-constraints.cc. |
| * tree-ssa-structalias.cc (determine_global_memory_access): |
| External linkage, move to namespace pointer_analysis. |
| (fndecl_maybe_in_other_partition): External linkage, move to |
| namespace pointer_analysis. |
| (new_var_info): External linkage, move to namespace |
| pointer_analysis. |
| (create_variable_info_for): Move to |
| gimple-ssa-pta-constraints.cc. |
| (lookup_vi_for_tree): External linkage, move to namespace |
| pointer_analysis, move to gimple-ssa-pta-constraints.cc. |
| (type_can_have_subvars): Move to gimple-ssa-pta-constraints.cc. |
| (make_param_constraints): Move to gimple-ssa-pta-constraints.cc. |
| (get_call_vi): Move to gimple-ssa-pta-constraints.cc. |
| (lookup_call_use_vi): External linkage, move to namespace |
| pointer_analysis, move to gimple-ssa-pta-constraints.cc. |
| (lookup_call_clobber_vi): External linkage, move to namespace |
| pointer_analysis, move to gimple-ssa-pta-constraints.cc. |
| (get_call_use_vi): Move to gimple-ssa-pta-constraints.cc. |
| (get_call_clobber_vi): Move to gimple-ssa-pta-constraints.cc. |
| (get_constraint_for_1): Move to gimple-ssa-pta-constraints.cc. |
| (get_constraint_for): Move to gimple-ssa-pta-constraints.cc. |
| (get_constraint_for_rhs): Move to gimple-ssa-pta-constraints.cc. |
| (do_deref): Move to gimple-ssa-pta-constraints.cc. |
| (constraint_pool): Move to gimple-ssa-pta-constraints.cc. |
| (new_constraint): Move to gimple-ssa-pta-constraints.cc. |
| (insert_vi_for_tree): Move to gimple-ssa-pta-constraints.cc. |
| (alias_get_name): Move to gimple-ssa-pta-constraints.cc. |
| (get_vi_for_tree): Move to gimple-ssa-pta-constraints.cc. |
| (new_scalar_tmp_constraint_exp): Move to |
| gimple-ssa-pta-constraints.cc. |
| (get_constraint_for_ssa_var): Move to |
| gimple-ssa-pta-constraints.cc. |
| (process_constraint): Move to gimple-ssa-pta-constraints.cc. |
| (bitpos_of_field): Move to gimple-ssa-pta-constraints.cc. |
| (get_constraint_for_ptr_offset): Move to |
| gimple-ssa-pta-constraints.cc. |
| (get_constraint_for_component_ref): Move to |
| gimple-ssa-pta-constraints.cc. |
| (get_constraint_for_address_of): Move to |
| gimple-ssa-pta-constraints.cc. |
| (process_all_all_constraints): Move to |
| gimple-ssa-pta-constraints.cc. |
| (do_structure_copy): Move to gimple-ssa-pta-constraints.cc. |
| (make_constraints_to): Move to gimple-ssa-pta-constraints.cc. |
| (make_constraint_to): Move to gimple-ssa-pta-constraints.cc. |
| (make_constraint_from): Move to gimple-ssa-pta-constraints.cc. |
| (make_copy_constraint): Move to gimple-ssa-pta-constraints.cc. |
| (make_escape_constraint): Move to gimple-ssa-pta-constraints.cc. |
| (make_indirect_escape_constraint): Move to |
| gimple-ssa-pta-constraints.cc. |
| (make_transitive_closure_constraints): Move to |
| gimple-ssa-pta-constraints.cc. |
| (make_any_offset_constraints): Move to |
| gimple-ssa-pta-constraints.cc. |
| (struct obstack fake_var_decl_obstack): Move to |
| gimple-ssa-pta-constraints.cc. |
| (build_fake_var_decl): Move to gimple-ssa-pta-constraints.cc. |
| (make_heapvar): Move to gimple-ssa-pta-constraints.cc. |
| (make_constraint_from_restrict): Move to |
| gimple-ssa-pta-constraints.cc. |
| (make_constraint_from_global_restrict): Move to |
| gimple-ssa-pta-constraints.cc. |
| (get_function_part_constraint): Move to |
| gimple-ssa-pta-constraints.cc. |
| (handle_call_arg): Move to gimple-ssa-pta-constraints.cc. |
| (handle_rhs_call): Move to gimple-ssa-pta-constraints.cc. |
| (handle_lhs_call): Move to gimple-ssa-pta-constraints.cc. |
| (get_fi_for_callee): Move to gimple-ssa-pta-constraints.cc. |
| (find_func_aliases_for_call_arg): Move to |
| gimple-ssa-pta-constraints.cc. |
| (find_func_aliases_for_builtin_call): Move to |
| gimple-ssa-pta-constraints.cc. |
| (find_func_aliases_for_call): Move to |
| gimple-ssa-pta-constraints.cc. |
| (find_func_aliases): Move to gimple-ssa-pta-constraints.cc. |
| (process_ipa_clobber): Move to gimple-ssa-pta-constraints.cc. |
| (find_func_clobbers): Move to gimple-ssa-pta-constraints.cc. |
| (struct fieldoff): Move to gimple-ssa-pta-constraints.cc. |
| (fieldoff_compare): Move to gimple-ssa-pta-constraints.cc. |
| (sort_fieldstack): Move to gimple-ssa-pta-constraints.cc. |
| (var_can_have_subvars): Move to gimple-ssa-pta-constraints.cc. |
| (type_must_have_pointers): Move to |
| gimple-ssa-pta-constraints.cc. |
| (field_must_have_pointers): Move to |
| gimple-ssa-pta-constraints.cc. |
| (push_fields_onto_fieldstack): Move to |
| gimple-ssa-pta-constraints.cc. |
| (count_num_arguments): Move to gimple-ssa-pta-constraints.cc. |
| (create_function_info_for): Move to |
| gimple-ssa-pta-constraints.cc. |
| (check_for_overlaps): Move to gimple-ssa-pta-constraints.cc. |
| (create_variable_info_for_1): Move to |
| gimple-ssa-pta-constraints.cc. |
| (intra_create_variable_infos): Move to |
| gimple-ssa-pta-constraints.cc. |
| (init_base_vars): Move to gimple-ssa-pta-constraints.cc. |
| (init_constraint_builder): Move to |
| gimple-ssa-pta-constraints.cc. |
| (delete_constraint_builder): Move to |
| gimple-ssa-pta-constraints.cc. |
| (intra_build_constraints): Move to |
| gimple-ssa-pta-constraints.cc. |
| (delete_points_to_sets): Move to gimple-ssa-pta-constraints.cc. |
| (associate_varinfo_to_alias): Move to |
| gimple-ssa-pta-constraints.cc |
| (refered_from_nonlocal_fn): Move to |
| gimple-ssa-pta-constraints.cc |
| (refered_from_nonlocal_var): Move to |
| gimple-ssa-pta-constraints.cc |
| (ipa_create_function_infos): Move to |
| gimple-ssa-pta-constraints.cc |
| (ipa_create_global_variable_infos): Move to |
| gimple-ssa-pta-constraints.cc |
| (ipa_build_constraints): Move to gimple-ssa-pta-constraints.cc |
| * tree-ssa-structalias.h (struct constraint_stats): |
| (determine_global_memory_access): External linkage, move to |
| namespace pointer_analysis. |
| (fndecl_maybe_in_other_partition): External linkage, move to |
| namespace pointer_analysis. |
| (new_var_info): External linkage, move to namespace |
| pointer_analysis. |
| * gimple-ssa-pta-constraints.cc: New file. |
| * gimple-ssa-pta-constraints.h: New file. |
| |
| 2025-10-09 Filip Kastl <fkastl@suse.cz> |
| |
| * tree-ssa-structalias.cc (init_constraint_builder): New |
| function. |
| (delete_constraint_builder): New function. |
| (compute_points_to_sets): Put constraint building into |
| intra_build_constraints and call it. |
| (intra_build_constraints): New function. |
| (delete_points_to_sets): Put cleanup of constraint builder |
| global vars into delete_constraint_builder and call it. |
| (ipa_pta_execute): Put constraint building into |
| ipa_build_constraints and call it. |
| (ipa_create_function_infos): New function. |
| (ipa_create_global_variable_infos): New function. |
| (ipa_build_constraints): New function. |
| |
| 2025-10-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa-protos.h (xtensa_constantsynth): Remove. |
| * config/xtensa/xtensa.cc |
| (#include): Remove "context.h" and "pass_manager.h". |
| (machine_function): Remove "litpool_usage" member. |
| (xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI, |
| xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth): Remove. |
| (constantsynth_method_lshr_m1, split_hwi_to_MOVI_ADDMI, |
| constantsynth_method_16bits, constantsynth_method_32bits, |
| constantsynth_method_square): New worker function related to |
| constant synthesis methods. |
| (constantsynth_method_info, constantsynth_methods): |
| New structure representing the list of all constant synthesis |
| methods. |
| (constantsynth_info): New structure that stores internal |
| information for "constantsynth". |
| (constantsynth_pass1, verify_synth_seq, constantsynth_pass2): |
| New functions that are the core of "constantsynth". |
| (do_largeconst): Add a call to constantsynth_pass1() to the insn |
| enumeration loop, and add a call to constantsynth_pass2() to the |
| end of this function. |
| * config/xtensa/xtensa.md (SHI): Remove. |
| (The two auxiliary define_splits for mov[sh]i_internal): Remove. |
| (The two auxiliary define_splits for movsf_internal): Remove. |
| |
| 2025-10-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa-protos.h |
| (xtensa_split_DI_reg_imm): Remove. |
| * config/xtensa/xtensa.cc (xtensa_split_DI_reg_imm): Remove. |
| (split_DI_SF_DF_const): New worker function. |
| (do_largeconst): Add a call to split_DI_SF_DF_const() to the insn |
| enumeration loop. |
| * config/xtensa/xtensa.md (movdi): Remove split code when the |
| source is constant. |
| (movdi_internal): Add a new constraint pair (a, Y) to the second |
| of the existing constraint alternatives. |
| (The auxiliary define_split for movdi_internal): Remove. |
| |
| 2025-10-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xt_full_rtx_costs): |
| New struct, derived from full_rtx_costs. |
| (FPreg_neg_scaled_simm12b_1, FPreg_neg_scaled_simm12b): |
| New worker functions. |
| (do_largeconst): Add a call to FPreg_neg_scaled_simm12b() to the |
| insn enumeration loop. |
| |
| 2025-10-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/constraints.md (Y): |
| Change to reference xtensa_postreload_completed_p() instead of |
| xtensa_split1_finished_p(). |
| * config/xtensa/predicates.md (move_operand): Ditto. |
| * config/xtensa/t-xtensa (PASSES_EXTRA): |
| Add xtensa-passes.def as target-specific pass description. |
| * config/xtensa/xtensa-passes.def: |
| New definition file that inserts pass_xtensa_largeconst after |
| pass_postreload_cse. |
| * config/xtensa/xtensa-protos.h (xtensa_split1_finished_p): Remove. |
| (xtensa_postreload_completed_p, make_pass_xtensa_largeconst): |
| New function prototypes. |
| * config/xtensa/xtensa.cc (machine_function): |
| Add a new member "postreload_completed". |
| (xtensa_emit_move_sequence): |
| Change to reference xtensa_postreload_completed_p() instead of |
| can_create_pseudo_p(). |
| (xtensa_split1_finished_p): Remove. |
| (xtensa_postreload_completed_p): New function. |
| (xtensa_legitimate_constant_p): Change to also consider |
| xtensa_postreload_completed_p(). |
| (litpool_set_src_1, litpool_set_src, do_largeconst, |
| rest_of_handle_largeconst): |
| New sub-functions for pass_xtensa_largeconst. |
| (pass_data_xtensa_largeconst, pass_xtensa_largeconst): |
| New target-specific pass definition. |
| (make_pass_xtensa_largeconst): |
| New function called by the pass manager. |
| * config/xtensa/xtensa.md |
| (The auxiliary define_split for movdi_internal): |
| Change to reference xtensa_postreload_completed_p() instead of |
| xtensa_split1_finished_p(). |
| (The first of three auxiliary define_splits for mov[sh]i_internal): |
| Remove. |
| |
| 2025-10-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc |
| (TARGET_MD_ASM_ADJUST): New macro definition. |
| (xtensa_md_asm_adjust): New function prototype and definition, that |
| prepends all 'g'-constraints in the "constraints" vector with 'n', |
| if neither TARGET_CONST16 nor TARGET_AUTO_LITPOOLS is enabled. |
| |
| 2025-10-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122212 |
| * tree-ssa-forwprop.cc (simplify_count_zeroes): Apply |
| bias for CLZ after dealing with the zero special value. |
| |
| 2025-10-09 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-protos.h (vls_mode_valid_p): New argument |
| allow_up_to_lmul_8. |
| * config/riscv/riscv-v.cc (autovectorize_vector_modes): Set |
| allow_up_to_lmul_8 to false. |
| (vls_mode_valid_p): Add new argument allow_up_to_lmul_8, and use |
| it to determine whether to allow LMUL 8. |
| |
| 2025-10-09 Prathamesh Kulkarni <prathameshk@nvidia.com> |
| Matthew Malcolmson <mmalcolmson@nvidia.com> |
| |
| PR driver/81358 |
| * common.opt: New option -flink-libatomic. |
| * gcc.cc (LINK_LIBATOMIC_SPEC): New macro. |
| * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Use LINK_LIBATOMIC_SPEC. |
| * config/arm/uclinux-elf.h: Likewise. |
| * config/arm/unknown-elf.h: Likewise. |
| * config/avr/avrlibc.h: Likewise. |
| * config/bfin/linux.h: Likewise. |
| * config/darwin.h: Likewise. |
| * config/gnu-user.h: Likewise. |
| * config/lm32/uclinux-elf.h: Likewise. |
| * config/rs6000/linux64.h: Likewise. |
| * config/rs6000/rtems.h: Likewise. |
| * config/sparc/sparc.h: Likewise. |
| * doc/invoke.texi: Document -flink-libatomic. |
| * configure.ac: Define TARGET_PROVIDES_LIBATOMIC. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * common.opt.urls: Regenerate. |
| |
| 2025-10-09 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_builtin_support_vector_misalignment): |
| Remove type. |
| * config/arm/arm.cc (arm_builtin_support_vector_misalignment): |
| Ditto. |
| * config/epiphany/epiphany.cc (epiphany_support_vector_misalignment): |
| Ditto. |
| * config/gcn/gcn.cc (gcn_vectorize_support_vector_misalignment): |
| Ditto. |
| * config/loongarch/loongarch.cc (loongarch_builtin_support_vector_misalignment): |
| Ditto. |
| * config/riscv/riscv.cc (riscv_support_vector_misalignment): |
| Ditto. |
| * config/rs6000/rs6000.cc (rs6000_builtin_support_vector_misalignment): |
| Ditto. |
| * config/s390/s390.cc (s390_support_vector_misalignment): |
| Ditto. |
| * doc/tm.texi: Adjust vector misalignment docs. |
| * target.def: Ditto. |
| * targhooks.cc (default_builtin_support_vector_misalignment): |
| Remove type. |
| * targhooks.h (default_builtin_support_vector_misalignment): |
| Ditto. |
| * tree-vect-data-refs.cc (vect_can_force_dr_alignment_p): |
| Set misalignment for gather/scatter and remove type. |
| (vect_supportable_dr_alignment): Ditto. |
| |
| 2025-10-09 Sam James <sam@gentoo.org> |
| |
| PR c++/117219 |
| * doc/invoke.texi (-fstrict-aliasing): Explain that type-punning |
| through a union in C++ is supported as a GNU extension. |
| |
| 2025-10-09 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi: Add missing full stop. |
| |
| 2025-10-09 Sam James <sam@gentoo.org> |
| |
| PR tree-optimization/18501 |
| * doc/invoke.texi (-Wmaybe-uninitialized): Mention interaction with |
| CCP. |
| |
| 2025-10-08 Antoni Boucher <bouanto@zoho.com> |
| |
| * configure: Regenerate. |
| |
| 2025-10-08 Trevor Gross <tmgross@umich.edu> |
| |
| PR target/115054 |
| * config/i386/i386.cc (function_arg_ms_64, |
| function_value_ms_64): Pass and return _Float16 in vector |
| registers on Windows. |
| |
| 2025-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/110223 |
| PR tree-optimization/122128 |
| * tree-vect-patterns.cc (vect_recog_bool_pattern): Add |
| compensation for mixed mask/data bitwise operations. |
| |
| 2025-10-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-patterns.cc (integer_type_for_mask): Only |
| reject vect_external_defs. |
| |
| 2025-10-08 Richard Biener <rguenther@suse.de> |
| |
| * doc/tm.texi.in (JIT Language and ABI): Add menu item. |
| * doc/tm.texi: Re-generate. |
| |
| 2025-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/110223 |
| * tree-vect-patterns.cc (vect_recog_bool_pattern): Fix |
| mistakes in the store-from-mask bool pattern. Add |
| required mask conversions. |
| |
| 2025-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/105490 |
| * tree-vect-patterns.cc (build_mask_conversion): Move earlier. |
| (vect_convert_mask_for_vectype): Likewise. |
| (vect_recog_bool_pattern): Remove redundant truth type |
| construction. Add missing possibly required mask conversion. |
| |
| 2025-10-08 Antoni Boucher <bouanto@zoho.com> |
| |
| PR jit/112466 |
| * Makefile.in (tm_jit_file_list, tm_jit_include_list, TM_JIT_H, |
| JIT_TARGET_DEF, JIT_TARGET_H, JIT_TARGET_OBJS): New variables. |
| (tm_jit.h, cs-tm_jit.h, jit/jit-target-hooks-def.h, |
| s-jit-target-hooks-def-h, default-jit.o): New rules. |
| (s-tm-texi): Also check timestamp on jit-target.def. |
| (generated_files): Add TM_JIT_H and jit/jit-target-hooks-def.h. |
| (build/genhooks.o): Also depend on JIT_TARGET_DEF. |
| * config.gcc (tm_jit_file, jit_target_objs, target_has_targetjitm): |
| New variables. |
| * config/i386/t-i386 (i386-jit.o): New rule. |
| * configure: Regenerate. |
| * configure.ac (tm_jit_file_list, tm_jit_include_list, |
| jit_target_objs): Add substitutes. |
| * doc/tm.texi: Regenerate. |
| * doc/tm.texi.in (targetjitm): Document. |
| (target_has_targetjitm): Document. |
| * genhooks.cc: Include jit/jit-target.def. |
| * config/default-jit.cc: New file. |
| * config/i386/i386-jit.cc: New file. |
| * config/i386/i386-jit.h: New file. |
| |
| 2025-10-07 Alfie Richards <alfie.richards@arm.com> |
| |
| * doc/tm.texi: Regenerate. |
| * doc/tm.texi.in: Add documentation for TARGET_HAS_FMV_TARGET_ATTRIBUTE. |
| |
| 2025-10-07 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/122187 |
| * config/avr/avr.cc (avr_out_extr, avr_out_extr_not): |
| Make a local copy of the passed rtx[] operands. |
| |
| 2025-10-07 Jonathan Wakely <jwakely@redhat.com> |
| |
| * config/i386/i386-features.cc |
| (general_scalar_chain::vector_const_cost): Fix spelling in |
| comment. |
| * ipa-prop.h (enum jump_func_type): Likewise. |
| * tree-vectorizer.cc (try_vectorize_loop_1): Likewise. |
| |
| 2025-10-07 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| PR target/121845 |
| * config/riscv/riscv-v.cc (shuffle_series_patterns): |
| Modulo indices for VLA and punt when wrapping for VLS. |
| |
| 2025-10-07 Raphael Moreira Zinsly <rzinsly@ventanamicro.com> |
| |
| PR target/122124 |
| * config/riscv/riscv-v.cc (shuffle_slide_patterns): Check if |
| the second pivot is in OP1 and improve comments. |
| |
| 2025-10-07 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121921 |
| * match.pd (`-(a ptrdiff b)`): Extend for a nop_convert |
| between the neg and ptrdiff. |
| |
| 2025-10-07 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122083 |
| * tree-ssa-phiopt.cc (single_trailing_store_in_bb): Rename to ... |
| (trailing_store_in_bb): This and take new argument to check for |
| only store. |
| (cond_if_else_store_replacement_limited): Update to use |
| trailing_store_in_bb. |
| (cond_if_else_store_replacement): Loop until |
| cond_if_else_store_replacement_limited returns false. |
| (pass_phiopt::execute): Instead of calling cond_if_else_store_replacement_limited |
| once, also loop on it. |
| |
| 2025-10-06 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122155 |
| * tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Don't |
| create a phi if the 2 rhs are the same. |
| |
| 2025-10-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/122122 |
| * tree-cfgcleanup.cc (tree_forwarder_block_p): Cleanup. |
| * tree-ssa-dce.cc (propagate_counts): New function. |
| (eliminate_unnecessary_stmts): Use it. |
| |
| 2025-10-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * params.opt (-param=auto-profile-bbs=): Add missing full stop after |
| description. |
| |
| 2025-10-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/121206 |
| * value-range.cc (irange::intersect_bitmask): Always call |
| set_range_from_bitmask if the bitmask changes. |
| |
| 2025-10-06 Sam James <sam@gentoo.org> |
| |
| PR rtl-optimization/111619 |
| * doc/install.texi (Building a native compiler): Discuss STAGE1_CFLAGS. |
| |
| 2025-10-06 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| PR target/121599 |
| * config/aarch64/aarch64-sve-builtins.cc |
| (function_expander::use_cond_insn): Use add_fixed_operand if |
| fallback_arg == CONST0_RTX (mode). |
| |
| 2025-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122131 |
| * tree-vect-data-refs.cc (vect_supportable_dr_alignment): Do |
| not use re-align loads for gathers. |
| |
| 2025-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122158 |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): Handle |
| bit-precision result. |
| |
| 2025-10-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/122133 |
| * stmt.cc (resolve_asm_operand_names): Handle % and 2 letters followed |
| by open square. |
| |
| 2025-10-06 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122142 |
| * generic-match-head.cc: Include gimple-iterator.h |
| and gimple-fold.h. |
| * gimple-fold.cc (gimple_fold_builtin_constant_p): Use |
| fold_before_rtl_expansion_p. |
| (gimple_fold_builtin_assume_aligned): Likewise. |
| (gimple_fold_builtin_stdarg): Likewise. |
| (gimple_fold_call): Likewise. |
| * gimple-fold.h: Include "tree-pass.h". |
| (fold_before_rtl_expansion_p): New function. |
| * match.pd: Use fold_before_rtl_expansion_p |
| instead of `cfun->curr_properties & PROP_last_full_fold`. |
| * tree-ssa-forwprop.cc (simplify_builtin_memcmp): Likewise. |
| (optimize_stack_restore): Likewise. |
| |
| 2025-10-05 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/122150 |
| * config/i386/i386-expand.cc (setmem_epilogue_gen_val): Duplicate |
| OP if its size is smaller than MODE size. |
| |
| 2025-10-05 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.h (FUNCTION_BOUNDARY): Set to 32. |
| |
| 2025-10-05 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*widen_waddu_wx_<mode>): Add new |
| pattern to match vwaddu.wx. |
| |
| 2025-10-05 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Refactor the form 1 of SAT_MUL by keyword for. |
| |
| 2025-10-04 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122143 |
| * tree-ssa-forwprop.cc (pass_forwprop::execute): Restrict setting |
| TODO_update_address_taken only when the statement was a call before fold_stmt. |
| |
| 2025-10-04 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122153 |
| * tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Handle |
| stores of empty constructors too. |
| |
| 2025-10-04 Matteo Nicoli <matteo.nicoli001@gmail.com> |
| |
| PR tree-optimization/117760 |
| * match.pd: Add simplifications that exploit implied values after |
| logical tests. |
| |
| 2025-10-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/122104 |
| * tree-ssa-math-opts.cc (maybe_optimize_guarding_check): Call |
| reset_flow_sensitive_info_in_bb on bb when optimizing out the |
| guarding condition. |
| |
| 2025-10-04 Raphael Moreira Zinsly <rzinsly@ventanamicro.com> |
| |
| PR target/122114 |
| * config/riscv/riscv.cc |
| (riscv_allocate_and_probe_stack_space): Change initial_cfa_offset |
| type. |
| |
| 2025-10-04 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/122147 |
| * config/riscv/predicates.md (move_operand): Only allow a REG as the |
| operand of a SUBREG. |
| |
| 2025-10-04 Zhongyao Chen <chenzhongyao.hit@gmail.com> |
| |
| PR target/118945 |
| * config/riscv/riscv.cc (riscv_prefer_agnostic_p): New function. |
| (riscv_tune_param): Add prefer_agnostic member. |
| (various tune info structures): Initialize prefer_agnostic. |
| * config/riscv/riscv-protos.h (riscv_prefer_agnostic_p): Add |
| prototype. |
| * config/riscv/riscv-v.cc (get_prefer_tail_policy, |
| get_prefer_mask_policy): Use riscv_prefer_agnostic_p. |
| * config/riscv/riscv-vsetvl.cc (vsetvl_info::get_demand_flags): |
| demand policy for agnostic when prefer_agnostic is true. |
| |
| 2025-10-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/114457 |
| * flag-types.h (enum auto_init_type): Add AUTO_INIT_CXX26. |
| * tree.h (VACUOUS_INIT_LABEL_P): Define. |
| * gimplify.cc (is_var_need_auto_init): Renamed to ... |
| (var_needs_auto_init_p): ... this. Don't return true for |
| vars with "indeterminate" attribute. Formatting fixes. |
| (gimplify_decl_expr): Use var_needs_auto_init_p instead of |
| is_var_need_auto_init. |
| (emit_warn_switch_unreachable): Remove the flag_auto_var_init |
| special cases. |
| (warn_switch_unreachable_and_auto_init_r): Handle them here |
| by doing just returning NULL. |
| (last_stmt_in_scope): Don't skip just debug stmts to find |
| the last stmt in seq, skip for |
| flag_auto_var_init > AUTO_INIT_UNINITIALIZED also IFN_DEFERRED_INIT |
| calls. |
| (collect_fallthrough_labels): For |
| flag_auto_var_init > AUTO_INIT_UNINITIALIZED ignore |
| IFN_DEFERRED_INIT calls and GIMPLE_GOTOs to |
| VACUOUS_INIT_LABEL_P. |
| (should_warn_for_implicit_fallthrough): For |
| flag_auto_var_init > AUTO_INIT_UNINITIALIZED also skip over |
| IFN_DEFERRED_INIT calls. |
| (expand_FALLTHROUGH_r): Likewise, and handle GIMPLE_GOTOs |
| to VACUOUS_INIT_LABEL_P. |
| (gimplify_init_constructor): Use var_needs_auto_init_p instead |
| of is_var_need_auto_init and for flag_auto_var_init |
| AUTO_INIT_CXX26 don't call gimple_add_padding_init_for_auto_var. |
| (gimplify_target_expr): If var_needs_auto_init_p and init has |
| void type, call gimple_add_init_for_auto_var and for |
| AUTO_INIT_PATTERN also gimple_add_padding_init_for_auto_var. |
| * tree-ssa-uninit.cc (maybe_warn_operand): Handle loads from *this |
| at the start of the function with "clobber *this" attribute on the |
| PARM_DECL. |
| * ipa-split.cc (split_function): Remove "clobber *this" attribute |
| from the first PARM_DECL (if any). |
| * doc/invoke.texi (ftrivial-auto-var-init=): Adjust documentation. |
| |
| 2025-10-04 Nathaniel Shead <nathanieloshead@gmail.com> |
| |
| PR c++/117658 |
| * doc/invoke.texi: Document '-Wno-external-tu-local'. |
| |
| 2025-10-03 David Malcolm <dmalcolm@redhat.com> |
| |
| Revert: |
| 2025-10-03 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add |
| custom-sarif-properties/digraphs.o and |
| custom-sarif-properties/state-graphs.o. Remove |
| diagnostics/state-graphs.o. |
| * configure: Regenerate. |
| * configure.ac: Add custom-sarif-properties to subdir iteration. |
| * custom-sarif-properties/digraphs.cc: New file. |
| * custom-sarif-properties/digraphs.h: New file. |
| * custom-sarif-properties/state-graphs.cc: New file. |
| * custom-sarif-properties/state-graphs.h: New file. |
| * diagnostics/diagnostics-selftests.cc |
| (run_diagnostics_selftests): Drop call of state_graphs_cc_tests. |
| * diagnostics/diagnostics-selftests.h (state_graphs_cc_tests): |
| Delete decl. |
| * diagnostics/digraphs.cc: Include |
| "custom-sarif-properties/digraphs.h". Move include of |
| "selftest.h" to within CHECKING_P section. |
| (using digraph_object): New. |
| (namespace properties): New. |
| (diagnostics::digraphs::object::get_attr): Delete. |
| (diagnostics::digraphs::object::set_attr): Delete. |
| (diagnostics::digraphs::object::set_json_attr): Delete. |
| (digraph_object::get_property): New definitions, for various |
| property types. |
| (digraph_object::set_property): Likewise. |
| (digraph_object::maybe_get_property): New. |
| (digraph_object::get_property_as_tristate): New. |
| (digraph_object::ensure_property_bag): New. |
| (digraph::get_graph_kind): New. |
| (digraph::set_graph_kind): New. |
| Add include of "custom-sarif-properties/state-graphs.h". |
| (selftest::test_simple_graph): Rewrite to use json::property |
| instances rather than string attribute names. |
| (selftest::test_property_objects): New test. |
| (selftest::digraphs_cc_tests): Call it. |
| * diagnostics/digraphs.h: Include "tristate.h". |
| (object::get_attr): Delete. |
| (object::set_attr): Delete. |
| (object::get_property): New decls. |
| (object::set_property): New decls. |
| (object::maybe_get_property): New. |
| (object::get_property_as_tristate): New. |
| (object::set_json_attr): Delete. |
| (object::ensure_property_bag): New. |
| (graph::get_graph_kind): New. |
| (graph::set_graph_kind): New. |
| * diagnostics/html-sink.cc |
| (html_generation_options::html_generation_options): Update for |
| field renamings. |
| (html_generation_options::dump): Likewise. |
| (html_builder::maybe_make_state_diagram): Likewise. |
| (html_builder::add_graph): Show SARIF and .dot src inline, if |
| requested. |
| * diagnostics/html-sink.h |
| (html_generation_options::m_show_state_diagrams_sarif): Rename |
| to... |
| (html_generation_options::m_show_graph_sarif): ...this. |
| (html_generation_options::m_show_state_diagrams_dot_src): Rename |
| to... |
| (html_generation_options::m_show_graph_dot_src0): ...this. |
| * diagnostics/output-spec.cc |
| (html_scheme_handler::maybe_handle_kv): Rename keys. |
| (html_scheme_handler::get_keys): Likewise. |
| * diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to |
| use json::property instances found within custom_sarif_properties |
| throughout, rather than types in diagnostics::state_graphs. |
| * diagnostics/state-graphs.cc: Deleted file. |
| * diagnostics/state-graphs.h: Delete almost all, except decl of |
| diagnostics::state_graphs::make_dot_graph. |
| * doc/invoke.texi: Update for changes to "experimental-html" sink |
| keys. |
| * json.cc (json::object::set_string): New. |
| (json::object::set_integer): New. |
| (json::object::set_bool): New. |
| (json::object::set_array_of_string): New. |
| * json.h: Include "label-text.h". |
| (struct json::property): New template. |
| (json::string_property): New. |
| (json::integer_property): New. |
| (json::bool_property): New. |
| (json::json_property): New. |
| (using json::array_of_string_property): New. |
| (struct json::enum_traits): New. |
| (enum_json::property): New. |
| (json::value::dyn_cast_array): New vfunc. |
| (json::value::dyn_cast_integer_number): New vfunc. |
| (json::value::set_string): New. |
| (json::value::set_integer): New. |
| (json::value::set_bool): New. |
| (json::value::set_array_of_string): New. |
| (json::value::maybe_get_enum): New. |
| (json::value::set_enum): New. |
| (json::array::dyn_cast_array): New. |
| (json::integer_number::dyn_cast_integer_number): New. |
| (object::maybe_get_enum): New. |
| (object::set_enum): New. |
| |
| 2025-10-03 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/121937 |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Make |
| sure we've got a scalar_int_mode before calling neg_poly_int_rtx. |
| |
| 2025-10-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121762 |
| * passes.def: Remove both pass_fold_builtin. |
| Swap out pass_copy_prop for pass_forwprop with |
| full_walk = false and last=true. |
| * tree-pass.h (make_pass_fold_builtins): Remove. |
| * tree-ssa-ccp.cc (class pass_fold_builtins): Delete. |
| (pass_fold_builtins::execute): Delete. |
| (make_pass_fold_builtins): Remove. |
| * doc/passes.texi (Folding built-in functions): Remove. |
| |
| 2025-10-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121762 |
| * gimple-isel.cc (gimple_nop_atomic_bit_test_and_p): New decl. |
| (gimple_nop_convert): Likewise. |
| (convert_atomic_bit_not): Moved from tree-ssa-ccp.cc. |
| (optimize_atomic_bit_test_and): Likewise. |
| (optimize_atomic_op_fetch_cmp_0): Likewise. |
| (gimple_isel_builtin_call): New function. |
| (CASE_ATOMIC): Moved from tree-ssa-ccp.cc. |
| (CASE_ATOMIC_CMP0): Likewise. |
| (CASE_ATOMIC_BIT_TEST_AND): Likewise. |
| (pass_gimple_isel::execute): For calls just call gimple_isel_builtin_call. |
| * tree-ssa-ccp.cc (convert_atomic_bit_not): Move to gimple-isel.cc. |
| (gimple_nop_atomic_bit_test_and_p): Likewise. |
| (gimple_nop_convert): Likewise. |
| (optimize_atomic_bit_test_and): Likewise. |
| (optimize_atomic_op_fetch_cmp_0): Likewise. |
| (pass_fold_builtins::execute): Just call fold_stmt for internal |
| or normal bultin calls. |
| (CASE_ATOMIC): Move to gimple-isel.cc. |
| (CASE_ATOMIC_CMP0): Likewise. |
| (CASE_ATOMIC_BIT_TEST_AND): Likewise. |
| |
| 2025-10-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-ccp.cc (CASE_ATOMIC): New defined. |
| (CASE_ATOMIC_CMP0): New define. |
| (CASE_ATOMIC_BIT_TEST_AND): New defined. |
| (pass_fold_builtins::execute): Use CASE_ATOMIC, CASE_ATOMIC_CMP0, |
| and CASE_ATOMIC_BIT_TEST_AND. |
| |
| 2025-10-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121762 |
| * gimple-fold.cc (gimple_fold_builtin_stdarg): New function, |
| moved from tree-ssa-ccp.cc (optimize_stdarg_builtin). |
| (gimple_fold_builtin): Call gimple_fold_builtin_stdarg for |
| va_start, va_copy and va_end. |
| * tree-ssa-ccp.cc (optimize_stdarg_builtin): Remove. |
| (pass_fold_builtins::execute): Remove handling of |
| va_start, va_copy and va_end. |
| * tree-ssa-forwprop.cc (pass_forwprop::execute): Update |
| todos if fold_stmt return true if last forwprop to include |
| TODO_update_address_taken. |
| |
| 2025-10-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121762 |
| * tree-ssa-ccp.cc (optimize_unreachable): Move to tree-ssa-forwprop.cc |
| (pass_fold_builtins::execute): Remove handling of __builtin_unreachable. |
| * tree-ssa-forwprop.cc (optimize_unreachable): New function from |
| tree-ssa-ccp.cc. Change argument to bb. Remove check on first statement |
| being the __builtin_unreachable since it is handled already. |
| (pass_forwprop::execute): Handle first statement as being __builtin_unreachable |
| by calling optimize_unreachable. |
| |
| 2025-10-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121762 |
| * tree-ssa-ccp.cc (optimize_stack_restore): Move to tree-ssa-forwprop.cc. |
| (pass_fold_builtins::execute): Don't call optimize_stack_restore. |
| * tree-ssa-forwprop.cc (optimize_stack_restore): New function from |
| tree-ssa-ccp.cc. Return bool instead of value, use replace_call_with_value |
| istead of returning integer_zero_node. |
| (simplify_builtin_call): Call optimize_stack_restore. |
| |
| 2025-10-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122033 |
| * tree-ssa-ccp.cc (optimize_stack_restore): Rewrite the call check. |
| Update comment in the front to new rules on calls. |
| * tree.h (fndecl_builtin_alloc_p): New function. |
| |
| 2025-10-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121762 |
| * gimple-fold.cc (gimple_fold_call): Remove ASSUME internal function |
| calls when PROP_last_full_fold is set. |
| * tree-ssa-ccp.cc (pass_fold_builtins::execute): Handling folding |
| of all internal functions. |
| |
| 2025-10-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-ccp.cc (optimize_stdarg_builtin): Mannually create the |
| gimple statements instead of depending on the gimplifier. |
| (pass_fold_builtins::execute): Handle updated call to optimize_stdarg_builtin. |
| |
| 2025-10-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-ccp.cc (optimize_memcmp_eq): Remove. |
| (pass_fold_builtins::execute): Remove handling of memcmp. |
| * tree-ssa-forwprop.cc (simplify_builtin_memcmp): Add folding |
| of memcmp to memcmp_eq for PROP_last_full_fold. |
| |
| 2025-10-02 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add |
| custom-sarif-properties/digraphs.o and |
| custom-sarif-properties/state-graphs.o. Remove |
| diagnostics/state-graphs.o. |
| * configure: Regenerate. |
| * configure.ac: Add custom-sarif-properties to subdir iteration. |
| * custom-sarif-properties/digraphs.cc: New file. |
| * custom-sarif-properties/digraphs.h: New file. |
| * custom-sarif-properties/state-graphs.cc: New file. |
| * custom-sarif-properties/state-graphs.h: New file. |
| * diagnostics/diagnostics-selftests.cc |
| (run_diagnostics_selftests): Drop call of state_graphs_cc_tests. |
| * diagnostics/diagnostics-selftests.h (state_graphs_cc_tests): |
| Delete decl. |
| * diagnostics/digraphs.cc: Include |
| "custom-sarif-properties/digraphs.h". Move include of |
| "selftest.h" to within CHECKING_P section. |
| (using digraph_object): New. |
| (namespace properties): New. |
| (diagnostics::digraphs::object::get_attr): Delete. |
| (diagnostics::digraphs::object::set_attr): Delete. |
| (diagnostics::digraphs::object::set_json_attr): Delete. |
| (digraph_object::get_property): New definitions, for various |
| property types. |
| (digraph_object::set_property): Likewise. |
| (digraph_object::maybe_get_property): New. |
| (digraph_object::get_property_as_tristate): New. |
| (digraph_object::ensure_property_bag): New. |
| (digraph::get_graph_kind): New. |
| (digraph::set_graph_kind): New. |
| Add include of "custom-sarif-properties/state-graphs.h". |
| (selftest::test_simple_graph): Rewrite to use json::property |
| instances rather than string attribute names. |
| (selftest::test_property_objects): New test. |
| (selftest::digraphs_cc_tests): Call it. |
| * diagnostics/digraphs.h: Include "tristate.h". |
| (object::get_attr): Delete. |
| (object::set_attr): Delete. |
| (object::get_property): New decls. |
| (object::set_property): New decls. |
| (object::maybe_get_property): New. |
| (object::get_property_as_tristate): New. |
| (object::set_json_attr): Delete. |
| (object::ensure_property_bag): New. |
| (graph::get_graph_kind): New. |
| (graph::set_graph_kind): New. |
| * diagnostics/html-sink.cc |
| (html_generation_options::html_generation_options): Update for |
| field renamings. |
| (html_generation_options::dump): Likewise. |
| (html_builder::maybe_make_state_diagram): Likewise. |
| (html_builder::add_graph): Show SARIF and .dot src inline, if |
| requested. |
| * diagnostics/html-sink.h |
| (html_generation_options::m_show_state_diagrams_sarif): Rename |
| to... |
| (html_generation_options::m_show_graph_sarif): ...this. |
| (html_generation_options::m_show_state_diagrams_dot_src): Rename |
| to... |
| (html_generation_options::m_show_graph_dot_src0): ...this. |
| * diagnostics/output-spec.cc |
| (html_scheme_handler::maybe_handle_kv): Rename keys. |
| (html_scheme_handler::get_keys): Likewise. |
| * diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to |
| use json::property instances found within custom_sarif_properties |
| throughout, rather than types in diagnostics::state_graphs. |
| * diagnostics/state-graphs.cc: Deleted file. |
| * diagnostics/state-graphs.h: Delete almost all, except decl of |
| diagnostics::state_graphs::make_dot_graph. |
| * doc/invoke.texi: Update for changes to "experimental-html" sink |
| keys. |
| * json.cc (json::object::set_string): New. |
| (json::object::set_integer): New. |
| (json::object::set_bool): New. |
| (json::object::set_array_of_string): New. |
| * json.h: Include "label-text.h". |
| (struct json::property): New template. |
| (json::string_property): New. |
| (json::integer_property): New. |
| (json::bool_property): New. |
| (json::json_property): New. |
| (using json::array_of_string_property): New. |
| (struct json::enum_traits): New. |
| (enum_json::property): New. |
| (json::value::dyn_cast_array): New vfunc. |
| (json::value::dyn_cast_integer_number): New vfunc. |
| (json::value::set_string): New. |
| (json::value::set_integer): New. |
| (json::value::set_bool): New. |
| (json::value::set_array_of_string): New. |
| (json::value::maybe_get_enum): New. |
| (json::value::set_enum): New. |
| (json::array::dyn_cast_array): New. |
| (json::integer_number::dyn_cast_integer_number): New. |
| (object::maybe_get_enum): New. |
| (object::set_enum): New. |
| |
| 2025-10-02 Aurelien Jarno <aurelien@aurel32.net> |
| |
| PR target/121652 |
| * config/riscv/riscv.md (round_pattern): special case NaN input |
| instead of saving/restoring fflags. |
| |
| 2025-10-02 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/output-spec.cc: (scheme_handler::parse_bool_value): |
| Convert to... |
| (key_handler::parse_bool_value): ...this. |
| (scheme_handler::parse_enum_value): Convert to... |
| (key_handler::parse_enum_value): ...this. |
| (struct text_scheme_handler::decoded_args): Eliminate, moving |
| fields into class text_scheme_handler. |
| (text_scheme_handler::text_scheme_handler): Initialize the new |
| fields. |
| Add a "dc" param and use it to initialize m_show_color. |
| (struct sarif_scheme_handler::decoded_args): Eliminate, moving |
| fields into class sarif_scheme_handler. |
| (sarif_scheme_handler::sarif_scheme_handler): Initialize the new |
| fields. |
| (struct html_scheme_handler::decoded_args): Eliminate, moving |
| fields into class html_scheme_handler. |
| (html_scheme_handler::html_scheme_handler): Initialize the new |
| fields. |
| (context::report_unknown_key): Get keys from scheme rather than |
| passing them in. Support client keys. |
| (context::parse_and_make_sink): Pass dc to output_factory ctor. |
| (output_factory::output_factory): Pass dc to text_scheme_handler. |
| (output_factory::get_scheme_handler): Make return non-const. |
| (output_factory::make_sink): Move key-handling here, rather than |
| in individual sinks. |
| (context::handle_kv): New. |
| (text_scheme_handler::make_sink): Eliminate key decoding. |
| (text_scheme_handler::decode_kv): Convert to... |
| (text_scheme_handler::maybe_handle_kv): ...this... |
| (text_scheme_handler::get_keys): ...and this. |
| (sarif_scheme_handler::make_sink): Eliminate key decoding. |
| (sarif_scheme_handler::decode_kv): Convert to... |
| (sarif_scheme_handler::maybe_handle_kv): ...this... |
| (sarif_scheme_handler::get_keys): ...and this. |
| (html_scheme_handler::make_sink): Eliminate key decoding. |
| (html_scheme_handler::decode_kv): Convert to... |
| (html_scheme_handler::maybe_handle_kv): ...this... |
| (html_scheme_handler::get_keys): ...and this. |
| (struct selftest::parser_test): Add "client_keys" arg, and update |
| for new param ordering. |
| (selftest::parser_test::parse_and_make_sink): New. |
| (selftest::test_output_arg_parsing): Move auto-fixes to caller. |
| (class selftest::test_key_handler): New. |
| (selftest::test_client_arg_parsing): New test. |
| (selftest::output_spec_cc_tests): Call it. |
| * diagnostics/output-spec.h (class key_handler): New. |
| (class scheme_handler): Move here from output-spec.cc. |
| (context::report_unknown_key): Simplify params. |
| (context::handle_kv): Update params. |
| (context::context): Add "client_keys" param. |
| (context::m_client_keys): New field. |
| (struct dc_spec_context): Update order of params. Add |
| "client_keys" param. |
| * libgdiagnostics.cc (spec_context::spec_context): Pass nullptr |
| for client keys. |
| * opts-diagnostic.cc (opt_spec_context::opt_spec_context): |
| Likewise. Update for new param ordering. |
| |
| 2025-10-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_reduction): Do not allow |
| mask reductions. |
| |
| 2025-10-02 Jan Hubicka <jh@suse.cz> |
| H.J. Lu <hjl.tools@gmail.com> |
| |
| * cfghooks.cc (merge_blocks): Fix typo in the previous change. |
| |
| 2025-10-02 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/122051 |
| * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): Implement |
| directly rather than using vector_length_operand. |
| |
| 2025-10-02 H.J. Lu <hjl.tools@gmail.com> |
| |
| * aclocal.m4: Regenerated. |
| * configure: Likewise. |
| |
| 2025-10-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122079 |
| * tree-ssa-pre.cc (compute_antic_aux): Re-instantiate |
| ANTIC_IN value pruning by the old solution. |
| |
| 2025-10-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122079 |
| * tree-ssa-pre.cc (prune_clobbered_mems): Do not prune |
| values when the maximum expression set is involved. |
| |
| 2025-10-01 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/122106 |
| * config/riscv/bitmanip.md (crc expanders): Add predicate for |
| polynomial argument. Drop unnecessary constraints. |
| |
| 2025-10-01 Andreas Schwab <schwab@linux-m68k.org> |
| |
| PR target/122066 |
| * config/m68k/m68k.md (adddi3, subdi3): Strip POST_INC and PRE_DEC |
| when generating high part of the destination operand. |
| |
| 2025-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (afdo_calculate_branch_prob): Improve dump file. |
| |
| 2025-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (determine_scale): Break out from ... |
| (afdo_adjust_guessed_profile): ... here. |
| (scale_bb_profile): New function. |
| (afdo_annotate_cfg): Use it. |
| * params.opt (auto-profile-bbs): New parmaeter. |
| * doc/invoke.texi (auto-profile-bbs): Document. |
| |
| 2025-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (afdo_unscaled_edge_count): New function based on |
| part of ... |
| (afdo_set_bb_count): ... this function; use it here. |
| (afdo_calculate_branch_prob): Try to determine edge counts using |
| phi args and goto locuses. |
| |
| 2025-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * Makefile.in (ALL_FDAS): New variable. |
| (ALL_HOST_BACKEND_OBJ): Use all.fda instead of cc1plus.fda |
| (all.fda): New target |
| |
| 2025-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfghooks.cc (merge_blocks): Choose more reliable or higher BB |
| count. |
| |
| 2025-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.cc (unlikely_executed_stmt_p): Remove redundant check. |
| (rebuild_frequencies): Also recompute unlikely bbs when profile is |
| present or consistent. |
| |
| 2025-10-01 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/120560 |
| * vr-values.cc (range_from_loop_direction): Use wi::ge_p rather |
| than wi::gt_p. |
| |
| 2025-10-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122110 |
| * tree-vect-loop.cc (vectorizable_reduction): Relax restriction |
| to mode-precision operations. |
| |
| 2025-09-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/output-spec.cc (text_scheme_handler::make_sink): Use |
| the value of the "color" to determine if the sink's printer is |
| colorized. |
| |
| 2025-09-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/output-spec.cc: Add comments. Introduce a |
| "struct decoded_args" within each scheme_handler subclass, |
| and split out per-scheme key-value parsing from each make_sink |
| implementation into new per-scheme decode_kv member functions. |
| |
| 2025-09-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/output-spec.cc: Move class scheme_handler out from |
| inside class output_factory. |
| |
| 2025-09-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/output-spec.cc: Rename "parsed_arg" to |
| "scheme_and_kvs" throughout. Rename "unparsed_arg" to |
| "unparsed_spec" throughout, and make a member of |
| output_spec::context rather than passing it around. |
| * diagnostics/output-spec.h: Likewise. |
| * libgdiagnostics.cc: Likewise. |
| * opts-diagnostic.cc: Likewise. |
| |
| 2025-09-30 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_functions_b_resolvable_from_a): New |
| function. |
| (TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A): New define. |
| * doc/tm.texi: Regenerate. |
| * doc/tm.texi.in: Add documentation for |
| TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A. |
| * multiple_target.cc (redirect_to_specific_clone): Add new optimisation |
| logic. |
| (ipa_target_clone): Remove check for TARGET_HAS_FMV_TARGET_ATTRIBUTE. |
| * target.def: Document new hook.. |
| * attribs.cc: (functions_b_resolvable_from_a) New function. |
| * attribs.h: (functions_b_resolvable_from_a) New function. |
| |
| 2025-09-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * auto-profile.h (maybe_hot_afdo_count_p): Fix comment typos, |
| possiby -> possibly and ture -> true. |
| * gimplify.cc (build_asan_poison_call_expr): Change "of a for" |
| to "memory of the" in a comment. |
| * ipa-devirt.cc (add_type_duplicate): Fix comment typo, |
| mangles -> mangled. |
| * auto-profile.cc: Fix comment typo, -fauto-profile-inlinig |
| -> -fauto-profile-inlining. |
| (maybe_hot_afdo_count_p): Fix comment typos, possiby -> possibly |
| and ture -> true. |
| (function_instance::removed_icall_target): Fix comment typo, |
| Reutrn -> Return. |
| (function_instance::in_worklist_): Fix comment typo, Ture -> True. |
| (function_instance::offline): Fix comment typo, tolevel -> toplevel. |
| (function_instance::match): Fix comment typo, craeate_gcov -> |
| create_gcov. |
| (autofdo_source_profile::offline_external_functions): Fix comment |
| typos, tolevel -> toplevel and porfile -> profile. |
| (autofdo_source_profile::get_function_instance_by_inline_stack): Fix |
| comment typo, chekcing -> checking. |
| (struct scale): Fix comment typo, scalle -> scale. |
| * gimple.h (currently_expanding_gimple_stmt): Fix comment typo, |
| comminucating -> communicating. |
| * tree.h (canonical_type_used_p): Fix comment typo, ture -> true. |
| * tree-ssa-alias.cc (types_equal_for_same_type_for_tbaa_p): Likewise. |
| * ipa-profile.cc (contains_hot_call_p): Likewise. |
| * cfgexpand.cc (add_scope_conflicts_2): Fix comment typos, |
| Querry -> Query, referendd -> referenced and Querrying -> Querying. |
| * ipa-param-manipulation.cc (currently_expanding_gimple_stmt): Fix |
| comment typo, comminucating -> communicating. |
| * ipa-prop.cc (ipa_cst_ref_desc::refcount): Fix comment typo, |
| if -> is. |
| * tree-if-conv.cc (version_loop_for_if_conversion): Fix comment typos, |
| porfile -> profile and confistency -> consistency. |
| * fold-const.cc: Change size_int_wide in comment to size_int as |
| size_int_wide doesn't exit for 21 years. |
| |
| 2025-09-30 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (function_instance::match): Sanity check |
| that gimple PHI has no location. |
| * tree-cfg.cc (assign_discriminators): Also remap locations |
| of gimple PHI arguments. |
| |
| 2025-09-30 Jan Hubicka <hubicka@ucw.cz> |
| |
| * basic-block.h (GCOV_COMPUTE_SCALE): Remove. |
| * ipa-profile.cc (ipa_profile_generate_summary): Use |
| profile-count scaling. |
| * sched-rgn.cc (compute_trg_info): Likewise. |
| |
| 2025-09-30 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (stmt_loc_used_by_debug_info): New function. |
| (autofdo_source_profile::get_count_info): Use it. |
| (afdo_set_bb_count): Likewise. |
| (afdo_vpt_for_early_inline): Likewise. |
| |
| 2025-09-30 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * gimple-lower-bitint.cc (bitint_precision_kind): Fix inconsistency in |
| results between first and consecutive calls to this function. |
| |
| 2025-09-28 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/121970 |
| * config/i386/i386-options.cc (ix86_target_string): Remove |
| store_max. |
| (ix86_debug_options): Ditto. |
| (ix86_function_specific_print): Ditto. |
| (ix86_valid_target_attribute_tree): Ditto. |
| (ix86_option_override_internal): Ditto. |
| * config/i386/i386-expand.cc (ix86_expand_builtin): Ditto. |
| * config/i386/i386-options.h (ix86_target_string): Ditto. |
| * config/i386/i386.h (MOVE_MAX): Ditto. |
| (STORE_MAX_PIECES): Set by move_max. |
| * config/i386/i386.opt: Deprecate mmove-max=. |
| * config/i386/x86-tune.def (X86_TUNE_AVX256_STORE_BY_PIECES): |
| Removed. |
| (X86_TUNE_AVX512_STORE_BY_PIECES): Ditto. |
| |
| 2025-09-28 Peter Damianov <peter0x44@disroot.org> |
| |
| * pretty-print.cc (decode_utf8_char): Move forward declaration. |
| (mingw_utf8_str_to_utf16_str): New function to convert UTF-8 to UTF-16. |
| (is_console_handle): New function to detect Windows console handles. |
| (write_all): Add UTF-8 to UTF-16 conversion for console output, |
| falling back to WriteFile for ASCII strings and regular files. |
| |
| 2025-09-27 ChengLulu <chenglulu@loongson.cn> |
| |
| PR target/99217 |
| * config/mips/mips.cc (mips_start_function_definition): |
| Implements the functionality of '-fpatchable-function-entry='. |
| (mips_print_patchable_function_entry): Define empty function. |
| (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define macro. |
| |
| 2025-09-27 Jie Mei <jie.mei@oss.cipunited.com> |
| |
| * config/mips/mips.cc(mips_option_override):Add conditions |
| for use of the -mmips16e2 and -mips16 option. |
| |
| 2025-09-27 Jie Mei <jie.mei@oss.cipunited.com> |
| |
| * config/mips/mips.md (fms<mode>4): Generates MSUBF.fmt |
| instructions. |
| (*fms<mode>4_msubf): Same as above. |
| (fnma<mode>4): Same as above. |
| (*fnma<mode>4_msubf): Same as above. |
| |
| 2025-09-26 Alejandro Colomar <alx@kernel.org> |
| |
| * doc/extend.texi: Clarify documentation about lists of |
| parameter forward declarations, and mention that more than one |
| of them are unnecessary. |
| * doc/invoke.texi: Document the new |
| -Wmultiple-parameter-fwd-decl-lists. |
| |
| 2025-09-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (afdo_propagate_edge): Fix handling of precize 0 |
| counts. |
| |
| 2025-09-26 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn.cc |
| (gcn_vectorize_support_vector_misalignment): Allow any alignment, as |
| long as it's not packed. |
| |
| 2025-09-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile-count.h (profile_probability::operator/): Do not cap |
| twice. |
| (profile_probability::operator/=): Likewise. |
| (profile_probability::apply_scale): Do not watch for overflow. |
| (profile_count::probability_in): Watch overflow. |
| |
| 2025-09-26 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/121875 |
| * config/loongarch/loongarch.cc |
| (loongarch_can_inline_p): New function. |
| (TARGET_CAN_INLINE_P): Define. |
| |
| 2025-09-25 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/invoke.texi (Warning Options): Use "bitwise" over |
| "bit-wise". |
| * doc/extend.texi (Vector Extensions): Use "elementwise" |
| over "element-wise". |
| * doc/md.texi (Standard Names): Ditto. |
| |
| 2025-09-25 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (Vector Extensions): Fix grammar. |
| |
| 2025-09-25 Xi Ruoyao <xry111@xry111.site> |
| |
| * doc/invoke.texi (-ffp-int-builtin-inexact): Reword to match |
| the default value with the default C standard. |
| |
| 2025-09-24 Dusan Stojkovic <Dusan.Stojkovic@rt-rk.com> |
| |
| PR target/121778 |
| * config/riscv/riscv.md: Add define_split pattern. |
| |
| 2025-09-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121762 |
| * gimple-fold.cc (gimple_fold_builtin_assume_aligned): New function. |
| (gimple_fold_builtin): Call gimple_fold_builtin_assume_aligned |
| for BUILT_IN_ASSUME_ALIGNED. |
| * tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove handling |
| of BUILT_IN_ASSUME_ALIGNED. |
| |
| 2025-09-24 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| * config/aarch64/aarch64.md: Include neoversev2.md. |
| * config/aarch64/tuning_models/neoversev2.h: Enable dispatch |
| scheduling and add dispatch constraints. |
| * config/aarch64/neoversev2.md: New file and new instruction attribute |
| neoversev2_dispatch. |
| |
| 2025-09-24 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| * config.gcc: Add aarch64-sched-dispatch.o to extra_objs. |
| * config/aarch64/aarch64-protos.h (struct tune_params): New |
| field for dispatch scheduling. |
| (struct dispatch_constraint_info): New struct for dispatch scheduling. |
| * config/aarch64/aarch64-tuning-flags.def |
| (AARCH64_EXTRA_TUNING_OPTION): New flag to enable dispatch scheduling. |
| * config/aarch64/aarch64.cc (TARGET_SCHED_DISPATCH): Implement |
| target hook. |
| (TARGET_SCHED_DISPATCH_DO): Likewise. |
| (aarch64_override_options_internal): Add check for definition of |
| dispatch constraints if dispatch-scheduling tune flag is set. |
| * config/aarch64/t-aarch64: Add aarch64-sched-dispatch.o. |
| * config/aarch64/tuning_models/a64fx.h: Initialize fields for |
| dispatch scheduling in tune_params. |
| * config/aarch64/tuning_models/ampere1.h: Likewise. |
| * config/aarch64/tuning_models/ampere1a.h: Likewise. |
| * config/aarch64/tuning_models/ampere1b.h: Likewise. |
| * config/aarch64/tuning_models/cortexa35.h: Likewise. |
| * config/aarch64/tuning_models/cortexa53.h: Likewise. |
| * config/aarch64/tuning_models/cortexa57.h: Likewise. |
| * config/aarch64/tuning_models/cortexa72.h: Likewise. |
| * config/aarch64/tuning_models/cortexa73.h: Likewise. |
| * config/aarch64/tuning_models/cortexx925.h: Likewise. |
| * config/aarch64/tuning_models/emag.h: Likewise. |
| * config/aarch64/tuning_models/exynosm1.h: Likewise. |
| * config/aarch64/tuning_models/fujitsu_monaka.h: Likewise. |
| * config/aarch64/tuning_models/generic.h: Likewise. |
| * config/aarch64/tuning_models/generic_armv8_a.h: Likewise. |
| * config/aarch64/tuning_models/generic_armv9_a.h: Likewise. |
| * config/aarch64/tuning_models/neoverse512tvb.h: Likewise. |
| * config/aarch64/tuning_models/neoversen1.h: Likewise. |
| * config/aarch64/tuning_models/neoversen2.h: Likewise. |
| * config/aarch64/tuning_models/neoversen3.h: Likewise. |
| * config/aarch64/tuning_models/neoversev1.h: Likewise. |
| * config/aarch64/tuning_models/neoversev2.h: Likewise. |
| * config/aarch64/tuning_models/neoversev3.h: Likewise. |
| * config/aarch64/tuning_models/neoversev3ae.h: Likewise. |
| * config/aarch64/tuning_models/olympus.h: Likewise. |
| * config/aarch64/tuning_models/qdf24xx.h: Likewise. |
| * config/aarch64/tuning_models/saphira.h: Likewise. |
| * config/aarch64/tuning_models/thunderx.h: Likewise. |
| * config/aarch64/tuning_models/thunderx2t99.h: Likewise. |
| * config/aarch64/tuning_models/thunderx3t110.h: Likewise. |
| * config/aarch64/tuning_models/thunderxt88.h: Likewise. |
| * config/aarch64/tuning_models/tsv110.h: Likewise. |
| * config/aarch64/tuning_models/xgene1.h: Likewise. |
| * config/aarch64/aarch64-sched-dispatch.cc: New file for |
| dispatch scheduling for aarch64. |
| * config/aarch64/aarch64-sched-dispatch.h: New header file. |
| |
| 2025-09-24 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| * config/aarch64/aarch64-sve.md: Annotate instructions with |
| attribute sve_type. |
| * config/aarch64/aarch64-sve2.md: Likewise. |
| * config/aarch64/aarch64.md (sve_type): New attribute sve_type. |
| * config/aarch64/iterators.md (sve_type_unspec): New int attribute. |
| (sve_type_int): New code attribute. |
| (sve_type_fp): New int attribute. |
| |
| 2025-09-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/116816 |
| * tree-vect-stmts.cc (get_load_store_type): Allow multi-lane |
| single-element interleaving to fall back to VMAT_ELEMENTWISE. |
| Fall back to VMAT_ELEMENTWISE when we cannot handle a load |
| permutation. |
| (vectorizable_load): Do not check a load permutation |
| for VMAT_ELEMENTWISE. Handle grouped loads with |
| VMAT_ELEMENTWISE and directly apply a load permutation. |
| |
| 2025-09-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (get_load_store_type): Explicitly fail |
| when we end up with VMAT_ELEMENTWISE for BB vectorization. |
| |
| 2025-09-24 Xi Ruoyao <xry111@xry111.site> |
| |
| PR tree-optimization/122040 |
| * doc/invoke.texi (-fisolate-erroneous-paths-dereference): |
| Mention it also turns division by zero into a trap in addition |
| to null dereference. |
| |
| 2025-09-24 Xi Ruoyao <xry111@xry111.site> |
| |
| PR middle-end/66462 |
| * config/loongarch/loongarch.md (FCLASS_MASK): Add 3. |
| (fclass_optab): Assign isnan for 3. |
| (<FCLASS_MASK:fclass_optab><ANYF:mode>2): If FCLASS_MASK is 3, |
| only enable when -fsignaling-nans. |
| |
| 2025-09-24 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add pattern of mult and reuse the widen-mul |
| by for keyword. |
| |
| 2025-09-23 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/121986 |
| * diagnostics/sarif-sink.cc: Include "intl.h". |
| (sarif_builder::make_message_describing_fix_it_hint): New. |
| (sarif_builder::make_fix_object): Attempt to auto-generate a |
| description for fix-it hints. |
| |
| 2025-09-23 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/121810 |
| * config/arm/mve.md (mve_mov<mode>): Move the Ui constraint |
| and pool_range attributes to the final alternative. Fix |
| the forward range value and correctly name the negative |
| range. |
| |
| 2025-09-23 Pan Li <pan2.li@intel.com> |
| |
| PR middle-end/122031 |
| * tree-ssa-math-opts.cc (build_and_insert_cast): Fix the typo |
| of self assignment. |
| |
| 2025-09-23 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_process_target_version_attr): |
| Remove warning. |
| * config/aarch64/aarch64.opt: Mark -Wno-experimental-fmv-target |
| deprecated. |
| * doc/invoke.texi: Ditto. |
| |
| 2025-09-23 Alfie Richards <alfie.richards@arm.com> |
| |
| * attribs.cc (is_function_default_version): Update to handle |
| target_clones. |
| * cgraph.h (FOR_EACH_FUNCTION_REMOVABLE): New macro. |
| * multiple_target.cc (expand_target_clones): Update logic to delete |
| empty target_clones and modify diagnostic. |
| (ipa_target_clone): Update to use FOR_EACH_FUNCTION_REMOVABLE. |
| |
| 2025-09-23 Alfie Richards <alfie.richards@arm.com> |
| |
| * attribs.h (common_function_versions): Removed. |
| * attribs.cc (common_function_versions): Removed. |
| * config/aarch64/aarch64.cc (aarch64_common_function_versions): Removed. |
| (aarch64_same_function_versions): New function to check if two version |
| strings imply the same version. |
| (TARGET_OPTION_FUNCTION_VERSIONS): Removed. |
| (TARGET_OPTION_SAME_FUNCTION_VERSIONS): New macro. |
| * config/i386/i386.cc (TARGET_OPTION_FUNCTION_VERSIONS): Removed. |
| * config/rs6000/rs6000.cc (TARGET_OPTION_FUNCTION_VERSIONS): Removed. |
| * config/riscv/riscv.cc (riscv_same_function_versions): New function |
| to check if two version strings imply the same version. |
| (riscv_common_function_versions): Removed. |
| (TARGET_OPTION_FUNCTION_VERSIONS): Removed. |
| (TARGET_OPTION_SAME_FUNCTION_VERSIONS): New macro. |
| * doc/tm.texi: Regenerated. |
| * target.def: Remove common_version hook and add same_function_version |
| hook. |
| * doc/tm.texi.in: Ditto. |
| * tree.cc (distinct_version_decls): New function. |
| (mergeable_version_decls): Ditto. |
| * tree.h (distinct_version_decls): New function. |
| (mergeable_version_decls): Ditto. |
| * hooks.h (hook_stringslice_stringslice_unreachable): New function. |
| * hooks.cc (hook_stringslice_stringslice_unreachable): New function. |
| |
| 2025-09-23 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/118313 |
| * cgraph.cc (delete_function_version): Made public static member of |
| cgraph_node. |
| * cgraph.h (delete_function_version): Ditto. |
| * cgraphunit.cc (analyze_functions): Add logic for target version |
| dependencies. |
| * ipa.cc (symbol_table::remove_unreachable_nodes): Ditto. |
| * multiple_target.cc (create_dispatcher_calls): Change to support |
| target version semantics. |
| (ipa_target_clone): Change to dispatch all function sets in |
| target_version semantics, and to have early and late pass. |
| (expand_target_clones): Add logic for cases of target_clones with no |
| defaults. |
| (is_simple_target_clones_case): New function. |
| (class pass_target_clone): New parameter for early or late pass. |
| * config/aarch64/aarch64.cc: (aarch64_get_function_versions_dispatcher): |
| Refactor with the assumption that the DECL node will be default. |
| * config/riscv/riscv.cc: (riscv_get_function_versions_dispatcher): |
| Refactor with the assumption that the DECL node will be default. |
| * passes.def: Split target_clones pass into early and late version. |
| |
| 2025-09-23 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/118339 |
| * target.def: Add check_target_clone_version hook. |
| * tree.cc (get_clone_attr_versions): Add filter argument. |
| (get_clone_versions): Add filter argument. |
| * tree.h (get_clone_attr_versions): Add filter. |
| (get_clone_versions): Add filter argument. |
| * config/aarch64/aarch64.cc (aarch64_check_target_clone_version): |
| New function |
| (TARGET_CHECK_TARGET_CLONE_VERSION): New define. |
| * config/riscv/riscv.cc (riscv_check_target_clone_version): |
| New function. |
| (TARGET_CHECK_TARGET_CLONE_VERSION): New define. |
| * doc/tm.texi: Regenerated. |
| * doc/tm.texi.in: Add documentation for new hook. |
| * hooks.h (hook_stringslice_locationtptr_true): New function. |
| * hooks.cc (hook_stringslice_locationtptr_true): New function. |
| |
| 2025-09-23 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/riscv/riscv-protos.h (riscv_process_target_version_str): New function.. |
| * config/riscv/riscv-target-attr.cc (riscv_process_target_attr): Refactor to take |
| string_slice. |
| (riscv_process_target_version_str): New function. |
| * config/riscv/riscv.cc (parse_features_for_version): Refactor to take |
| string_slice. |
| (riscv_compare_version_priority): Ditto. |
| (dispatch_function_versions): Change to pass location. |
| |
| 2025-09-23 Alfie Richards <alfie.richards@arm.com> |
| |
| * attribs.cc (make_dispatcher_decl): Move duplicated cgraph logic into |
| this function and change to use targetm.mangle_decl_assembler_name for |
| mangling. |
| * cgraph.cc (cgraph_node::insert_new_function_version): Record |
| assembler_name. |
| * cgraph.h (struct cgraph_function_version_info): Add assembler_name. |
| (struct cgraph_node): Add dispatcher_resolver_function and |
| is_target_clone. |
| * config/aarch64/aarch64.cc (aarch64_parse_fmv_features): Change to |
| support string_slice. |
| (aarch64_process_target_version_attr): Ditto. |
| (get_feature_mask_for_version): Ditto. |
| (aarch64_mangle_decl_assembler_name): Add logic for mangling dispatched |
| symbol and resolver. |
| (get_suffixed_assembler_name): Removed. |
| (make_resolver_func): Refactor to use |
| aarch64_mangle_decl_assembler_name for mangling. |
| (aarch64_generate_version_dispatcher_body): Remove remangling. |
| (aarch64_get_function_versions_dispatcher): Refactor to remove |
| duplicated cgraph logic. |
| * config/i386/i386-features.cc |
| (ix86_mangle_function_version_assembler_name): Refactor to use |
| clone_identifier and to mangle default. |
| (ix86_mangle_decl_assembler_name): Add logic for mangling dispatched |
| symbol and resolver. |
| (ix86_get_function_versions_dispatcher): Remove duplicated cgraph |
| logic. |
| (make_resolver_func): Refactor to use ix86_mangle_decl_assembler_name |
| for mangling. |
| * config/riscv/riscv.cc (riscv_mangle_decl_assembler_name): Add logic |
| for FMV mangling. |
| (get_suffixed_assembler_name): Removed. |
| (make_resolver_func): Refactor to use riscv_mangle_decl_assembler_name |
| for mangling. |
| (riscv_generate_version_dispatcher_body): Remove unnecessary remangling. |
| (riscv_get_function_versions_dispatcher): Remove duplicated cgraph |
| logic. |
| * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): New |
| function. |
| (rs6000_get_function_versions_dispatcher): Remove duplicated cgraph |
| logic. |
| (make_resolver_func): Refactor to use rs6000_mangle_decl_assembler_name |
| for mangling. |
| (rs6000_mangle_function_version_assembler_name): New function. |
| * multiple_target.cc (create_dispatcher_calls): Remove mangling code. |
| (get_attr_str): Removed. |
| (separate_attrs): Ditto. |
| (is_valid_asm_symbol): Removed. |
| (create_new_asm_name): Ditto. |
| (expand_target_clones): Refactor to use |
| targetm.mangle_decl_assembler_name for mangling and be more general. |
| * tree.cc (get_target_clone_attr_len): Removed. |
| * tree.h (get_target_clone_attr_len): Removed. |
| |
| 2025-09-23 Alfie Richards <alfie.richards@arm.com> |
| |
| * cgraph.h (clone_identifier): New function. |
| * cgraphclones.cc (clone_identifier): New function. |
| (clone_function_name): Refactored to use clone_identifier. |
| (is_valid_asm_symbol): New helper function. |
| |
| 2025-09-23 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/121994 |
| * config/i386/x86-tune-costs.h (znver2_cost): Set |
| vect_unroll_limit to 1. |
| (znver1_cost): Ditto. |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| Adjust count number for {AVX256,AVX512}_SPLIT_REGS. |
| |
| 2025-09-22 Peter Bergner <bergner@tenstorrent.com> |
| |
| PR target/121982 |
| * config/riscv/tt-ascalon-d8.md (tt_ascalon_d8_vec_idiv_byte): New |
| define_insn_reservation. |
| |
| 2025-09-22 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121762 |
| * builtins.cc (fold_builtin_constant_p): Make non-static. |
| * builtins.h (fold_builtin_constant_p): New declaration. |
| * gimple-fold.cc (gimple_fold_builtin_constant_p): New function. |
| (gimple_fold_builtin): Call gimple_fold_builtin_constant_p |
| for BUILT_IN_CONSTANT_P. |
| * tree-ssa-ccp.cc (pass_fold_builtins::execute): Set PROP_last_full_fold |
| on curr_properties. Remove handling of BUILT_IN_CONSTANT_P. |
| |
| 2025-09-22 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/libgdiagnostics/index.rst: Drop broken reference to |
| `modindex`. |
| |
| 2025-09-22 Pan Li <pan2.li@intel.com> |
| |
| PR middle-end/122021 |
| * tree-ssa-math-opts.cc (build_and_insert_cast): Add sign-extend |
| check before prop. |
| |
| 2025-09-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122016 |
| * tree-ssa-sccvn.cc (vn_nary_simplify): Do not use the |
| simplified expression when it references abnormals. |
| |
| 2025-09-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122023 |
| * tree-vect-patterns.cc (vect_recog_rotate_pattern): Disable |
| for rotates. |
| |
| 2025-09-22 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| PR target/116205 |
| * config/pru/pru-passes.cc (class pass_pru_tiabi_check): Make |
| this an IPA pass. |
| (chkp_type_has_function_pointer): Remove. |
| (check_type_tiabi_compatibility): New function. |
| (chk_function_decl): Rename. |
| (check_function_decl): Simplify. |
| (check_op_callback): Rework to use |
| check_type_tiabi_compatibility. |
| (pass_pru_tiabi_check::execute): Rework to scan all symbols and |
| gimple contents of all defined functions. |
| * config/pru/pru-passes.def (INSERT_PASS_AFTER): Move after |
| pass_ipa_auto_profile_offline. |
| * config/pru/pru-protos.h (make_pru_tiabi_check): New |
| declaration to mark as IPA pass. |
| (make_pru_minrt_check): Specify it is making a gimple pass. |
| * doc/invoke.texi: Document that bit-fields are now rejected for |
| TI ABI. |
| |
| 2025-09-21 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-ccp.cc (optimize_unreachable): Don't check for forced labels. |
| |
| 2025-09-21 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphclones.cc (cgraph_node::create_version_clone): Recompute |
| calls_comdat_local |
| |
| 2025-09-21 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.cc (cgraph_edge::maybe_hot_p): For AFDO profiles force |
| count to be non-zero. |
| |
| 2025-09-21 Jan Hubicka <jh@suse.cz> |
| |
| * auto-profile.cc (autofdo_source_profile::read): Scale profile up to |
| profile_count::n_bits - 10. |
| |
| 2025-09-21 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-transform.cc (clone_inlined_nodes): Add KEEP_OFFLINE_COPY |
| parameter. |
| (inline_call): Sanity check profile and if it is clearly broken do |
| not subtract profile from original function. |
| * ipa-inline.cc (recursive_inlining): Update. |
| * ipa-inline.h (clone_inlined_nodes): Update. |
| |
| 2025-09-20 Jan Hubicka <jh@suse.cz> |
| |
| * doc/invoke.texi (--param max-devirt-targets) Document. |
| * ipa-devirt.cc (ipa_devirt): Implement muti-target |
| devirtualization. |
| * params.opt (max-devirt-targets): New parameter. |
| |
| 2025-09-19 Alexandre Oliva <oliva@adacore.com> |
| |
| * ira.cc (setup_reg_equiv): Retain function invariant |
| equivalences. |
| |
| 2025-09-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Take gimple* |
| instead of iterator. |
| (optimize_agr_copyprop): Likewise. |
| (simplify_builtin_call): Update call to optimize_aggr_zeroprop. |
| (pass_forwprop::execute): Update calls to optimize_aggr_zeroprop |
| and optimize_agr_copyprop. |
| |
| 2025-09-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (optimize_aggr_zeroprop_1): Change return type |
| to void. |
| (optimize_aggr_zeroprop): Likewise. |
| (optimize_agr_copyprop_1): Likewise. |
| (optimize_agr_copyprop_arg): Likewise. |
| (optimize_agr_copyprop): Likewise. |
| (simplify_builtin_call): Handle update of the return type |
| of optimize_aggr_zeroprop. |
| (pass_forwprop::execute): Likewise and optimize_agr_copyprop. |
| |
| 2025-09-19 Michael Eager <eager@eagercon.com> |
| |
| PR target/118280 |
| * config/microblaze/iterators.md: New. |
| * config/microblaze/microblaze-protos.h: Add |
| microblaze_subword_address. |
| * config/microblaze/microblaze.cc: Ditto. |
| * config/microblaze/microblaze.md: constants: Add UNSPECV_CAS_BOOL, |
| UNSPECV_CAS_MEM, UNSPECV_CAS_VAL, UNSPECV_ATOMIC_FETCH_OP |
| type: add atomic |
| * config/microblaze/sync.md: Add atomic_fetch_<atomic_optab>si |
| atomic_test_and_set |
| |
| 2025-09-19 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-fnsummary.cc (estimate_edge_devirt_benefit): Handle speculative |
| edges correctly. |
| (estimate_edge_size_and_time): Even when not collecting hints, |
| devirtualization affects function size. |
| (estimate_calls_size_and_time): Do not use tables when devirtualization |
| is possible. |
| |
| 2025-09-19 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.cc (cgraph_edge::make_direct): Do not ICE when there are |
| multiple speculations to comptaible targets |
| (cgraph_edge::combined_sreal_frequency): New member function. |
| * cgraph.h (cgraph_edge::combined_sreal_frequency): Declare. |
| * ipa-cp.cc (devirtualization_time_bonus): Return sreal; consider |
| profile. |
| (estimate_local_effects): Likewise. |
| |
| 2025-09-19 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/121856 |
| * doc/gm2.texi (Compiler options): New item -fwideset. |
| |
| 2025-09-19 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/121983 |
| * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Make sure |
| object is a REG before asking for its REGNO. Fix a trivial |
| whitespace nit. |
| |
| 2025-09-19 Raphael Moreira Zinsly <rzinsly@ventanamicro.com> |
| |
| * config/riscv/riscv-v.cc |
| (shuffle_slide_patterns): Cover more permutations. |
| |
| 2025-09-19 Jim Lin <jim@andestech.com> |
| |
| * config/riscv/riscv.cc (riscv_compute_frame_info): Remove the |
| dedicated calculation for RVE. |
| |
| 2025-09-19 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config.gcc (riscv*); Add riscv-bclr-lowest-set-bit.o to extra_objs. |
| * config/riscv/riscv-bclr-lowest-set-bit.cc: New file. |
| * config/riscv/riscv-passes.def: Add new pass after combine. |
| * config/riscv/riscv-protos.h (make_pass_bclr_lowest_set_bit): Add |
| prototype. |
| * config/riscv/t-riscv: Add rules to build riscv-bclr-lowest-set-bit.o. |
| |
| 2025-09-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.cc (compute_antic_aux): Remove dead code. |
| |
| 2025-09-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_stmt_vec_info::store_count): Remove. |
| (DR_GROUP_STORE_COUNT): Likewise. |
| * tree-vect-stmts.cc (vect_transform_stmt): Remove non-SLP |
| path. |
| |
| 2025-09-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_get_num_copies): Remove unused |
| overload. Remove defaulted vectype argument and always |
| use the vector type of the SLP node. |
| * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage): |
| Adjust. |
| (vectorizable_lane_reducing): Likewise. |
| (vect_transform_reduction): Likewise. |
| (vectorizable_nonlinear_induction): Likewise. |
| * tree-vect-stmts.cc (check_load_store_for_partial_vectors): |
| Likewise. |
| |
| 2025-09-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_slp_tree::vec_stmts_size): Remove. |
| (SLP_TREE_NUMBER_OF_VEC_STMTS): Likewise. |
| * tree-vect-loop.cc (vectorizable_reduction): Adjust. |
| (vect_transform_cycle_phi): Likewise. |
| (vect_transform_lc_phi): Likewise. |
| (vectorizable_recurr): Likewise. |
| (vectorizable_induction): Likewise. |
| (vectorizable_live_operation): Likewise. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Do not set |
| SLP_TREE_NUMBER_OF_VEC_STMTS. |
| (vect_slp_analyze_node_operations_1): Likewise. |
| (vect_slp_analyze_node_operations): Likewise. |
| (vect_prologue_cost_for_slp): Adjust. |
| (vect_create_constant_vectors): Likewise. |
| (vect_get_slp_vect_def): Likewise. |
| (vect_transform_slp_perm_load_1): Likewise. |
| (vectorizable_slp_permutation_1): Likewise. |
| (vect_schedule_slp_node): Likewise. |
| (vectorize_slp_instance_root_stmt): Likewise. |
| * tree-vect-stmts.cc (vect_model_simple_cost): Likewise. |
| (vectorizable_bswap): Likewise. |
| (vectorizable_call): Likewise. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| (vectorizable_condition): Likewise. |
| (vectorizable_early_exit): Likewise. |
| |
| 2025-09-18 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/client-data-hooks.h (client_data_hooks::dump): New. |
| * diagnostics/context.cc (context::dump): Dump |
| m_client_data_hooks. |
| (client_data_hooks::dump): New. |
| * diagnostics/logical-locations.h |
| (logical_locations::manager::dump): New. |
| * diagnostics/selftest-logical-locations.cc: Include |
| "diagnostics/dumping.h". |
| (test_manager::dump): New. |
| * diagnostics/selftest-logical-locations.h (test_manager::dump): |
| New decl. |
| * libgdiagnostics.cc: Include "diagnostics/dumping.h". |
| (impl_logical_location_manager::dump): New. |
| * tree-logical-location.cc: Include "diagnostics/dumping.h". |
| (tree_logical_location_manager::dump): New. |
| * tree-logical-location.h (tree_logical_location_manager::dump): |
| New decl. |
| |
| 2025-09-18 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/paths-output.cc: Update for conversion of |
| location_aspect to enum class. |
| * diagnostics/source-printing.cc: Likewise. |
| * input.cc: Likewise. |
| * input.h: Likewise. |
| |
| 2025-09-18 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/buffering.cc: Drop include of "diagnostic.h". |
| * diagnostics/buffering.h: Likewise. |
| * diagnostics/context.h (diagnostics::metadata): Add forward decl. |
| * diagnostics/html-sink.cc: Drop include of "diagnostic.h". |
| * diagnostics/lazy-paths.cc: Likewise. |
| * diagnostics/macro-unwinding.cc: Likewise. |
| * diagnostics/macro-unwinding.h (diagnostics:diagnostic_info): Add |
| forward decl. |
| * diagnostics/option-classifier.h: Include |
| "diagnostics/option-id.h" and "diagnostics/kinds.h". |
| (diagnostics:diagnostic_info): Add forward decl. |
| * diagnostics/output-spec.cc: Drop include of "diagnostic.h". |
| * diagnostics/paths-output.cc: Likewise. |
| * diagnostics/paths.cc: Likewise. |
| * diagnostics/sarif-sink.cc: Likewise. |
| * diagnostics/selftest-context.cc: Likewise. |
| * diagnostics/selftest-paths.cc: Likewise. |
| * diagnostics/source-printing-options.h: Include |
| "rich-location.h". |
| * diagnostics/text-sink.cc: Drop include of "diagnostic.h". |
| |
| 2025-09-18 Qing Zhao <qing.zhao@oracle.com> |
| |
| PR tree-optimization/121894 |
| * tree-sra.cc (scan_function): Set grp_assignment_write to 1 when |
| specially handle call to .DEFERRED_INIT. |
| |
| 2025-09-18 Zhongyao Chen <chenzhongyao.hit@gmail.com> |
| |
| PR target/121910 |
| * config/riscv/riscv-vector-costs.cc (compute_estimated_lmul): |
| Return RVV_M8 when estimated lmul is too large. |
| |
| 2025-09-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/121977 |
| * omp-low.cc (lower_omp_regimplify_operands_p): If maybe_lookup_decl |
| returns NULL, use maybe_lookup_decl_in_outer_ctx as fallback. |
| |
| 2025-09-18 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-sme.md (@aarch64_sme_write_zt<SVE_FULL:mode>): New insn. |
| (aarch64_sme_lut_zt): Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): New type format "%T". |
| (struct luti_lane_zt_base): New function shape. |
| (SHAPE): Likewise. |
| (struct write_zt_def): Likewise. |
| (struct write_lane_zt_def): Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.h: New function shape. |
| * config/aarch64/aarch64-sve-builtins-sme.cc (class svluti_zt_impl): New function expander. |
| (class svwrite_zt_impl): Likewise. |
| (class svwrite_lane_zt_impl): Likewise. |
| (FUNCTION): Likewise |
| * config/aarch64/aarch64-sve-builtins-sme.def (svwrite_zt): New function shape. |
| (svwrite_lane_zt): Likewise. |
| (svluti4_zt): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.h: New function base. |
| * config/aarch64/aarch64-sve-builtins.h: Mention the arrays of function_group_info by name. |
| |
| 2025-09-18 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Conditonally define |
| `__ARM_FEATURE_SME_LUTv2" macro. |
| * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION("sme-lutv2")): New |
| optional architecture extension. |
| * config/aarch64/aarch64.h (TARGET_SME_LUTv2): New macro. |
| * doc/invoke.texi: Document `+sme-lutv2` flag. |
| |
| 2025-09-18 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add pattern for SAT_MUL form 5. |
| * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): |
| Try match pattern for IOR. |
| |
| 2025-09-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.cc (update_counts_for_self_gen_clones): Do not update |
| call frequency for local profiles. |
| |
| 2025-09-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/87615 |
| * tree-ssa-sccvn.cc (vn_nary_op_insert_into): When inserting |
| a new predicate or location into an existing predicate list |
| make sure to not exceed 8 locations. Avoid copying things |
| when we later eventually throw them away. |
| (vn_nary_op_insert_pieces_predicated): Avoid expensive check |
| when not checking. |
| (dominated_by_p_w_unex): Apply the limit on a single successors |
| predecessor count consistently. |
| |
| 2025-09-18 Tobias Burnus <tburnus@baylibre.com> |
| Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR middle-end/121922 |
| * omp-general.cc (omp_dynamic_cond): Use 'unshare_expr' for |
| the user condition. |
| |
| 2025-09-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121720 |
| * tree-ssa-pre.cc (bitmap_set_subtract_expressions): Add |
| flag to tell whether we should copy instead of prune the |
| value set. |
| (compute_antic_aux): Remove intersection of ANTIC_IN with |
| the old solution. When subtracting TMP_GEN from |
| ANTIC_OUT do not prune the value set when MAX was involved |
| in the ANTIC_OUT computation. |
| |
| 2025-09-18 hongtao.liu <hongtao.liu@intel.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_AVX512_MOVE_BY_PIECES): |
| Remove SPR/GNR/DMR. |
| (X86_TUNE_AVX512_STORE_BY_PIECES): Ditto. |
| |
| 2025-09-17 David Malcolm <dmalcolm@redhat.com> |
| |
| * sarif-replay.cc (set_defaults): Initialize |
| m_debug_physical_locations. |
| |
| 2025-09-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121962 |
| * tree-ssa-forwprop.cc (same_for_assignment): New function. |
| (optimize_agr_copyprop_1): Use same_for_assignment to check for |
| nop copies. |
| (optimize_agr_copyprop): Likewise. |
| |
| 2025-09-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (new_src_based_on_copy): An early out |
| if both are decls. |
| |
| 2025-09-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Split out |
| the case where `operand_equal_p (dest, src2)` is false into ... |
| (new_src_based_on_copy): This. New function. |
| (optimize_agr_copyprop_arg): Use new_src_based_on_copy |
| instead of operand_equal_p to find the new src. |
| |
| 2025-09-17 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| PR tree-optimization/58727 |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): |
| In (A & C1) | C2, if (C1|C2) results in a constant with a single bit |
| clear, then adjust C1 appropriately. |
| |
| 2025-09-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-inline.cc (maybe_copy_this_notrap): New function. Also copy |
| the TREE_THIS_NOTRAP flag for parameters when the argument is a full |
| object and the parameter's type is self-referential. |
| (remap_gimple_op_r): Call maybe_copy_this_notrap. |
| (copy_tree_body_r): Likewise. |
| |
| 2025-09-17 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*widen_first_<any_extend:su>_vx_<mode>): |
| Add helper bridge pattern for vwaddu.vx combine. |
| (*widen_<any_widen_binop:optab>_<any_extend:su>_vx_<mode>): Add |
| new pattern to match vwaddu.vx combine. |
| * config/riscv/iterators.md: Add code attr to get extend CODE. |
| * config/riscv/vector-iterators.md: Add Dmode iterator for |
| widen. |
| |
| 2025-09-16 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/invoke.texi (Wimplicit-fallthrough=): Document that also C23 |
| provides a standard way to suppress the warning with [[fallthrough]];. |
| |
| 2025-09-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (#include): |
| Add "addresses.h". |
| * config/xtensa/xtensa.h (REGNO_OK_FOR_BASE_P): |
| Simplify to just a call to GP_REG_P(). |
| (BASE_REG_P): Replace REGNO_OK_FOR_BASE_P() with the equivalent |
| call to regno_ok_for_base_p(). |
| |
| 2025-09-16 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR middle-end/66462 |
| * config/aarch64/aarch64.md (isnan<mode>2): Add new expander. |
| |
| 2025-09-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (get_load_store_type): Get in a flag |
| whether a SLP_TREE_LOAD_PERMUTATION on the node can be |
| code generated and use it. Fix the condition on using |
| strided gather/scatter to avoid dropping a meaningful |
| permutation. |
| (vectorizable_store): Adjust. |
| (vectorizable_load): Analyze the permutation early and |
| pass the result down to get_load_store_type. Fix the |
| condition on when we are allowed to elide a load permutation. |
| |
| 2025-09-16 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| PR target/121602 |
| * config/aarch64/aarch64-sve-builtins.cc |
| (gimple_folder::fold_active_lanes_to): Add force_vector |
| statement. |
| |
| 2025-09-16 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config.gcc: Accept RISC-V profiles in `--with-arch`. |
| * config/riscv/arch-canonicalize: Add profile detection and |
| skip canonicalization for profiles. |
| |
| 2025-09-16 Jiawei <jiawei@iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc (struct riscv_profiles): Add comments. |
| (RISCV_PROFILE): Removed. |
| * config/riscv/riscv-profiles.def: New file. |
| |
| 2025-09-16 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: Imply zicsr. |
| |
| 2025-09-16 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/predicates.md (avx_vbroadcast128_operand): New |
| predicate. |
| * config/i386/sse.md (*avx_vbroadcastf128_<mode>_perm): New |
| pre_reload splitter. |
| |
| 2025-09-15 Alexandre Oliva <oliva@adacore.com> |
| |
| * config/rs6000/vxworks.h (TARGET_CMODEL, SET_CMODEL): Define. |
| |
| 2025-09-15 Alexandre Oliva <oliva@adacore.com> |
| |
| * configure.ac: Adjust base register in linker test for large |
| TOC support. |
| * configure: Rebuild. |
| |
| 2025-09-15 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Remove unnecessary cast of unsigned |
| SAT_MUL for widen-mul. |
| |
| 2025-09-15 Pan Li <pan2.li@intel.com> |
| |
| * tree-ssa-math-opts.cc (build_and_insert_cast): Refine |
| the cast insert by check the rhs of val. |
| |
| 2025-09-15 David Faust <david.faust@oracle.com> |
| |
| PR debug/121411 |
| PR debug/121903 |
| * ctfc.h (ctf_add_sou): Change size arg from size_t to uHWI. |
| * ctfc.cc (ctf_add_sou): Likewise. |
| |
| 2025-09-15 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121751 |
| PR tree-optimization/121418 |
| PR tree-optimization/121417 |
| * tree-ssa-forwprop.cc (split_core_and_offset_size): New function. |
| (optimize_agr_copyprop_1): Allow for the same |
| address but different type accesses via a VCE. |
| |
| 2025-09-15 Alex Coplan <alex.coplan@arm.com> |
| |
| PR tree-optimization/121772 |
| * match.pd: Add type check to reduc(ctor) pattern. |
| |
| 2025-09-15 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-mcus.def: Add avr32eb14, avr32eb20, |
| avr32eb28, avr32eb32. |
| * doc/avr-mmcu.texi: Rebuild. |
| |
| 2025-09-15 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121934 |
| * config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): If a |
| single instruction can store or move the whole block of memory, |
| use vector instruction and don't align destination. |
| |
| 2025-09-15 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/121906 |
| * config/loongarch/loongarch.md (*bstrins_<mode>_for_ior_mask): |
| Always create a new pseudo for the input register of the bstrins |
| instruction. |
| |
| 2025-09-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/121904 |
| * tree.cc (get_range_pos_neg): Return 3 if arg doesn't have |
| scalar integral type. |
| * expr.cc (expand_expr_real_2) <CASE_CONVERT>: Only choose between |
| sign and zero extension based on costs for scalar integral inner |
| types. |
| |
| 2025-09-15 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR middle-end/121391 |
| * gimplify.cc (gimplify_asm_expr): In case an asm operand is an |
| error node, bail out early. |
| |
| 2025-09-14 Richard Biener <rguenther@suse.de> |
| |
| PR lto/121935 |
| * ipa-free-lang-data.cc (find_decls_types_r): Visit DECL_ARGUMENTS |
| chain manually. |
| |
| 2025-09-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (stmt_vec_info_type::permute_info_type): Add. |
| (vectorizable_slp_permutation): Declare. |
| * tree-vect-slp.cc (vectorizable_slp_permutation): Export. |
| (vect_slp_analyze_node_operations_1): Set permute_info_type |
| on permute nodes successfully analyzed. |
| (vect_schedule_slp_node): Dispatch to vect_transform_stmt |
| for all nodes. |
| * tree-vect-stmts.cc (vect_transform_stmt): Remove redundant |
| dump, handle permute_info_type. |
| |
| 2025-09-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (get_load_store_type): Use VMAT_STRIDED_SLP |
| for negative stride accesses when VMAT_CONTIGUOUS_REVERSE |
| isn't applicable. |
| |
| 2025-09-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_load_store_data::n_perms): New. |
| * tree-vect-stmts.cc (vectorizable_load): Analyze |
| SLP_TREE_LOAD_PERMUTATION only once and remember n_perms. |
| Verify the transform-time n_perms against the value stored |
| during analysis. |
| |
| 2025-09-13 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * target.def (dtors_from_cxa_atexit): Properly mark up |
| __cxa_atexit as code. |
| * doc/tm.texi: Regenerate. |
| |
| 2025-09-13 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR rtl-optimization/121205 |
| * lra-constraints.cc (curr_insn_transform): Stop processing on |
| error. |
| |
| 2025-09-13 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/invoke.texi (Optimize Options): Editorial changes around |
| -fprofile-partial-training. |
| |
| 2025-09-12 Jeff Law <jlaw@ventanamicro.com> |
| |
| * lra-constraints.cc (get_equiv): Bounds check before accessing |
| data in ira_reg_equiv. |
| |
| 2025-09-12 Edwin Lu <ewlu@rivosinc.com> |
| |
| * match.pd: New NARROW_CLIP variant for SAT_TRUNC. |
| * tree-vect-patterns.cc (gimple_unsigned_integer_narrow_clip): |
| Add new decl for NARROW_CLIP. |
| (vect_recog_sat_trunc_pattern): Add NARROW_CLIP check. |
| |
| 2025-09-12 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/120063 |
| * diagnostics/context.cc (context::execution_failed_p): Also treat |
| any kind::fatal errors as leading to failed execution. |
| * diagnostics/sarif-sink.cc (maybe_get_sarif_level): Handle |
| kind::fatal as SARIF level "error". |
| |
| 2025-09-12 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/121876 |
| * diagnostics/buffering.cc (context::set_diagnostic_buffer): Add |
| early reject of the no-op case. |
| |
| 2025-09-12 Nathaniel Shead <nathanieloshead@gmail.com> |
| |
| PR c++/121865 |
| * ipa-free-lang-data.cc (find_decls_types_r): Don't walk into |
| DECL_CHAIN for any DECL. |
| |
| 2025-09-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ipa-pure-const.cc (check_stmt): Minor formatting tweaks. |
| (pass_data_nothrow): Fix pasto in description. |
| |
| 2025-09-12 Tamar Christina <tamar.christina@arm.com> |
| |
| * internal-fn.def (VEC_TRUNC_ADD_HIGH): New. |
| * doc/generic.texi: Document it. |
| * optabs.def (vec_trunc_add_high): New. |
| * doc/md.texi: Document it. |
| * tree-vect-stmts.cc (vectorizable_early_exit): Use addhn if supported. |
| |
| 2025-09-12 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (vec_addh_narrow<mode>): New. |
| |
| 2025-09-12 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vect-loop.cc (vect_analyze_loop_1): If the unroll pragma was set |
| mark it as handled. |
| * doc/extend.texi (pragma GCC unroll): Update documentation. |
| |
| 2025-09-11 Trevor Gross <tmgross@umich.edu> |
| |
| * doc/libgcc.texi (Comparison functions): Document functions as |
| returning CMPtype. |
| |
| 2025-09-11 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR middle-end/66462 |
| * config/aarch64/aarch64.md (isfinite<mode>2): Add new expander. |
| |
| 2025-09-11 Matteo Nicoli <matteo.nicoli001@gmail.com> |
| |
| PR tree-optimization/121595 |
| * match.pd (fabs(a + 0.0) -> fabs (a)): Optimization pattern limited to |
| the -fno-trapping-math case. |
| |
| 2025-09-11 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (atomic_compare_and_swapti_scq): |
| Require LSX. Change the operands for the output, the memory, |
| and the expected value to LSX vector modes. Add a FCCmode |
| output to indicate if CAS has written the desired value into |
| memory. Use LSX to atomically load both words of the 16B value |
| in memory. |
| (atomic_compare_and_swapti): Pun the modes to satisify |
| the new atomic_compare_and_swapti_scq implementation. Read the |
| bool return value from the FCC instead of performing a |
| comparision. |
| |
| 2025-09-11 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.cc (loongarch_print_operand): Call |
| reg_or_0_operand for checking the sanity of %t. |
| |
| 2025-09-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121703 |
| * tree-vect-stmts.cc (vectorizable_store): Value-initialize ls. |
| (vectorizable_load): Likewise. |
| |
| 2025-09-11 Tsukasa OI <research_trasio@irq.a4lg.com> |
| |
| * config/riscv/riscv.cc (riscv_function_ok_for_sibcall): |
| Suppress cross calling convention sibcall optimization from |
| the vector calling convention variant. |
| |
| 2025-09-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121829 |
| * cfgloopmanip.cc (create_preheader): Ensure we can insert |
| at the end of a preheader. |
| |
| 2025-09-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121870 |
| * tree-ssa-propagate.cc |
| (substitute_and_fold_engine::substitute_and_fold): Skip |
| removed stmts from noreturn fixup. |
| |
| 2025-09-11 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/bitmanip.md (*<bitmanip_minmax_cmp_insn>_cmp_<mode>3): |
| New min/max ifcvt pattern. |
| * config/riscv/iterators.md (minu): New iterator. |
| * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): |
| Remove riscv-specific adjustment. |
| |
| 2025-09-11 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * ifcvt.cc (noce_convert_multiple_sets_1): Add use_cond_earliest |
| param. |
| (noce_convert_multiple_sets): Set use_cond_earliest. |
| (noce_process_if_block): Just use original cost. |
| (noce_find_if_block): Use insn_cost (jump_insn). |
| |
| 2025-09-11 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-selftests.cc (riscv_run_selftests): Call |
| run_vectorize_related_mode_selftests. |
| (test_vectorize_related_mode): New function to test |
| vectorize_related_mode behavior. |
| (run_vectorize_related_mode_selftests): New function to run all |
| vectorize_related_mode tests. |
| (run_vectorize_related_mode_vla_selftests): New function to test |
| VLA modes. |
| (run_vectorize_related_mode_vls_rv64gcv_selftests): New function to |
| test VLS modes on rv64gcv. |
| (run_vectorize_related_mode_vls_rv32gc_zve32x_zvl256b_selftests): |
| New function to test VLS modes on rv32gc_zve32x_zvl256b. |
| (run_vectorize_related_mode_vls_selftests): New function to run all |
| VLS mode tests. |
| * config/riscv/riscv-v.cc (can_find_related_mode_p): Fix VLS type |
| handling by converting TARGET_MIN_VLEN from bits to bytes. |
| |
| 2025-09-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/81540 |
| PR target/49857 |
| * common/config/avr/avr-common.cc: Disable -ftree-switch-conversion. |
| |
| 2025-09-10 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): |
| Change "Xtrnase" in the comment to "Xtensa". |
| |
| 2025-09-10 Peter Bergner <bergner@tenstorrent.com> |
| |
| PR target/121878 |
| * config/riscv/tt-ascalon-d8.md (tt_ascalon_d8_vec_idiv_half): Test the |
| Selected Element Width (SEW) rather than the mode. |
| (tt_ascalon_d8_vec_idiv_single): Likewise. |
| (tt_ascalon_d8_vec_idiv_double): Likewise. |
| (tt_ascalon_d8_vec_float_divsqrt_half): Likewise. |
| (tt_ascalon_d8_vec_float_divsqrt_single): Likewise. |
| (tt_ascalon_d8_vec_float_divsqrt_double): Likewise. |
| |
| 2025-09-10 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * tree-vect-loop.cc (vectorizable_live_operation_1): Fix |
| load/store bias handling. |
| |
| 2025-09-10 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfwsub_wf_<mode>): New pattern to |
| combine float_extend + vec_duplicate + vfsub.vv into vfwsub.wf. |
| |
| 2025-09-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/121828 |
| * gimple-lower-bitint.cc (gimple_lower_bitint): For REALPART_EXPR |
| consumed by store in the same bb and with REALPART_EXPR from |
| optimizable_arith_overflow, don't add REALPART_EXPR lhs to |
| the m_names bitmap only if the cast from IMAGPART_EXPR doesn't |
| appear in between the REALPART_EXPR and the store. |
| |
| 2025-09-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/121831 |
| * expr.cc (raw_data_cst_read_str): New function. |
| (store_constructor) <case ARRAY_TYPE>: Handle RAW_DATA_CST. |
| |
| 2025-09-10 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/s390.h (CLZ_DEFINED_VALUE_AT_ZERO): Adjust and |
| return 2. |
| (CTZ_DEFINED_VALUE_AT_ZERO): Return 2. |
| * config/s390/s390.md (clzsi2): Implement. |
| (ctzsi2): Implement. |
| |
| 2025-09-10 Maximilian Immanuel Brandtner <maxbr@linux.ibm.com> |
| |
| * config/s390/vector.md (*vec_extract<mode>_plus_zero_extend): |
| Fix define insn. |
| |
| 2025-09-09 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-devices.def: Correct the Max ISA VGPRs counts for |
| GFX10 and GFX11 devices. |
| * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Remove the wave64 |
| VGPR count fudge. |
| |
| 2025-09-09 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn.cc (gcn_expand_builtin_1): Enable the "mode" parameter |
| and ensure that "target" is a register for most of the builtins. |
| |
| 2025-09-09 David Faust <david.faust@oracle.com> |
| |
| PR debug/121411 |
| * dwarf2ctf.cc (ctf_get_AT_data_member_location) Use AT_unsigned |
| when fetching AT_bit_offset and AT_data_member_location. Simplify. |
| (ctf_die_bitsize): Return unsigned HOST_WIDE_INT instead of |
| uint32_t. |
| (gen_ctf_base_type, gen_ctf_sou_type, gen_ctf_enumeration_type): |
| Adapt accordingly. |
| |
| 2025-09-09 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfwsub_vf_<mode>): New pattern to |
| combine float_extend + vec_duplicate + vfwsub.vv into vfwsub.vf. |
| |
| 2025-09-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/121678 |
| * tree.cc (staticp): Handle REALPART_EXPR and IMAGPART_EXPR. |
| |
| 2025-09-09 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (Warning Options): Note that an option |
| enabled by -Wextra is for C and ObjC only. |
| |
| 2025-09-09 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfwadd_wf_<mode>): New pattern to |
| combine float_extend + vec_duplicate + vfadd.vv into vfwadd.wf. |
| * config/riscv/vector.md |
| (@pred_single_widen_<plus_minus:optab><mode>_scalar): Swap and reorder |
| operands to match the RTL emitted by expand. |
| |
| 2025-09-09 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| Revert: |
| 2025-07-11 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (*bcaxqdi4): New |
| define_insn_and_split. |
| |
| 2025-09-09 Tamar Christina <tamar.christina@arm.com> |
| |
| Revert: |
| 2025-09-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121829 |
| * tree-vect-loop-manip.cc (vect_remove_forwarder): New |
| function. |
| (slpeel_tree_duplicate_loop_to_edge_cfg): Use it. |
| |
| 2025-09-09 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121861 |
| * config/i386/i386.cc (ix86_optab_supported_p): Drop |
| !flag_trapping_math check for floor_optab, ceil_optab and |
| btrunc_optab. |
| |
| 2025-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.cc (expand_vec_perm_vpermil): Extend |
| to handle V8SImode. |
| * config/i386/i386.cc (avx_vpermilp_parallel): Extend to |
| handle vector integer modes with same vector size and same |
| component size. |
| * config/i386/sse.md |
| (<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Ditto. |
| (V48_AVX): New mode iterator. |
| (ssefltmodesuffix): Extend for V16SI/V8DI/V16SF/V8DF. |
| |
| 2025-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| Check permutation index for vec_perm, don't count it if we |
| know it's not a cross-lane permutation. |
| |
| 2025-09-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/107997 |
| PR tree-optimization/121844 |
| * tree-ssa-loop-ivopts.cc (allow_ip_end_pos_p): Do not allow |
| IP_END for latches ending with a control stmt. |
| (create_new_iv): Do not split the latch edge, instead assert |
| that's not necessary. |
| |
| 2025-09-08 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfwadd_vf_<mode>): New pattern to |
| combine float_extend + vec_duplicate + vfwadd.vv into vfwadd.vf. |
| |
| 2025-09-08 Anton Blanchard <antonb@tenstorrent.com> |
| |
| * config/riscv/riscv.cc (tt_ascalon_d8_tune_info): Increase branch_cost |
| from 3 to 4. |
| |
| 2025-09-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121830 |
| * tree-vect-loop.cc (vect_analyze_scalar_cycles_1): Only |
| set STMT_VINFO_REDUC_DEF on reductions. |
| * tree-vect-slp.cc (vect_build_slp_tree_2): Identify reduction |
| PHIs by a set STMT_VINFO_REDUC_DEF instead of their def type. |
| |
| 2025-09-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121829 |
| * tree-vect-loop-manip.cc (vect_remove_forwarder): New |
| function. |
| (slpeel_tree_duplicate_loop_to_edge_cfg): Use it. |
| |
| 2025-09-08 Alex Coplan <alex.coplan@arm.com> |
| |
| PR tree-optimization/114892 |
| * doc/invoke.texi (Developer Options): Document -folding option |
| for -fdump-tree-*. |
| |
| 2025-09-08 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * ipa-cp.cc (gather_count_of_non_rec_edges): Check count |
| initialization before adding to total. |
| |
| 2025-09-08 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfrsub_vf_<mode>): New pattern to |
| combine vec_duplicate + vfsub.vv into vfrsub.vf. |
| |
| 2025-09-08 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfsub_vf_<mode>): New pattern to |
| combine vec_duplicate + vfsub.vv into vfsub.vf. |
| * config/riscv/vector.md (@pred_<optab><mode>_scalar): Allow VLS modes. |
| |
| 2025-09-08 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfadd_vf_<mode>): New pattern to |
| combine vec_duplicate + vfadd.vv into vfadd.vf. |
| |
| 2025-09-08 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfwmul_vf_<mode>): New pattern to |
| combine float_extend + vec_duplicate + vfmul.vv into vfmul.vf. |
| * config/riscv/vector.md (*@pred_dual_widen_<optab><mode>_scalar): |
| Swap operands to match the RTL emitted by expand, i.e. first |
| float_extend then vec_duplicate. |
| |
| 2025-09-08 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfmin_vf_ieee_<mode>): Rename into... |
| (*v<ieee_fmaxmin_op>_vf_<mode>): New pattern to combine vec_duplicate + |
| vf{max,min}.vv (unspec) into vf{max,min}.vf. |
| |
| 2025-09-08 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (SH Function Attributes): Remove reference to |
| GNU Binutils 2.7 requirement. |
| (H8/300 Variable Attributes): Ditto. |
| |
| 2025-09-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/87900 |
| * tree-ssa-strlen.cc (strlen_pass::handle_assign): Add RHS argument. |
| For empty constructor RHS, see if can combine with a previous malloc into |
| a calloc. |
| (strlen_pass::check_and_optimize_call): Update call to handle_assign; |
| passing NULL_TREE for RHS. |
| (strlen_pass::check_and_optimize_stmt): Update call to handle_assign. |
| |
| 2025-09-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/83022 |
| * tree-ssa-strlen.cc (last_stmt_ptr_check): New function. |
| (allow_memset_malloc_to_calloc): New function. |
| (strlen_pass::handle_builtin_memset): Check to see if it is a good |
| idea to do the malloc+memset->calloc optimization. |
| (printf_strlen_execute): Free post dom info. |
| |
| 2025-09-08 Sam James <sam@gentoo.org> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2025-09-07 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121841 |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Allow |
| two different decls as bases as non-overlapping bases. |
| |
| 2025-09-07 Jeff Law <jlaw@ventanamicro.com> |
| |
| * dep-fusion.cc: Mark clone, gate and execute methods as final. |
| |
| 2025-09-07 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/andes-vector-builtins-bases.cc (nds_vd4dot): New class. |
| (class nds_vd4dotsu): New class. |
| * config/riscv/andes-vector-builtins-bases.h: New def. |
| * config/riscv/andes-vector-builtins-functions.def (nds_vd4dots): Ditto. |
| (nds_vd4dotsu): Ditto. |
| (nds_vd4dotu): Ditto. |
| * config/riscv/andes-vector.md |
| (@pred_nds_vd4dot<su><mode>): New pattern. |
| (@pred_nds_vd4dotsu<mode>): New pattern. |
| * config/riscv/genrvv-type-indexer.cc (main): Modify sew of QUAD_FIX, |
| QUAD_FIX_SIGNED and QUAD_FIX_UNSIGNED. |
| * config/riscv/riscv-vector-builtins.cc |
| (qexti_vvvv_ops): New operand information. |
| (qexti_su_vvvv_ops): New operand information. |
| (qextu_vvvv_ops): New operand information. |
| * config/riscv/riscv-vector-builtins.h (XANDESVDOT_EXT): New def. |
| (required_ext_to_isa_name): Add case XANDESVDOT_EXT. |
| (required_extensions_specified): Ditto. |
| (struct function_group_info): Ditto. |
| * config/riscv/vector-iterators.md (NDS_QUAD_FIX): New iterator. |
| |
| 2025-09-07 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv-opts.h (riscv_microarchitecture_type): Fix ordering. |
| |
| 2025-09-07 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * common/config/riscv/riscv-common.cc: |
| Turn on VECTOR_ELEN_FP_16 for XAndesvpackfph. |
| * config/riscv/andes-vector-builtins-bases.cc (nds_vfpmad): New class. |
| * config/riscv/andes-vector-builtins-bases.h: New def. |
| * config/riscv/andes-vector-builtins-functions.def (nds_vfpmadt): Ditto. |
| (nds_vfpmadb): Ditto. |
| (nds_vfpmadt_frm): Ditto. |
| (nds_vfpmadb_frm): Ditto. |
| * config/riscv/andes-vector.md (@pred_nds_vfpmad<nds_tb><mode>): |
| New pattern. |
| * config/riscv/riscv-vector-builtins-types.def |
| (DEF_RVV_F16_OPS): New def. |
| * config/riscv/riscv-vector-builtins.cc (f16_ops): Ditto |
| * config/riscv/riscv-vector-builtins.def (float32_type_node): Ditto. |
| * config/riscv/riscv-vector-builtins.h (XANDESVPACKFPH_EXT): Ditto. |
| (required_ext_to_isa_name): Add case XANDESVPACKFPH_EXT. |
| (required_extensions_specified): Ditto. |
| * config/riscv/vector-iterators.md (VHF): New iterator. |
| |
| 2025-09-07 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/121794 |
| * config/avr/avr.md (cmpqi3): Use cpi R,0 if possible. |
| |
| 2025-09-07 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*vnmsac_vx_<mode>): Rename from. |
| (*mul_minus_vx_<mode>): Rename to and add nmsub support. |
| * config/riscv/vector.md (@pred_vnmsac_vx_<mode>): Rename from. |
| (@pred_mul_minus_vx_<mode>): Rename to and add nmsub support. |
| (*pred_nmsac_<mode>_scalar_undef): Rename from. |
| (*pred_mul_minus_vx<mode>_undef): Rename to and add nmsub support. |
| |
| 2025-09-06 Sam James <sam@gentoo.org> |
| |
| * doc/generic.texi (TYPE_CANONICAL): Don't mention long-removed |
| --param verify-canonical-types. |
| |
| 2025-09-06 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/121835 |
| * dep-fusion.cc (pass_dep_fusion::execute): Return early if |
| macro_fusion_pair_p is null. |
| |
| 2025-09-06 Artemiy Volkov <artemiyv@acm.org> |
| |
| * Makefile.in (OBJS): Add dep-fusion.o. |
| * common.opt (fdep-fusion): Add option. |
| * dep-fusion.cc: New pass. |
| * doc/invoke.texi: Document it. |
| * opts.cc (default_options_table): Enable it at -O2+ and -Os. |
| * passes.def: Insert two instances of dep_fusion. |
| * tree-pass.h (make_pass_dep_fusion): Declare new function. |
| |
| 2025-09-06 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi (x86 Options): Fix '-momit-leaf-frame-pointer' typo. |
| |
| 2025-09-06 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (simplify_builtin_call): Factor out |
| the memcpy followed by a memset optimization to ... |
| (simplify_builtin_memcpy_memset): Here. New function. |
| |
| 2025-09-06 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (simplify_builtin_call): Factor out the memchr |
| optimization to ... |
| (simplify_builtin_memchr): Here. New function. |
| |
| 2025-09-06 Simon Martin <simon@nasilyan.com> |
| |
| * ipa-inline-transform.cc: Define INCLUDE_ALGORITHM. |
| |
| 2025-09-06 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| PR target/69374 |
| * doc/install.texi (Prerequisites): Properly capitalize |
| GNU Binutils. |
| (Configuration): Ditto. |
| (Building): Ditto. |
| (Specific): Ditto. |
| |
| 2025-09-06 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi: Say 'whole-program' consistently where |
| appropriate. |
| |
| 2025-09-06 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi: Capitalize 'GNU Binutils' consistently. |
| |
| 2025-09-06 Sam James <sam@gentoo.org> |
| |
| PR ipa/116410 |
| * doc/invoke.texi (Link Options): Update -flinker-output= text |
| to reflect GNU Binutils changes. Fix grammar. |
| |
| 2025-09-06 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/andes-vector-builtins-bases.cc |
| (nds_nibbleload): New class. |
| * config/riscv/andes-vector-builtins-bases.h (nds_vln8): New def. |
| (nds_vlnu8): Ditto. |
| * config/riscv/andes-vector-builtins-functions.def (nds_vln8): Ditto. |
| (nds_vlnu8): Ditto. |
| * config/riscv/andes-vector.md (@pred_intload_mov<su><mode>): New pattern. |
| * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_Q_OPS): New def. |
| (DEF_RVV_QU_OPS): Ditto. |
| * config/riscv/riscv-vector-builtins.cc |
| (q_v_void_const_ptr_ops): New operand information. |
| (qu_v_void_const_ptr_ops): Ditto. |
| * config/riscv/riscv-vector-builtins.def (void_const_ptr): New def. |
| * config/riscv/riscv-vector-builtins.h (enum required_ext): Ditto. |
| (required_ext_to_isa_name): Add case XANDESVSINTLOAD_EXT. |
| (required_extensions_specified): Ditto. |
| * config/riscv/vector-iterators.md (NDS_QVI): New iterator. |
| |
| 2025-09-06 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * common/config/riscv/riscv-common.cc: |
| Turn on VECTOR_ELEN_BF_16 for XAndesvbfhcvt. |
| * config.gcc: Add extra_objs andes-vector-builtins-bases.o |
| and extra_headers andes_vector.h. |
| * config/riscv/riscv-vector-builtins-shapes.cc |
| (BASE_NAME_MAX_LEN): Increase size to 20. |
| * config/riscv/riscv-vector-builtins.cc |
| (f32_to_bf16_nf_w_ops): New operand information. |
| (f32_to_bf16_nf_w_ops): New operand information. |
| (DEF_RVV_FUNCTION): New def. |
| * config/riscv/riscv-vector-builtins.def (bf16): Ditto. |
| * config/riscv/riscv-vector-builtins.h (enum required_ext): Ditto. |
| (required_ext_to_isa_name): Add case XANDESVBFHCVT_EXT. |
| (required_extensions_specified): Ditto. |
| * config/riscv/t-riscv: Add andes-vector-builtins-functions.def, |
| andes-vector-builtins-bases.h and andes-vector-builtins-bases.o. |
| * config/riscv/vector-iterators.md (NDS_VWEXTBF): New iterator. |
| (NDS_V_DOUBLE_TRUNC_BF): New attr. |
| * config/riscv/andes-vector-builtins-bases.cc: New file. |
| * config/riscv/andes-vector-builtins-bases.h: New file. |
| * config/riscv/andes-vector-builtins-functions.def: New file. |
| * config/riscv/andes_vector.h: New file. |
| * config/riscv/andes-vector.md: New file. |
| * config/riscv/vector.md: Include andes_vector.md. |
| |
| 2025-09-06 Anton Blanchard <antonb@tenstorrent.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Update. |
| * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): |
| Add tt_ascalon_d8. |
| * config/riscv/riscv.md: Update tune attribute and include |
| tt-ascalon-d8.md. |
| * config/riscv/tt-ascalon-d8.md: New file. |
| |
| 2025-09-06 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/108466 |
| * tree-ssa-phiopt.cc (factor_out_conditional_operation): Give better |
| locations to the new phi args and the new statement. |
| |
| 2025-09-05 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR middle-end/121806 |
| * gcc.cc (for_each_path): Initialize return value. |
| |
| 2025-09-05 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/121510 |
| * config/riscv/riscv.cc (riscv_legitimize_move): Check if we can |
| vec_extract. |
| |
| 2025-09-05 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/121757 |
| * rtl-ssa/accesses.h (clobber_group::lookup_clobber): New member |
| function. |
| * rtl-ssa/accesses.cc (clobber_group::lookup_clobber): Likewise. |
| (clobber_group::prev_clobber, clobber_group::next_clobber) |
| (function_info::add_clobber): Use it. |
| |
| 2025-09-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/121794 |
| * config/avr/avr.cc (avr_out_compare): Only use zero_reg |
| when there is no other sequence of the same length. |
| (avr_out_plus_ext): Same. |
| (avr_out_plus_1): Same. |
| |
| 2025-09-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vectorizable_bb_reduc_epilogue): Do not |
| cost zero remaining scalar stmts. |
| (vectorizable_slp_permutation): Do not cost zero actual |
| permutations. |
| * tree-vect-stmts.cc (vectorizable_load): Likewise. |
| |
| 2025-09-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121802 |
| * tree-vectorizer.h (vect_setup_realignment): Add vectype |
| argument. |
| * tree-vect-data-refs.cc (vect_setup_realignment): Replace |
| local vectype with argument. |
| * tree-vect-stmts.cc (vectorizable_load): Adjust. |
| |
| 2025-09-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * J: Remove. |
| |
| 2025-09-05 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/iterators.md (sve_di_suf): New mode attribute. |
| * config/aarch64/aarch64-sve.md (<optab><mode>3 SVE_INT_BINARY_MULTI): |
| Rename to... |
| (<optab><mode>3<sve_di_suf>): ... This. Use SVE_I_SIMD_DI mode |
| iterator. |
| * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Use the above |
| for TARGET_SVE. |
| |
| 2025-09-04 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*vmacc_vx_<mode>): Rename to |
| handle both the macc and madd. |
| (*mul_plus_vx_<mode>): Add madd pattern. |
| * config/riscv/vector.md (@pred_mul_plus_vx_<mode>): Rename to |
| handle both the macc and madd. |
| (*pred_macc_<mode>_scalar_undef): Remove. |
| (*pred_nmsac_<mode>_scalar_undef): Remove. |
| (*pred_mul_plus_vx<mode>_undef): Add new pattern to handle |
| both the vmacc and vmadd. |
| (@pred_mul_plus_vx<mode>): Ditto. |
| |
| 2025-09-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (afdo_annotate_cfg): Apply zero_bbs after early |
| exit for missing profile; fix formating |
| |
| 2025-09-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-transform.cc (inline_call): If function with |
| AFDO profile is inlined into function with |
| GUESSED_GLOBAL0_AFDO or GUESSED_GLOBAL0_ADJUSTED, scale |
| caller to AFDO profile. |
| * profile-count.h (profile_count::apply_scale): If num is AFDO |
| and den is not GUESSED, make result AFDO rather then GUESSED. |
| |
| 2025-09-04 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * builtins.cc (interclass_mathfn_icode): Add support for isnan |
| optab. |
| (expand_builtin): Add BUILT_IN_ISNAN to expand isnan optab. |
| (fold_builtin_interclass_mathfn): Expand BUILT_IN_ISNAN only after |
| checking for a valid optab. |
| (fold_builtin_classify): Move generic BUILT_IN_ISNAN expansion |
| to fold_builtin_interclass_mathfn. |
| (fold_builtin_1): For BUILT_IN_ISNAN first try fold_builtin_classify, |
| then fold_builtin_interclass_mathfn. |
| * optabs.def: Add isnan optab. |
| * doc/md.texi: Document isnan. |
| |
| 2025-09-04 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): |
| Remove unnecessary code around double reductions. |
| |
| 2025-09-04 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/121775 |
| * config/arm/neon.md (vec_set<mode>_internal, all variants): |
| validate the immediate operand that indicates the lane to |
| modify. |
| |
| 2025-09-04 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_reduction): Eliminate |
| nested_cycle in favor of double_reduc and set that where |
| it makes most sense. Remove never taken paths and always |
| true conditions. |
| |
| 2025-09-04 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/121742 |
| PR target/121780 |
| PR target/121781 |
| * config/riscv/riscv-v.cc (expand_vec_perm): Swap target and |
| tmp_target. |
| |
| 2025-09-04 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-vect-loop-manip.cc (vect_gen_prolog_loop_niters): |
| Change prolog bound to poly_int64. |
| (vect_gen_scalar_loop_niters): Ditto. |
| (vect_do_peeling): Use poly estimate for frequency scaling. |
| |
| 2025-09-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121768 |
| * tree-vect-loop.cc (vect_inner_phi_in_double_reduction_p): Remove. |
| (vect_analyze_scalar_cycles_1): Analyze inner loops of |
| double reductions immediately and only mark fully recognized |
| double reductions. Skip already analyzed inner loops. |
| (vect_is_simple_reduction): Change double_reduc from a flag |
| to an output of the inner loop PHI and to whether we are |
| processing an inner loop of a double reduction. |
| |
| 2025-09-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121685 |
| * tree-eh.cc (ref_outside_object_p): Split out from ... |
| (tree_could_trap_p): ... here. Assume the this pointer |
| of a method refers to an object of at least size of its |
| base type. |
| |
| 2025-09-04 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/107051 |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Allow for |
| memory sharing the same base if they known not to overlap over |
| the size. |
| |
| 2025-09-04 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/110812 |
| * config/riscv/riscv-c.cc (pragma_intrinsic_flags): Remove struct. |
| (riscv_pragma_intrinsic_flags_pollute): Remove function. |
| (riscv_pragma_intrinsic_flags_restore): Remove function. |
| (riscv_pragma_intrinsic): Simplify to only call handle_pragma_vector. |
| * config/riscv/riscv-vector-builtins.cc (pragma_intrinsic_flags): |
| Move struct definition here from riscv-c.cc. |
| (riscv_pragma_intrinsic_flags_pollute): Move and adapt from |
| riscv-c.cc, add zvfbfmin, zvfhmin and vector_elen_bf_16 support. |
| (riscv_pragma_intrinsic_flags_restore): Move from riscv-c.cc. |
| (rvv_switcher::rvv_switcher): Add pollute_flags parameter to |
| control flag manipulation. |
| (rvv_switcher::~rvv_switcher): Restore flags conditionally. |
| (register_builtin_types): Use rvv_switcher without polluting flags. |
| (get_required_extensions): Remove function. |
| (check_required_extensions): Simplify to only check type validity. |
| (function_instance::function_returns_void_p): Move implementation |
| from header. |
| (function_builder::add_function): Register placeholder for LTO. |
| (init_builtins): Simplify and handle LTO case. |
| (reinit_builtins): Remove function. |
| (handle_pragma_vector): Remove extension checking. |
| * config/riscv/riscv-vector-builtins.h |
| (function_instance::function_returns_void_p): Add declaration. |
| (function_call_info::function_returns_void_p): Remove inline |
| implementation. |
| |
| 2025-09-04 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_ext_is_subset): Fix |
| inverted logic in extension subset check. |
| |
| 2025-09-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/117599 |
| * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Move |
| build_qualified_type calls into the if/else if/else bodies, for |
| the last one set ltype to m_limb_type first, drop limb_type_a |
| and use ltype instead. |
| |
| 2025-09-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/61247 |
| * tree-scalar-evolution.cc (simplify_peeled_chrec): |
| Handle the case of a converted peeled chrec. |
| |
| 2025-09-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121740 |
| * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow skipping |
| may-defs from CTORs. Do not skip may-defs with storage-order |
| issues or (partial) must-defs. |
| |
| 2025-09-03 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/andes.def: Add nds_fcvt_s_bf16 and nds_fcvt_bf16_s. |
| * config/riscv/riscv.md (truncsfbf2): Add TARGET_XANDESBFHCVT support. |
| (extendbfsf2): Ditto. |
| * config/riscv/riscv-builtins.cc: New AVAIL andesbfhcvt. |
| Add new define RISCV_ATYPE_BF and RISCV_ATYPE_SF. |
| * config/riscv/riscv-ftypes.def: New DEF_RISCV_FTYPE. |
| |
| 2025-09-03 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/constraints.md (Ou07): New constraint. |
| (ads_Bext): New constraint. |
| * config/riscv/iterators.md (ANYLE32): New iterator. |
| (sizen): New iterator. |
| (sh_limit): New iterator. |
| (sh_bit): New iterator. |
| (cs): New iterator. |
| * config/riscv/predicates.md (ads_branch_bbcs_operand): New predicate. |
| (ads_branch_bimm_operand): New predicate. |
| (ads_imm_extract_operand): New predicate. |
| (ads_extract_size_imm_si): New predicate. |
| (ads_extract_size_imm_di): New predicate. |
| (const_int5_operand): New predicate. |
| * config/riscv/riscv-builtins.cc: |
| Add new AVAIL andesperf32 and andesperf64. |
| Add new define RISCV_ATYPE_DI. |
| * config/riscv/riscv-ftypes.def: New DEF_RISCV_FTYPE. |
| * config/riscv/riscv.cc |
| (riscv_extend_cost): Cost for pattern 'bfo'. |
| (riscv_rtx_costs): Cost for XAndesperf extension. |
| * config/riscv/riscv.md: Add support for XAndesperf to patterns |
| zero_extendsidi2_internal, zero_extendhi2, extendsidi2_internal, |
| extend<SHORT:mode><SUPERQI:mode>2, <any_extract:optab><GPR:mode>3 |
| and branch_on_bit. |
| * config/riscv/vector-iterators.md |
| (sz): Add sign_extract and zero_extract. |
| * config/riscv/andes.def: New file for vender Andes. |
| * config/riscv/andes.md: New file for vender Andes. |
| |
| 2025-09-03 Kuan-Lin Chen <rufus@andestech.com> |
| |
| * config/riscv/riscv-ext.def: Include riscv-ext-andes.def. |
| * config/riscv/riscv-ext.opt (riscv_xandes_subext): New variable. |
| (XANDESPERF) : New mask. |
| (XANDESBFHCVT): Ditto. |
| (XANDESVBFHCVT): Ditto. |
| (XANDESVSINTLOAD): Ditto. |
| (XANDESVPACKFPH): Ditto. |
| (XANDESVDOT): Ditto. |
| * config/riscv/t-riscv: Add riscv-ext-andes.def. |
| * doc/riscv-ext.texi: Regenerated. |
| * config/riscv/riscv-ext-andes.def: New file. |
| |
| 2025-09-03 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfmax_vf_<mode>): Rename into... |
| (*vf<optab>_vf_<mode>): New pattern to combine vec_duplicate + |
| vf{min,max}.vv into vf{max,min}.vf. |
| * J: New file. |
| |
| 2025-09-03 Austin Law <austinklaw@gmail.com> |
| |
| PR target/121213 |
| * config/riscv/sync.md (amo_atomic_exchange_extended<mode>): |
| Separate insn with sign extension for 64 bit targets. |
| |
| 2025-09-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-profile.cc (ipa_profile): Dump profile_info. |
| |
| 2025-09-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * opts.cc (enable_fdo_optimizations): Do not auto-enabele loop |
| optimizations with AutoFDO. |
| |
| 2025-09-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * params.opt (-param=lto-partitions=): INcrease default value from 128 to 512. |
| |
| 2025-09-03 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/121749 |
| * config/aarch64/aarch64-simd.md (aarch64_<shrn_op>shrn_n<mode>): |
| Use aarch64_simd_shift_imm_offset_<vn_mode> instead of |
| aarch64_simd_shift_imm_offset_<ve_mode> predicate. |
| (aarch64_<shrn_op>shrn_n<mode> VQN define_expand): Likewise. |
| (*aarch64_<shrn_op>rshrn_n<mode>_insn): Likewise. |
| (aarch64_<shrn_op>rshrn_n<mode>): Likewise. |
| (aarch64_<shrn_op>rshrn_n<mode> VQN define_expand): Likewise. |
| (aarch64_sqshrun_n<mode>_insn): Likewise. |
| (aarch64_sqshrun_n<mode>): Likewise. |
| (aarch64_sqshrun_n<mode> VQN define_expand): Likewise. |
| (aarch64_sqrshrun_n<mode>_insn): Likewise. |
| (aarch64_sqrshrun_n<mode>): Likewise. |
| (aarch64_sqrshrun_n<mode>): Likewise. |
| * config/aarch64/iterators.md (vn_mode): Handle DI, SI, HI modes. |
| |
| 2025-09-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121756 |
| * tree-ssa-sink.cc (select_best_block): Avoid irreducible |
| regions in otherwise same loop depth. |
| (statement_sink_location): When sinking a VDEF, never place |
| that into an irreducible region. |
| |
| 2025-09-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-patterns.cc (vect_recog_cond_expr_convert_pattern): |
| Do not set any vector types. |
| |
| 2025-09-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121767 |
| * tree-vect-patterns.cc (vect_recog_mod_var_pattern): Disable |
| for reductions. |
| |
| 2025-09-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121758 |
| * tree-vect-patterns.cc (vect_mark_pattern_stmts): Try |
| harder to find a reduction continuation. |
| |
| 2025-09-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121355 |
| * fold-const.cc (split_address_to_core_and_offset): Handle an MEM_REF after the call |
| to get_inner_reference. |
| |
| 2025-09-02 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-ccp.cc (optimize_memcmp_eq): New function. |
| (pass_fold_builtins::execute): Call optimize_memcmp_eq |
| for memcmp. |
| * tree-ssa-strlen.cc (strlen_pass::handle_builtin_memcmp): Remove. |
| (strlen_pass::check_and_optimize_call): Don't call handle_builtin_memcmp. |
| |
| 2025-09-02 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-strlen.cc (strlen_pass::handle_builtin_memcmp): Create |
| unaligned types if the alignment of the pointers is less |
| than the alignment of the new type. |
| |
| 2025-09-02 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (simplify_builtin_memcmp): Create |
| unaligned types if the alignment of the pointers is less |
| than the alignment of the new type. |
| |
| 2025-09-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121753 |
| * tree-vect-patterns.cc (vect_synth_mult_by_constant): Properly |
| bail when synth_shift_p and an alg_shift use. Handle other |
| problematic cases. |
| |
| 2025-09-02 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/riscv-v.cc (is_vlmax_len_p): Properly handle VLS |
| modes. |
| (imm_avl_p): Fix VLS length check. |
| (expand_strided_load): Use is_vlmax_len_p. |
| (expand_strided_store): Ditto. |
| * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): |
| Use GET_MODE_NUNITS / NF as avl. |
| |
| 2025-09-02 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/121742 |
| * config/riscv/riscv-v.cc (expand_vec_perm): Use temporary if |
| op1 and target overlap. |
| |
| 2025-09-02 Andrew Stubbs <ams@baylibre.com> |
| |
| * doc/options.texi: Document NoOffload. |
| |
| 2025-09-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vect_transform_stmt): Clear |
| STMT_VINFO_VECTYPE for all stmts. |
| (vect_analyze_stmt): Likewise. But restore at the end again. |
| |
| 2025-09-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121754 |
| * tree-vectorizer.h (vect_reduc_type): Simplify to not ICE |
| on nested cycles. |
| |
| 2025-09-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.cc (bump_vector_ptr): Remove the |
| STMT_VINFO_VECTYPE use, bump is always specified. |
| |
| 2025-09-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_check_gather_scatter): Add |
| vectype parameter. |
| * tree-vect-data-refs.cc (vect_check_gather_scatter): Get |
| vectype as parameter. |
| (vect_analyze_data_refs): Adjust. |
| * tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Likewise. |
| * tree-vect-slp.cc (vect_get_and_check_slp_defs): Get vectype |
| as parameter, pass down. |
| (vect_build_slp_tree_2): Adjust. |
| * tree-vect-stmts.cc (vect_mark_stmts_to_be_vectorized): Likewise. |
| (vect_use_strided_gather_scatters_p): Likewise. |
| |
| 2025-09-02 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/extend.texi (Common Variable Attributes): Put counted_by |
| in alphabetical order. |
| |
| 2025-09-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/121663 |
| * tree-cfg.cc (assign_discriminator): Change map argument type |
| from hash_map with int_hash <int64_t, -1, -2> to one with |
| int_hash <unsigned, -1U, -2U>. Cast LOCATION_LINE to unsigned. |
| Return early for (unsigned) LOCATION_LINE above -3U. |
| (assign_discriminators): Change map type from hash_map with |
| int_hash <int64_t, -1, -2> to one with int_hash <unsigned, -1U, -2U>. |
| |
| 2025-09-02 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/gen-riscv-ext-opt.cc (version_t): Remove unused |
| struct. |
| (print_ext_doc_entry): Remove unused function. |
| |
| 2025-09-01 Jonathan Grant <jg@jguk.org> |
| |
| * doc/install.texi (Configuration): Fix spelling of "support" |
| and "floating-point arithmetic". |
| |
| 2025-09-01 Mark Harmstone <mark@harmstone.com> |
| |
| * dwarf2codeview.cc (get_type_num_array_type): Don't try to |
| encode non-C-style arrays. |
| |
| 2025-09-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * builtins.def: Implement C2Y N3577 - Rename s/uimaxabs/umaxabs/. |
| (BUILT_IN_UIMAXABS): Rename to ... |
| (BUILT_IN_UMAXABS): ... this. Change second argument to "umaxabs". |
| * builtins.cc (fold_builtin_1): Use BUILT_IN_UMAXABS rather than |
| BUILT_IN_UIMAXABS. |
| |
| 2025-09-01 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/invoke.texi (Optimize Options): Update the perfwiki web |
| address. |
| |
| 2025-09-01 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * diagnostics/logging.h (log_param_location_t): Cast |
| location_t value to fmt_size_t. |
| |
| 2025-09-01 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * configure: Regenerate. |
| * configure.ac: Do not claim cfi instruction support even |
| if the assembler has it. |
| |
| 2025-09-01 Yoshinori Sato <yoshinori.sato@nifty.com> |
| |
| PR target/89828 |
| * config/rx/rx.cc (add_pop_cfi_notes): Release the frame pointer if it is |
| used. |
| (rx_expand_prologue): Redesigned stack pointer and frame pointer update |
| process. |
| |
| 2025-09-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121744 |
| * tree-vect-patterns.cc (vect_recog_vector_vector_shift_pattern): |
| Allow constant left operand. |
| |
| 2025-09-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): |
| Use SLP_TREE_REDUC_IDX for following the SLP graph and |
| for identifying whether we use the 'else' in a COND. |
| (vectorizable_lane_reducing): Simplify check of whether |
| we are in a reduction. |
| (vectorizable_reduction): Add sanity checking around |
| SLP_TREE_REDUC_IDX and use it where it looks appropriate. |
| (vect_transform_reduction): Use SLP_TREE_REDUC_IDX. |
| * tree-vect-stmts.cc (vectorizable_call): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_condition): Likewise. |
| |
| 2025-09-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_live_operation): Check |
| vect_is_reduction on the SLP node rather than |
| STMT_VINFO_REDUC_DEF on the stmt. |
| (vectorizable_reduction): Do not set STMT_VINFO_REDUC_DEF |
| on live stmts. |
| |
| 2025-09-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_reduc_info): New. |
| (create_info_for_reduction): Likewise. |
| (VECT_REDUC_INFO_TYPE): Likewise. |
| (VECT_REDUC_INFO_CODE): Likewise. |
| (VECT_REDUC_INFO_FN): Likewise. |
| (VECT_REDUC_INFO_SCALAR_RESULTS): Likewise. |
| (VECT_REDUC_INFO_INITIAL_VALUES): Likewise. |
| (VECT_REDUC_INFO_REUSED_ACCUMULATOR): Likewise. |
| (VECT_REDUC_INFO_INDUC_COND_INITIAL_VAL): Likewise. |
| (VECT_REDUC_INFO_EPILOGUE_ADJUSTMENT): Likewise. |
| (VECT_REDUC_INFO_FORCE_SINGLE_CYCLE): Likewise. |
| (VECT_REDUC_INFO_RESULT_POS): Likewise. |
| (VECT_REDUC_INFO_VECTYPE): Likewise. |
| (STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Remove. |
| (STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise. |
| (STMT_VINFO_FORCE_SINGLE_CYCLE): Likewise. |
| (STMT_VINFO_REDUC_FN): Likewise. |
| (STMT_VINFO_REDUC_VECTYPE): Likewise. |
| (vect_reusable_accumulator::reduc_info): Adjust. |
| (vect_reduc_type): Adjust. |
| (_slp_tree::cycle_info): New member. |
| (SLP_TREE_REDUC_IDX): Likewise. |
| (vect_reduc_info_s): Move/copy data from ... |
| (_stmt_vec_info): ... here. |
| (_loop_vec_info::redcu_infos): New member. |
| (info_for_reduction): Adjust to take SLP node. |
| (vect_reduc_type): Adjust. |
| (vect_is_reduction): Add overload for SLP node. |
| * tree-vectorizer.cc (vec_info::new_stmt_vec_info): |
| Do not initialize removed members. |
| (vec_info::free_stmt_vec_info): Do not release them. |
| * tree-vect-stmts.cc (vectorizable_condition): Adjust. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize |
| cycle info. |
| (vect_build_slp_tree_2): Compute SLP reduc_idx and store |
| it. Create, populate and propagate reduction info. |
| (vect_print_slp_tree): Print cycle info. |
| (vect_analyze_slp_reduc_chain): Set cycle info on the |
| manual added conversion node. |
| (vect_optimize_slp_pass::start_choosing_layouts): Adjust. |
| * tree-vect-loop.cc (_loop_vec_info::~_loop_vec_info): |
| Release reduction infos. |
| (info_for_reduction): Get the reduction info from |
| the vector in the loop_vinfo. |
| (vect_create_epilog_for_reduction): Adjust. |
| (vectorizable_reduction): Likewise. |
| (vect_transform_reduction): Likewise. |
| (vect_transform_cycle_phi): Likewise, deal with nested |
| cycles not part of a double reduction have no reduction info. |
| * config/aarch64/aarch64.cc (aarch64_force_single_cycle): |
| Use VECT_REDUC_INFO_FORCE_SINGLE_CYCLE, get SLP node and use |
| that. |
| (aarch64_vector_costs::count_ops): Adjust. |
| |
| 2025-09-01 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR target/121392 |
| * doc/install.texi (amdgcn): Mention Newlib commit |
| that fixes another SIMD issue. |
| |
| 2025-09-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_is_simple_iv_evolution): Get |
| stmt_info and store into STMT_VINFO_LOOP_PHI_EVOLUTION_BASE_UNCHANGED |
| and STMT_VINFO_LOOP_PHI_EVOLUTION_PART here. Drop unused |
| output parameters. |
| (vect_is_nonlinear_iv_evolution): Likewise. |
| (vect_analyze_scalar_cycles_1): Remove redundant setting |
| of STMT_VINFO_LOOP_PHI_EVOLUTION_BASE_UNCHANGED and |
| STMT_VINFO_LOOP_PHI_EVOLUTION_PART. |
| |
| 2025-09-01 Cui, Lili <lili.cui@intel.com> |
| |
| PR rtl-optimization/117838 |
| * ira-color.cc (improve_allocation): Remove soft conflict related code. |
| |
| 2025-09-01 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/121699 |
| * config/i386/predicates.md (const_vec_dup_operand): New |
| predicate. |
| * config/i386/sse.md (cond_<insn><mode>): Fix predicate of |
| operands[3], and fix wrong operands passed to |
| ix86_vgf2p8affine_shift_matrix and |
| gen_vgf2p8affineqb_<mode>_mask. |
| |
| 2025-08-31 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/predicates.md (alt_ubranch_operator): |
| New predicate. |
| * config/xtensa/xtensa.md (*eqne_in_range): |
| New insn_and_split pattern. |
| |
| 2025-08-31 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| * config/riscv/riscv-protos.h (synthesize_add_extended): Prototype. |
| * config/riscv/riscv.cc (synthesize_add_extended): New function. |
| * config/riscv/riscv.md (addsi3): For RV64, try synthesize_add_extended. |
| |
| 2025-08-31 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Binaries): Drop MinGW. |
| |
| 2025-08-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/121698 |
| * tree-ssa-phiopt.cc (spaceship_replacement): Adjust |
| to handle spaceship unordered value -128 rather than 2 and |
| stmts from the new std::partial_order::_M_reverse() instead |
| of (_M_value & ~1) == _M_value etc. |
| * doc/md.texi (spaceship@var{m}4): Use -128 instead of 2. |
| * tree-ssa-math-opts.cc (optimize_spaceship): Adjust comments |
| that libstdc++ unordered value is -128 rather than 2 and use |
| that as the default unordered value. |
| * config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Use |
| GEN_INT (-128) instead of const2_rtx and adjust comment accordingly. |
| * config/aarch64/aarch64.cc (aarch64_expand_fp_spaceship): Likewise. |
| * config/s390/s390.cc (s390_expand_fp_spaceship): Likewise. |
| |
| 2025-08-30 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (Vector Extensions): Improve markup for list |
| of operators. |
| |
| 2025-08-30 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/standards.texi (Standards): Update "Object-Oriented |
| Programming and the Objective-C Language" reference. |
| |
| 2025-08-30 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121725 |
| * config/i386/i386-features.cc |
| (pass_x86_cse::candidate_gnu2_tls_p): Use the UNSPEC_DTPOFF |
| operand to check source operand in TLS64_COMBINE pattern. |
| |
| 2025-08-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/116651 |
| PR tree-optimization/93265 |
| PR tree-optimization/103647 |
| PR tree-optimization/52171 |
| * tree-ssa-forwprop.cc (simplify_builtin_memcmp): New function. |
| (simplify_builtin_call): Call simplify_builtin_memcmp for memcmp |
| memcmp_eq builtins. |
| |
| 2025-08-29 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/121709 |
| * doc/gm2.texi (Module Search Path): Reflect the new |
| search order. |
| |
| 2025-08-29 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add diagnostics/logging.o. |
| * diagnostic-global-context.cc: Include "diagnostics/logging.h". |
| (log_function_params, auto_inc_log_depth): New "using" decls. |
| (verbatim): Add logging. |
| (emit_diagnostic): Likewise. |
| (emit_diagnostic_valist): Likewise. |
| (emit_diagnostic_valist_meta): Likewise. |
| (inform): Likewise. |
| (inform_n): Likewise. |
| (warning): Likewise. |
| (warning_at): Likewise. |
| (warning_meta): Likewise. |
| (warning_n): Likewise. |
| (pedwarn): Likewise. |
| (permerror): Likewise. |
| (permerror_opt): Likewise. |
| * diagnostics/context.cc: Include "diagnostics/logging.h". |
| (context::initialize): Initialize m_logger. Add logging. |
| (context::finish): Add logging. Clean up m_logger. |
| (context::dump): Add indent param. |
| (context::set_sink): Add logging. |
| (context::add_sink): Add logging. |
| (diagnostic_kind_debug_text): New. |
| (get_debug_string_for_kind): New. |
| (context::report_diagnostic): Add logging. |
| (context::diagnostic_impl): Likewise. |
| (context::diagnostic_n_impl): Likewise. |
| (context::end_group): Likewise. |
| * diagnostics/context.h: Include "diagnostics/logging.h". |
| (context::dump): Add indent param. |
| (context::get_logger): New accessor. |
| (context::classify_diagnostics): Add logging. |
| (context::push_diagnostics): Likewise. |
| (context::pop_diagnostics): Likewise. |
| (context::m_logger): New field. |
| * diagnostics/html-sink.cc: Include "diagnostics/logging.h". |
| (html_builder::flush_to_file): Add logging. |
| (html_sink::on_report_diagnostic): Likewise. |
| * diagnostics/kinds.h (get_debug_string_for_kind): New decl. |
| * diagnostics/logging.cc: New file. |
| * diagnostics/logging.h: New file. |
| * diagnostics/output-file.h: Include "label-text.h". |
| * diagnostics/sarif-sink.cc: Include "diagnostics/logging.h". |
| (sarif_builder::flush_to_object): Add logging. |
| (sarif_builder::flush_to_file): Likewise. |
| (sarif_sink::on_report_diagnostic): Likewise. |
| * diagnostics/sink.h (sink::get_logger): New. |
| * diagnostics/text-sink.cc: Include "diagnostics/logging.h". |
| (text_sink::on_report_diagnostic): Add logging. |
| * doc/invoke.texi (Environment Variables): Document |
| GCC_DIAGNOSTICS_LOG. |
| * opts-diagnostic.cc: Include "diagnostics/logging.h". |
| (handle_OPT_fdiagnostics_add_output_): Add loggging. |
| (handle_OPT_fdiagnostics_set_output_): Likewise. |
| |
| 2025-08-29 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa-protos.h (xtensa_bswapsi2_output): |
| New function prototype. |
| * config/xtensa/xtensa.cc |
| (xtensa_bswapsi2_output_1, xtensa_bswapsi2_output): |
| New functions. |
| * config/xtensa/xtensa.md (bswapsi2_internal): |
| Rewrite in compact syntax and use xtensa_bswapsi2_output() as asm |
| output. |
| |
| 2025-08-29 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/121548 |
| * config/riscv/riscv-avlprop.cc (get_insn_vtype_mode): Assert |
| MODE_IDX is smaller than the number of operands. |
| (simplify_replace_vlmax_avl): Similarly. |
| (pass_avlprop::get_vlmax_ta_preferred_avl): Similarly. |
| * config/riscv/vector.md: Override merge_op_idx computation |
| for simple moves, just like is done for avl_type_idx and mode_idx. |
| |
| 2025-08-29 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md |
| (*vfmin_vf_ieee_<mode>): Add new patterns to combine vec_duplicate + |
| vfmin.vv (unspec) into vfmin.vf. |
| (*vfmul_vf_<mode>, *vfrdiv_vf_<mode>, *vfmin_vf_<mode>): Fix attribute |
| types. |
| * config/riscv/vector.md (@pred_<ieee_fmaxmin_op><mode>_scalar): Allow |
| VLS modes. |
| |
| 2025-08-29 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121096 |
| * config/i386/i386-expand.cc (expand_cpymem_epilogue): Set and |
| clear by_pieces_in_use when using by_pieces op. |
| (expand_setmem_epilogue): Likewise. |
| * config/i386/i386.cc (ix86_use_by_pieces_infrastructure_p): New. |
| (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise. |
| * config/i386/i386.h (machine_function): Add by_pieces_in_use. |
| |
| 2025-08-29 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121108 |
| * config/i386/i386-expand.cc (setmem_epilogue_gen_val): Don't |
| assert op_mode == word_mode and handle any integer modes. |
| |
| 2025-08-29 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121694 |
| * config/i386/i386-features.cc (redundant_pattern): Add |
| tlsdesc_val. |
| (pass_x86_cse): Likewise. |
| (pass_x86_cse::tls_set_insn_from_symbol): New member function. |
| (pass_x86_cse::candidate_gnu2_tls_p): Set tlsdesc_val. For |
| TLS64_COMBINE, match both UNSPEC_TLSDESC and UNSPEC_DTPOFF |
| symbols. For TLS64_CALL, match the UNSPEC_TLSDESC sumbol. |
| (pass_x86_cse::x86_cse): Initialize the tlsdesc_val field in |
| load. Pass the tlsdesc_val field to ix86_place_single_tls_call |
| for X86_CSE_TLSDESC. |
| |
| 2025-08-29 Tobias Burnus <tburnus@baylibre.com> |
| |
| * doc/invoke.texi (AMD GCN Options: -march): Remove '(experimental)' |
| from gfx-{9,10-3,11}-generic. |
| |
| 2025-08-29 Tobias Burnus <tburnus@baylibre.com> |
| |
| * doc/install.texi (amdgcn): Clarify which binaries must be the |
| LLVM version and which must be installed. Update version data for |
| ROCm for generic architectures. |
| |
| 2025-08-29 liuhongt <hongtao.liu@intel.com> |
| |
| * doc/invoke.texi: Document -param=ix86-vect-unroll-limit. |
| |
| 2025-08-29 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*vnmsac_vx_<mode>): Add new |
| pattern to combine to vx. |
| * config/riscv/vector.md (@pred_vnmsac_vx_<mode>): Add new |
| pattern to generate rtl. |
| (*pred_nmsac_<mode>_scalar_undef): Ditto. |
| |
| 2025-08-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/115201 |
| * passes.def: Move cleanup_eh before first tail_recursion. |
| |
| 2025-08-28 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfmin_vf_<mode>): Add new pattern to |
| combine vec_duplicate + vfmin.vv into vfmin.vf. |
| * config/riscv/vector.md (@pred_<optab><mode>_scalar): Allow VLS modes. |
| |
| 2025-08-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_analyze_loop_form): Dump |
| niter assumption used for versioning. |
| |
| 2025-08-28 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR middle-end/66462 |
| * config/aarch64/aarch64.md (isinf<mode>2): Add new expander. |
| * config/aarch64/iterators.md (mantissa_bits): Add new mode_attr. |
| |
| 2025-08-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorize_fold_left_reduction): Do not get |
| reduc_var as argument, instead compute it here. |
| (vect_transform_reduction): Adjust. |
| |
| 2025-08-28 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/121629 |
| * doc/gm2.texi (Module Search Path): New section. |
| (Compiler options): New option -fm2-pathname-root=. |
| New option -fm2-pathname-rootI. |
| |
| 2025-08-28 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR debug/119367 |
| * acinclude.m4 (gcc_GAS_FLAGS): For gcn, use "--filetype=obj |
| -triple=amdgcn--amdhsa", if supported. |
| * configure: Regenerate. |
| * doc/install.texi (amdgcn-*-*): Also add llvm-objdump to the list of |
| to-be-copied files. |
| |
| 2025-08-28 Richard Biener <rguenther@suse.de> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-patterns.cc (vect_synth_mult_by_constant): Avoid |
| in cases that introduce multiple uses of reduction operands. |
| |
| 2025-08-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-patterns.cc (vect_recog_divmod_pattern): Avoid |
| for stmts participating in a reduction. |
| |
| 2025-08-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/119367 |
| * configure.ac (gcc_cv_as_leb128): Add fallback using readelf. |
| Grammar fix in comment. |
| * configure: Regenerate. |
| |
| 2025-08-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/119367 |
| * dwarf2out.cc (output_one_line_info_table) <case LI_adv_address>: If |
| HAVE_AS_LEB128, use DW_LNS_advance_pc with dw2_asm_output_delta_uleb128 |
| instead of DW_LNS_fixed_advance_pc with dw2_asm_output_delta. |
| |
| 2025-08-27 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121695 |
| * tree-if-conv.cc (factor_out_operators): Fix typo |
| in assignment of the phi. |
| |
| 2025-08-27 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_transform_cycle_phi): Remove |
| unused reduc_stmt_info. |
| |
| 2025-08-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121686 |
| * tree-vect-slp.cc (vect_analyze_slp): Consider all only-live |
| non-reduction defs for discovery. |
| |
| 2025-08-27 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121668 |
| * config/i386/i386-features.cc (ix86_emit_tls_call): Emit the |
| TLS call after debug marker. |
| |
| 2025-08-27 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv-cores.def (xt-c908v): Drop xtheadvdot. |
| (xt-c910v2): Remove extraenous whitespace. |
| (xt-c920v2): Drop xtheadvdot and remove extraeonous whitespace. |
| |
| 2025-08-26 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.cc (ix86_vector_costs::ix86_vector_costs): |
| Addd new memeber m_num_reduc, m_prefer_unroll. |
| (ix86_vector_costs::add_stmt_cost): Set m_prefer_unroll and |
| m_num_reduc |
| (ix86_vector_costs::finish_cost): Determine |
| m_suggested_unroll_vector with consideration of |
| reduc_lat_mult_thr, m_num_reduction and |
| ix86_vect_unroll_limit. |
| * config/i386/i386.h (enum ix86_reduc_unroll_factor): New |
| enum. |
| (processor_costs): Add reduc_lat_mult_thr and |
| vect_unroll_limit. |
| * config/i386/x86-tune-costs.h: Initialize |
| reduc_lat_mult_thr and vect_unroll_limit. |
| * config/i386/i386.opt: Add -param=ix86-vect-unroll-limit. |
| |
| 2025-08-26 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfrdiv_vf_<mode>): Add new pattern to |
| combine vec_duplicate + vfdiv.vv into vfrdiv.vf. |
| * config/riscv/vector.md (@pred_<optab><mode>_reverse_scalar): Allow VLS |
| modes. |
| |
| 2025-08-26 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/121290 |
| * config/aarch64/aarch64.cc |
| (class aarch64_vector_costs ): Add m_loop_fully_scalar_dup. |
| (aarch64_vector_costs::add_stmt_cost): Detect invariant inner loops. |
| (adjust_body_cost): Adjust final costing if m_loop_fully_scalar_dup. |
| |
| 2025-08-26 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/autovec-opt.md (*vfmul_vf_<mode>): Add new pattern to |
| combine vec_duplicate + vfmul.vv into vfmul.vf. |
| * config/riscv/vector.md (@pred_<optab><mode>_scalar): Allow VLS modes. |
| |
| 2025-08-26 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_arg_partial_bytes): Remove name |
| from unused parameter. |
| |
| 2025-08-26 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_reduc_type): Get SLP node as argument. |
| * config/aarch64/aarch64.cc (aarch64_sve_in_loop_reduction_latency): |
| Take SLO node as argument and adjust. |
| (aarch64_in_loop_reduction_latency): Likewise. |
| (aarch64_detect_vector_stmt_subtype): Adjust. |
| (aarch64_vector_costs::count_ops): Likewise. Treat reductions |
| during scalar costing as single-cycle. |
| |
| 2025-08-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121659 |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Do not allow |
| matching up comparison operators by swapping if that would |
| disturb STMT_VINFO_REDUC_IDX. Make sure to only |
| actually mark operands for swapping when there was a |
| mismatch and we're not processing the first stmt. |
| |
| 2025-08-26 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_store): Access lanes_ifn |
| only when VMAT_LOAD_STORE_LANES. |
| (vectorizable_load): Likewise. |
| |
| 2025-08-26 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (stmt_vec_info_::reduc_vectype_in): Remove. |
| (STMT_VINFO_REDUC_VECTYPE_IN): Likewise. |
| * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): Get |
| at the input vectype via the SLP node child. |
| (vectorizable_lane_reducing): Likewise. |
| (vect_transform_reduction): Likewise. |
| (vectorizable_reduction): Do not set STMT_VINFO_REDUC_VECTYPE_IN. |
| |
| 2025-08-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/121658 |
| * config/i386/sse.md (<insn><mode>3 any_shift): Use const0_rtx |
| instead of GEN_INT (0). |
| (cond_<insn><mode> any_shift): Likewise. Formatting fix. |
| (<insn><mode>3 any_rotate): Use register_operand predicate instead of |
| general_operand for match_operand 1. Use const0_rtx instead of |
| GEN_INT (0). |
| (<insn>v16qi3 any_rotate): Use force_reg on operands[1]. Formatting |
| fix. |
| * config/i386/i386.cc (ix86_shift_rotate_cost): Comment formatting |
| fixes. |
| |
| 2025-08-26 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md (@pred_mul_plus_vx_<mode>): Add new pattern to |
| generate vmacc rtl. |
| (*pred_macc_<mode>_scalar_undef): Ditto. |
| * config/riscv/autovec-opt.md (*vmacc_vx_<mode>): Add new |
| pattern to match the vmacc vx combine. |
| |
| 2025-08-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/121453 |
| * omp-expand.cc (expand_omp_for_init_counts): Clear fd->loop.n2 |
| before first zero count check if zero_iter1_bb is non-NULL upon |
| entry and fd->loop.n2 has not been written yet. |
| |
| 2025-08-25 David Faust <david.faust@oracle.com> |
| |
| PR debug/121411 |
| * dwarf2ctf.cc (gen_ctf_subrange_type): Use unsigned HWI for |
| array_num_elements. Fallback to CTF_K_UNKNOWN if the array |
| type has too many elements for CTF to represent. |
| |
| 2025-08-25 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (simplify_permutation): Boolify. |
| (pass_forwprop::execute): No longer handle 2 as the return |
| from simplify_permutation. |
| |
| 2025-08-25 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (forward_propagate_into_comparison): Boolify. |
| (pass_forwprop::execute): Don't handle return of 2 from |
| forward_propagate_into_comparison. |
| |
| 2025-08-25 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (remove_prop_source_from_use): Remove |
| return type. |
| (forward_propagate_into_comparison): Update dealing with |
| no return type of remove_prop_source_from_use. |
| (forward_propagate_into_gimple_cond): Likewise. |
| (simplify_permutation): Likewise. |
| |
| 2025-08-25 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (simplify_gimple_switch): Add simple_dce_worklist |
| argument. Mark the old index when doing the replacement. |
| (pass_forwprop::execute): Update call to simplify_gimple_switch. |
| |
| 2025-08-25 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121279 |
| * gimple-fold.cc (gimple_needing_rewrite_undefined): Return |
| true for non mode precision boolean loads. |
| (rewrite_to_defined_unconditional): Handle non mode precision loads. |
| |
| 2025-08-25 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-loop-im.cc (execute_sm): Call |
| get_or_create_ssa_default_def for the new uninitialized |
| decl. |
| |
| 2025-08-25 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (addsi3, <u>mulhisi3, andsi3, |
| zero_extend<mode>si2, extendhisi2_internal, movsi_internal, |
| movhi_internal, movqi_internal, movsf_internal, ashlsi3_internal, |
| ashrsi3, lshrsi3, rotlsi3, rotrsi3): |
| Rewrite in compact syntax. |
| |
| 2025-08-25 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md |
| (The auxiliary define_split for *masktrue_const_bitcmpl): |
| Use a more concise function call, i.e., |
| (1 << GET_MODE_BITSIZE (mode)) - 1 is equivalent to |
| GET_MODE_MASK (mode). |
| |
| 2025-08-25 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (mode_bits): |
| New mode attribute. |
| (zero_extend<mode>si2): Use the appropriate mode iterator and |
| attribute to unify "zero_extend[hq]isi2" to this description. |
| |
| 2025-08-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121638 |
| * tree-vect-stmts.cc (process_use): Do not make induction |
| PHI backedge values relevant. |
| |
| 2025-08-25 Indu Bhagat <indu.bhagat@oracle.com> |
| Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com> |
| |
| * asan.h (HWASAN_TAG_SIZE): Use targetm.memtag.tag_bitsize. |
| * config/i386/i386.cc (ix86_memtag_tag_size): Rename to |
| ix86_memtag_tag_bitsize. |
| (TARGET_MEMTAG_TAG_SIZE): Renamed to TARGET_MEMTAG_TAG_BITSIZE. |
| * doc/tm.texi (TARGET_MEMTAG_TAG_SIZE): Likewise. |
| * doc/tm.texi.in (TARGET_MEMTAG_TAG_SIZE): Likewise. |
| * target.def (tag_size): Rename to tag_bitsize. |
| * targhooks.cc (default_memtag_tag_size): Rename to |
| default_memtag_tag_bitsize. |
| * targhooks.h (default_memtag_tag_size): Likewise. |
| |
| 2025-08-25 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-protos.h (riscv_init_cumulative_args): Change |
| fntype parameter from tree to const_tree. |
| * config/riscv/riscv.cc (riscv_init_cumulative_args): Likewise. |
| (riscv_function_value): Replace with new implementation that |
| conforms to TARGET_FUNCTION_VALUE hook signature. |
| (riscv_libcall_value): New function implementing TARGET_LIBCALL_VALUE. |
| (TARGET_FUNCTION_VALUE): Define. |
| (TARGET_LIBCALL_VALUE): Define. |
| * config/riscv/riscv.h (FUNCTION_VALUE): Remove. |
| (LIBCALL_VALUE): Remove. |
| |
| 2025-08-25 Andi Kleen <ak@gcc.gnu.org> |
| |
| * config/i386/i386-expand.cc (ix86_vgf2p8affine_shift_matrix): |
| New function to lookup shift/rotate matrixes for gf2p8affine. |
| * config/i386/i386-protos.h (ix86_vgf2p8affine_shift_matrix): |
| Declare new function. |
| * config/i386/i386.cc (ix86_shift_rotate_cost): Add cost model |
| for shift/rotate implemented using gf2p8affine. |
| * config/i386/sse.md (VI1_AVX512_3264): New mode iterator. |
| (<insn><mode>3): Add GFNI case for shift patterns. |
| (cond_<insn><mode>3): New pattern. |
| (<insn><mode>3<mask_name>): Dito. |
| (<insn>v16qi): New rotate pattern to handle XOP V16QI case |
| and GFNI. |
| (rotl<mode>3, rotr<mode>3): Exclude V16QI case. |
| |
| 2025-08-25 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/121634 |
| * config/loongarch/simd.md (simd_maddw_evod_<mode>_<su>): Use |
| WVEC_HALF instead of WVEC for the mode of the sign_extend for |
| the rhs of multiplication. |
| |
| 2025-08-25 Jeff Law <jlaw@ventanamicro.com> |
| |
| * ifcvt.cc (noce_try_sign_bit_splat): Fix right shift computation. |
| |
| 2025-08-23 Sam James <sam@gentoo.org> |
| |
| PR target/120933 |
| * config.gcc (supported_defaults): Add tls for i386, x86_64. |
| * config/i386/i386.h (OPTION_DEFAULT_SPECS): Add tls. |
| * doc/install.texi: Document --with-tls= for i386, x86_64. |
| |
| 2025-08-23 John Ericson <git@JohnEricson.me> |
| |
| * gcc.cc (for_each_path): templated, to make passing lambdas |
| possible/easy/safe, and to have a polymorphic return type. |
| (struct add_to_obstack_info): Deleted, lambda captures replace |
| it. |
| (add_to_obstack): Moved to lambda in build_search_list. |
| (build_search_list): Has above lambda now. |
| (struct file_at_path_info): Deleted, lambda captures replace |
| it. |
| (file_at_path): Moved to lambda in find_a_file. |
| (find_a_file): Has above lambda now. |
| (struct spec_path_info): Reamed to just struct spec_path. |
| (struct spec_path): New name. |
| (spec_path): Rnamed to spec_path::operator() |
| (spec_path::operator()): New name |
| (do_spec_1): Updated for_each_path call sites. |
| |
| 2025-08-22 Kishan Parmar <kishan@linux.ibm.com> |
| |
| PR target/118890 |
| * config/rs6000/rs6000.cc (can_be_rotated_to_negative_lis): Add bounds |
| checks for shift counts to prevent undefined behavior. |
| (rs6000_emit_set_long_const): Likewise. |
| |
| 2025-08-22 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/120553 |
| * ifcvt.cc (noce_try_sign_bit_splat): New function. |
| (noce_process_if_block): Use it. |
| |
| 2025-08-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_live_operation): Pass |
| the representative of the PHIs node to |
| vect_create_epilog_for_reduction. |
| |
| 2025-08-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_lane_reducing): Get |
| reduction info properly. Adjust checks according to |
| comments. |
| (vectorizable_reduction): Do not set STMT_VINFO_REDUC_VECTYPE_IN |
| on the reduc info. |
| (vect_transform_reduction): Query STMT_VINFO_REDUC_VECTYPE_IN |
| on the actual reduction stmt, not the info. |
| |
| 2025-08-22 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add form 3 for unsigned SAT_MUL. |
| |
| 2025-08-22 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121635 |
| * config/i386/i386-features.cc (ix86_emit_tls_call): Emit the |
| TLS call after NOTE_INSN_FUNCTION_BEG. |
| |
| 2025-08-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (get_initial_defs_for_reduction): Adjust |
| comment. |
| (vect_create_epilog_for_reduction): Get at the reduction |
| kind via the instance, re-use the slp_reduc flag instead |
| of checking REDUC_GROUP_FIRST_ELEMENT again. |
| Remove unreachable code. |
| (vectorizable_reduction): Compute a reduc_chain flag from |
| the SLP instance kind, avoid REDUC_GROUP_FIRST_ELEMENT |
| checks. |
| (vect_transform_cycle_phi): Likewise. |
| (vectorizable_live_operation): Check the SLP instance |
| kind instead of REDUC_GROUP_FIRST_ELEMENT. |
| |
| 2025-08-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-parloops.cc (parloops_is_simple_reduction): Pass |
| in double reduction inner loop LC phis and query that. |
| (parloops_force_simple_reduction): Similar, but set it. |
| Check for valid reduction types here. |
| (valid_reduction_p): Remove. |
| (gather_scalar_reductions): Adjust, fixup double |
| reduction inner loop processing. |
| |
| 2025-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/riscv/t-rtems: Add -mstrict-align multilibs for |
| targets without support for misaligned access in hardware. |
| |
| 2025-08-21 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/pru/pru.cc (pru_init_libfuncs): Set softmpy libgcc |
| functions for optab multiplication entries if TARGET_OPT_MUL |
| option is not set. |
| |
| 2025-08-21 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config.gcc: Include pru/t-multilib. |
| * config/pru/pru.h (MULTILIB_DEFAULTS): Define. |
| * config/pru/t-multilib: New file. |
| |
| 2025-08-21 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * common/config/pru/pru-common.cc (TARGET_DEFAULT_TARGET_FLAGS): |
| Keep multiplication, FILL and ZERO instructions enabled by |
| default. |
| * config/pru/pru.md (prumov<mode>): Gate code generation on |
| TARGET_OPT_FILLZERO. |
| (mov<mode>): Ditto. |
| (zero_extendqidi2): Ditto. |
| (zero_extendhidi2): Ditto. |
| (zero_extendsidi2): Ditto. |
| (@pru_ior_fillbytes<mode>): Ditto. |
| (@pru_and_zerobytes<mode>): Ditto. |
| (@<code>di3): Ditto. |
| (mulsi3): Gate code generation on TARGET_OPT_MUL. |
| * config/pru/pru.opt: Add mmul and mfillzero options. |
| * config/pru/pru.opt.urls: Regenerate. |
| * config/rl78/rl78.opt.urls: Regenerate. |
| * doc/invoke.texi: Document new options. |
| |
| 2025-08-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/121619 |
| * rtl-ssa/functions.h (function_info::commit_make_use_available): |
| Declare. |
| * rtl-ssa/blocks.cc (function_info::commit_make_use_available): |
| New function. |
| * rtl-ssa/changes.cc (function_info::apply_changes_to_insn): Use it. |
| |
| 2025-08-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/111494 |
| * gimple-fold.h (arith_code_with_undefined_signed_overflow): Declare. |
| * gimple-fold.cc (arith_code_with_undefined_signed_overflow): Export. |
| * tree-vect-stmts.cc (vectorizable_operation): Use unsigned |
| arithmetic for operations participating in a reduction. |
| |
| 2025-08-21 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121607 |
| * config/i386/i386-features.cc (ix86_emit_tls_call): Emit the |
| TLS call after NOTE_INSN_BASIC_BLOCK in a basic block with only |
| a label. |
| |
| 2025-08-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (*btrue_INT_MIN): |
| Change the branch insn condition to test for a negative number |
| rather than testing for the MSB. |
| |
| 2025-08-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vectorizable_phi): Take bb_vec_info. |
| (vectorizable_early_exit): Take loop_vec_info. |
| * tree-vect-loop.cc (vectorizable_phi): Adjust. |
| * tree-vect-slp.cc (vect_slp_analyze_operations): Likewise. |
| (vectorize_slp_instance_root_stmt): Likewise. |
| * tree-vect-stmts.cc (vectorizable_early_exit): Likewise. |
| (vect_transform_stmt): Likewise. |
| (vect_analyze_stmt): Merge the sequences of vectorizable_* |
| where common. |
| |
| 2025-08-20 Qing Zhao <qing.zhao@oracle.com> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2025-08-20 Qing Zhao <qing.zhao@oracle.com> |
| |
| PR tree-optimization/109071 |
| PR tree-optimization/85788 |
| PR tree-optimization/88771 |
| PR tree-optimization/106762 |
| PR tree-optimization/108770 |
| PR tree-optimization/115274 |
| PR tree-optimization/117179 |
| * Makefile.in (OBJS): Add diagnostic-context-rich-location.o. |
| * common.opt (fdiagnostics-show-context): New option. |
| (fdiagnostics-show-context=): New option. |
| * diagnostic-context-rich-location.cc: New file. |
| * diagnostic-context-rich-location.h: New file. |
| * doc/invoke.texi (fdiagnostics-details): Add |
| documentation for the new options. |
| * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Add |
| one new parameter. Use rich location with details for warning_at. |
| (array_bounds_checker::check_array_ref): Use rich location with |
| ditails for warning_at. |
| (array_bounds_checker::check_mem_ref): Add one new parameter. |
| Use rich location with details for warning_at. |
| (array_bounds_checker::check_addr_expr): Use rich location with |
| move_history_diagnostic_path for warning_at. |
| (array_bounds_checker::check_array_bounds): Call check_mem_ref with |
| one more parameter. |
| * gimple-array-bounds.h: Update prototype for check_mem_ref. |
| * gimple-ssa-warn-access.cc (warn_string_no_nul): Use rich location |
| with details for warning_at. |
| (maybe_warn_nonstring_arg): Likewise. |
| (maybe_warn_for_bound): Likewise. |
| (warn_for_access): Likewise. |
| (check_access): Likewise. |
| (pass_waccess::check_strncat): Likewise. |
| (pass_waccess::maybe_check_access_sizes): Likewise. |
| * gimple-ssa-warn-restrict.cc (pass_wrestrict::execute): Calculate |
| dominance info for diagnostics show context. |
| (maybe_diag_overlap): Use rich location with details for warning_at. |
| (maybe_diag_access_bounds): Use rich location with details for |
| warning_at. |
| |
| 2025-08-20 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121568 |
| * ipa-prop.h (build_ref_for_offset): Remove. |
| * tree-sra.cc (build_ref_for_offset): Make static. |
| |
| 2025-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config.gcc (aarch64*-*-*): Remove aarch64-cc-fusion.o from |
| extra_objs. |
| * config/aarch64/aarch64-passes.def (pass_cc_fusion): Delete. |
| * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Delete. |
| * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): Delete. |
| * config/aarch64/aarch64-cc-fusion.cc: Delete. |
| * late-combine.cc (late_combine::optimizable_set): Take a set_info * |
| rather than an insn_info * and move destination tests from... |
| (late_combine::combine_into_uses): ...here. Take a set_info * rather |
| an insn_info *. Take the rtx set. |
| (late_combine::parallelize_insns, late_combine::combine_cc_setter) |
| (late_combine::combine_insn): New member functions. |
| (late_combine::m_parallel): New member variable. |
| * rtlanal.cc (pattern_cost): Handle sets of CC registers in the |
| same way as comparisons. |
| |
| 2025-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * rtl-ssa/blocks.cc (function_info::create_degenerate_phi): Fix |
| inverted test of bitmap_set_bit. Call add_live_out_use even |
| if the register was previously live-out from the predecessor block. |
| Instead... |
| (function_info::add_live_out_use): ...check here whether a live-out |
| use already exists. |
| |
| 2025-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * rtl-ssa/accesses.h (use_lookup): New class. |
| * rtl-ssa/functions.h (function_info::find_def): Expand comment. |
| (function_info::find_use): Declare. |
| * rtl-ssa/member-fns.inl (use_lookup::prev_use, use_lookup::next_use) |
| (use_lookup::matching_use, use_lookup::matching_or_prev_use) |
| (use_lookup::matching_or_next_use): New member functions. |
| * rtl-ssa/accesses.cc (function_info::find_use): Likewise. |
| |
| 2025-08-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/114480 |
| * cfganal.cc (compute_idf): Split processing of the initial |
| workset from the main iteration. Use a vector for the |
| workset of the main iteration. |
| |
| 2025-08-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/121608 |
| * config/avr/specs.h (LINK_RELAX_SPEC): Wrap in %{!r...}. |
| |
| 2025-08-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): New, |
| copied from vect_analyze_slp_instance and only handle |
| slp_inst_kind_reduc_chain. Inline vect_build_slp_instance. |
| (vect_analyze_slp_instance): Only handle slp_inst_kind_store. |
| Inline vect_build_slp_instance. |
| (vect_build_slp_instance): Remove now unused stmt_info parameter, |
| remove special code for store groups and reduction chains. |
| (vect_analyze_slp): Call vect_analyze_slp_reduc_chain |
| for reduction chain SLP build and adjust. |
| |
| 2025-08-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.cc (vect_check_gather_scatter): |
| Remove restriction on epilogue of epilogue vectorization. |
| |
| 2025-08-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (update_epilogue_loop_vinfo): Remove |
| fixing up pattern stmt operands and gather/scatter DR_REFs. |
| (find_in_mapping): Remove. |
| |
| 2025-08-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_load_store_data): New. |
| (_slp_tree::memory_access_type): Remove. |
| (SLP_TREE_MEMORY_ACCESS_TYPE): Turn into inline function. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Do not |
| initialize SLP_TREE_MEMORY_ACCESS_TYPE. |
| * tree-vect-stmts.cc (check_load_store_for_partial_vectors): |
| Remove gather_scatter_info pointer argument, instead get |
| info from the SLP node. |
| (vect_build_one_gather_load_call): Get SLP node and builtin |
| decl as argument and remove uses of gather_scatter_info. |
| (vect_build_one_scatter_store_call): Likewise. |
| (vect_get_gather_scatter_ops): Remove uses of gather_scatter_info. |
| (vect_get_strided_load_store_ops): Get SLP node and remove |
| uses of gather_scatter_info. |
| (get_load_store_type): Take pointer to vect_load_store_data |
| instead of individual pointers. |
| (vectorizable_store): Adjust. Re-use get_load_store_type |
| result from analysis time. |
| (vectorizable_load): Likewise. |
| |
| 2025-08-20 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121572 |
| * config/i386/i386-features.cc (replace_tls_call): Add a bitmap |
| argument and put the updated TLS instruction in the bitmap. |
| (ix86_get_dominator_for_reg): New. |
| (ix86_check_flags_reg): Likewise. |
| (ix86_emit_tls_call): Likewise. |
| (ix86_place_single_tls_call): Add 2 bitmap arguments for updated |
| GNU and GNU2 TLS instructions. Call ix86_emit_tls_call to emit |
| TLS instruction. Correct debug dump for before instruction. |
| |
| 2025-08-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/120024 |
| * calls.cc (expand_call): Remove start_sequence/end_sequence |
| for ECF_MALLOC. |
| Check valreg before deferencing it when it comes to malloc like |
| functions. Use the return value of emit_move_insn instead of |
| calling get_last_insn. |
| |
| 2025-08-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-parloops.cc (parloops_is_slp_reduction): Remove. |
| (parloops_is_simple_reduction): Do not call it. |
| |
| 2025-08-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_reduction): Pass the |
| appropriate SLP node for costing of single-def-use-cycle |
| operations. |
| (vectorizable_live_operation): Pass the SLP node to the |
| costing hook. |
| * tree-vect-stmts.cc (vectorizable_bswap): Likewise. |
| (vectorizable_store): Likewise. |
| |
| 2025-08-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121592 |
| * tree-vect-slp.cc (vect_analyze_slp): When SLP reduction chain |
| discovery fails, fail overall when the tail of the chain |
| isn't also the entry for the non-SLP reduction. |
| |
| 2025-08-19 Richard Biener <rguenther@suse.de> |
| |
| * config.gcc (riscv*-*-*): Look for python3, then fall back |
| to python. Never use python2. |
| |
| 2025-08-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121527 |
| * tree-sra.cc (build_access_from_expr_1): Do not strip an |
| outer VIEW_CONVERT_EXPR as it's relevant for the size of |
| the access. |
| (get_access_for_expr): Likewise. |
| |
| 2025-08-19 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/121536 |
| * config/aarch64/aarch64.cc (aarch64_bool_compound_p): Use |
| SLP_TREE_VECTYPE instead of STMT_VINFO_VECTYPE. |
| (aarch64_adjust_stmt_cost, aarch64_vector_costs::count_ops): Pass SLP |
| node to aarch64_bool_compound_p. |
| |
| 2025-08-19 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/121536 |
| * tree-vect-loop.cc (vectorizable_phi, vectorizable_recurr, |
| vectorizable_nonlinear_induction, vectorizable_induction): Pass slp_node |
| instead of stmt_info to record_stmt_cost. |
| |
| 2025-08-19 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/121536 |
| * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost): Set |
| vectype from type of lhs of gimple stmt. |
| |
| 2025-08-18 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/121581 |
| * doc/extend.texi (__builtin_object_size): Fix example. |
| |
| 2025-08-18 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * flag-types.h (sanitize_code_type): Define. |
| * asan.h (sanitize_flags_p): Use 'sanitize_code_type' instead of |
| 'unsigned int'. |
| * common.opt: Likewise. |
| * dwarf2asm.cc (dw2_output_indirect_constant_1): Likewise. |
| * opts.cc (find_sanitizer_argument): Likewise. |
| (report_conflicting_sanitizer_options): Likewise. |
| (parse_sanitizer_options): Likewise. |
| (parse_no_sanitize_attribute): Likewise. |
| * opts.h (parse_sanitizer_options): Likewise. |
| (parse_no_sanitize_attribute): Likewise. |
| * tree-cfg.cc (print_no_sanitize_attr_value): Likewise. |
| * tree.cc (tree_fits_sanitize_code_type_p): Define. |
| (tree_to_sanitize_code_type): Likewise. |
| * tree.h (tree_fits_sanitize_code_type_p): Declare. |
| (tree_to_sanitize_code_type): Likewise. |
| |
| 2025-08-18 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * config/aarch64/aarch64.md (MEMTAG_TAG_MASK): New define |
| constant. |
| (MEMTAG_ADDR_MASK): Likewise. |
| (irg, subp, ldg): Use new constants. |
| |
| 2025-08-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/97497 |
| * function-abi.h (predefined_function_abi::only_partial_reg_clobbers) |
| (function_abi::only_partial_reg_clobbers): New member functions. |
| * gcse-common.cc: Include regs.h and function-abi.h. |
| (compute_transp): Check for partially call-clobbered registers |
| and treat them as not being transparent in blocks with calls. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (UNSPEC_TI_FETCH_ADD): New unspec. |
| (UNSPEC_TI_FETCH_SUB): Likewise. |
| (UNSPEC_TI_FETCH_AND): Likewise. |
| (UNSPEC_TI_FETCH_XOR): Likewise. |
| (UNSPEC_TI_FETCH_OR): Likewise. |
| (UNSPEC_TI_FETCH_NAND_MASK_INVERTED): Likewise. |
| (ALL_SC): New define_mode_iterator. |
| (_scq): New define_mode_attr. |
| (atomic_fetch_nand<mode>): Accept ALL_SC instead of only GPR. |
| (UNSPEC_TI_FETCH_DIRECT): New define_int_iterator. |
| (UNSPEC_TI_FETCH): New define_int_iterator. |
| (amop_ti_fetch): New define_int_attr. |
| (size_ti_fetch): New define_int_attr. |
| (atomic_fetch_<amop_ti_fetch>ti_scq): New define_insn. |
| (atomic_fetch_<amop_ti_fetch>ti): New define_expand. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (atomic_exchangeti_scq): New |
| define_insn. |
| (atomic_exchangeti): New define_expand. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (atomic_compare_and_swapti_scq): New |
| define_insn. |
| (atomic_compare_and_swapti): New define_expand. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.cc (loongarch_print_operand_reloc): |
| Accept "%t" for printing the number of the 64-bit machine |
| register holding the upper half of a TImode. |
| * config/loongarch/sync.md (atomic_storeti_scq): New |
| define_insn. |
| (atomic_storeti): expand to atomic_storeti_scq if !ISA_HAS_LSX. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/genopts/isa-evolution.in (scq): New evolution |
| feature. |
| * config/loongarch/loongarch-evolution.cc: Regenerate. |
| * config/loongarch/loongarch-evolution.h: Regenerate. |
| * config/loongarch/loongarch-str.h: Regenerate. |
| * config/loongarch/loongarch.opt: Regenerate. |
| * config/loongarch/loongarch.opt.urls: Regenerate. |
| * config/loongarch/loongarch-def.cc: Make -mscq the default for |
| -march=la664 and -march=la64v1.1. |
| * doc/invoke.texi (LoongArch Options): Document -m[no-]scq. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (atomic_storeti_lsx): New |
| define_insn. |
| (atomic_storeti): New define_expand. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (atomic_loadti_lsx): New define_insn. |
| (atomic_loadti): New define_expand. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md |
| (atomic_fetch_nand_mask_inverted<GPR:mode>): New define_insn. |
| (atomic_fetch_nand<GPR:mode>): New define_expand. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (atomic_fetch_sub<SHORT:mode>): |
| Disable if ISA_HAS_LAM_BH. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (UNSPEC_COMPARE_AND_SWAP_AND): |
| Remove. |
| (UNSPEC_COMPARE_AND_SWAP_XOR): Remove. |
| (UNSPEC_COMPARE_AND_SWAP_OR): Remove. |
| (atomic_test_and_set): Rename to ... |
| (atomic_fetch_<any_bitwise:amop><SHORT:mode>): ... this, and |
| adapt the expansion to use it for any bitwise operations and any |
| val, instead of just ior 1. |
| (atomic_test_and_set): New define_expand. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (atomic_test_and_set): Remove |
| unneeded andi instruction from the expansion. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.cc (loongarch_print_operand_reloc): |
| Make "%T" output a comment marker if the operand is a memory |
| order for which the barrier won't be generated; remove "%t". |
| * config/loongarch/sync.md (atomic_cas_value_strong<mode>): Add |
| %T before "b 3f". |
| (atomic_cas_value_cmp_and_7_<mode>): Likewise. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (UNSPEC_COMPARE_AND_SWAP_AMCAS): New |
| UNSPEC code. |
| (atomic_cas_value_strong<mode>): NFC, update the comment to note |
| we only need to consider failure memory order. |
| (atomic_cas_value_strong<mode>_amcas): Use |
| UNSPEC_COMPARE_AND_SWAP_AMCAS instead of |
| UNSPEC_COMPARE_AND_SWAP. |
| (atomic_compare_and_swap<mode:GPR>): Pass failure memorder to |
| gen_atomic_cas_value_strong<mode>. |
| (atomic_compare_and_swap<mode:SHORT>): Pass failure memorder to |
| gen_atomic_cas_value_cmp_and_7_si. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (atomic_test_and_set): Use bstrins |
| for masking the address if possible. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (atomic_load<mode>): Remove "+" for |
| the memory operand. |
| (atomic_store<mode>): Use "=" instead of "+" for the memory |
| operand. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md: Use <size> instead of <amo>. |
| (amo): Remove. |
| |
| 2025-08-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/sync.md (atomic_optab): Remove. |
| (atomic_<atomic_optab><mode>): Change atomic_optab to amop. |
| (atomic_fetch_<atomic_optab><mode>): Likewise. |
| |
| 2025-08-17 Austin Law <austinklaw@gmail.com> |
| |
| PR target/121213 |
| * config/riscv/sync.md (amo_atomic_exchange<mode>): Allow |
| (const_int 0) as input operand. Do not tie input to output. |
| No longer earlyclobber the output. |
| |
| 2025-08-17 Artemiy Volkov <artemiyv@acm.org> |
| |
| * regrename.cc (scan_rtx_reg): Handle fused insn pairs. |
| |
| 2025-08-17 Jan Dubiec <jdx@o2.pl> |
| |
| PR target/109324 |
| * config/h8300/addsub.md: Explicitly specify mode for plus operation. |
| * config/h8300/jumpcall.md: Explicitly specify modes for eq and |
| match_operand operations. |
| * config/h8300/testcompare.md: Explicitly specify modes for eq, ltu |
| and compare operations. |
| |
| 2025-08-17 Artemiy Volkov <artemiyv@acm.org> |
| |
| * ira-conflicts.cc (add_insn_allocno_copies): Handle fused insn pairs. |
| * rtl.h (single_output_fused_pair_p): Declare new function. |
| * rtlanal.cc (single_output_fused_pair_p): Define it. |
| |
| 2025-08-17 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| PR target/121538 |
| * config/riscv/arch-canonicalize (parse_dep_exts): |
| Match condition block up to closing brace. |
| (test_parse_long_condition_block): New test. |
| |
| 2025-08-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121541 |
| * config/i386/i386-options.cc |
| (ix86_valid_target_attribute_inner_p): Add target("80387") |
| attribute. Set the mask bit in opts_set->x_target_flags if the |
| mask bit in opts->x_target_flags is updated. |
| * doc/extend.texi: Document target("80387") function attribute. |
| |
| 2025-08-17 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md: Add supported insn |
| of vx combine. |
| |
| 2025-08-17 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md: Add missed DONE |
| for vx combine pattern. |
| |
| 2025-08-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/extend.texi (Type Traits): Document |
| __builtin_structured_binding_size. |
| |
| 2025-08-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/121552 |
| * doc/invoke.texi (-Wno-non-c-typedef-for-linkage): Document. |
| |
| 2025-08-15 Robert Dubner <rdubner@symas.com> |
| |
| * real.cc (real_to_decimal_for_mode): Set str[0] to known value. |
| |
| 2025-08-15 Vineet Gupta <vineetg@rivosinc.com> |
| |
| PR target/121534 |
| * config/riscv/riscv.md (round_pattern): save/restore fflags. |
| |
| 2025-08-15 Qing Zhao <qing.zhao@oracle.com> |
| |
| * doc/extend.texi: Extend counted_by attribute to pointer fields in |
| structures. Add one more requirement to pointers with counted_by |
| attribute. |
| |
| 2025-08-15 Umesh Kalappa <ukalappa.mips@gmail.com> |
| |
| * config/riscv/riscv-ext-mips.def (DEFINE_RISCV_EXT): |
| Added mips prefetch extension. |
| * config/riscv/riscv-ext.opt: Generated file. |
| * config/riscv/riscv.md (prefetch): |
| Added mips prefetch address operand constraint. |
| * config/riscv/constraints.md: Added mips specific constraint. |
| * config/riscv/predicates.md (prefetch_operand): |
| Updated for mips nine bits offset. |
| * config/riscv/riscv.cc (riscv_prefetch_offset_address_p): |
| Legitimate address with offset for prefetch check. |
| * config/riscv/riscv-protos.h: Likewise. |
| * config/riscv/riscv.h: |
| Macros to support for mips cached type. |
| * doc/riscv-ext.texi: Updated for mips prefetch. |
| |
| 2025-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/riscv/riscv-protos.h |
| (riscv_process_target_version_attr): Change location_t argument |
| to location_t *. |
| * config/riscv/riscv-subset.h |
| (riscv_subset_list::riscv_subset_list): Change location_t argument |
| to location_t *. |
| (riscv_subset_list::parse): Likwise. |
| (riscv_subset_list::set_loc): Likewise. |
| (riscv_minimal_hwprobe_feature_bits): Likewise. |
| (riscv_subset_list::m_loc): Change type to location_t. |
| * common/config/riscv/riscv-common.cc |
| (riscv_subset_list::riscv_subset_list): Change location_t argument |
| to location_t *. |
| (riscv_subset_list::add): Suppress diagnostics when m_loc is null. |
| (riscv_subset_list::parsing_subset_version): Likewise. |
| (riscv_subset_list::parse_profiles): Likewise. |
| (riscv_subset_list::parse_base_ext): Likewise. |
| (riscv_subset_list::parse_single_std_ext): Likewise. |
| (riscv_subset_list::check_conflict_ext): Likewise. |
| (riscv_subset_list::parse_single_multiletter_ext): Likewise. |
| (riscv_subset_list::parse): Change location_t argument to location_t *. |
| (riscv_subset_list::set_loc): Likewise. |
| (riscv_minimal_hwprobe_feature_bits): Likewise. |
| (riscv_parse_arch_string): Update call accordingly. |
| * config/riscv/riscv-target-attr.cc |
| (riscv_target_attr_parser::m_loc): Change type to location_t *. |
| (riscv_target_attr_parser::riscv_target_attr_parser): Change |
| location_t argument to location_t *. |
| (riscv_process_one_target_attr): Likewise. |
| (riscv_process_target_attr): Likewise. |
| (riscv_process_target_version_attr): Likewise. |
| (riscv_target_attr_parser::parse_arch): Suppress diagnostics when |
| m_loc is null. |
| (riscv_target_attr_parser::handle_arch): Likewise. |
| (riscv_target_attr_parser::handle_cpu): Likewise. |
| (riscv_target_attr_parser::handle_tune): Likewise. |
| (riscv_target_attr_parser::handle_priority): Likewise. |
| (riscv_option_valid_attribute_p): Update call accordingly. |
| (riscv_option_valid_version_attribute_p): Likewise. |
| * config/riscv/riscv.cc (parse_features_for_version): Add a |
| location_t * argument. |
| (dispatch_function_versions): Update call accordingly. |
| (riscv_compare_version_priority): Likewise, suppressing diagnostics. |
| |
| 2025-08-15 Kito Cheng <kito.cheng@sifive.com> |
| |
| * tree-nrv.cc (pass_return_slot::execute): Use |
| gimple_call_fntype instead of gimple_call_fndecl. |
| |
| 2025-08-15 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/121542 |
| * config/loongarch/loongarch.cc |
| (loongarch_vector_costs::add_stmt_cost): When using vectype, |
| first determine whether it is NULL. |
| |
| 2025-08-14 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/119275 |
| * config/riscv/riscv.cc (riscv_legitimize_move): Avoid calling |
| gen_lowpart for cases where it'll fail. Just use standard expander |
| paths for those cases. |
| |
| 2025-08-14 Mikael Pettersson <mikpelinux@gmail.com> |
| |
| PR target/121336 |
| * config/cris/cris.h: Do not abbreviate --emulation. |
| |
| 2025-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/121501 |
| * config/rs6000/rs6000.md (cmprb, setb_signed, setb_unsigned) |
| (cmprb2, cmpeqb): Add missing modes to nested if_then_elses. |
| |
| 2025-08-14 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121474 |
| * passes.def: Update forwprop1/2 to have full_walk to be true. |
| * tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Add new argument |
| full_walk. Take into account the full_walk and clobbers at the end |
| of the limit can be done always. |
| (simplify_builtin_call): Add new argument, full_walk. |
| Update call to optimize_aggr_zeroprop. |
| (pass_forwprop): Add m_full_walk field. |
| (pass_forwprop::set_pass_param): Update for m_full_walk. |
| (pass_forwprop::execute): Update call to simplify_builtin_call |
| and optimize_aggr_zeroprop. |
| |
| 2025-08-14 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop_1): New function split out of ... |
| (optimize_agr_copyprop): Here. Also try calling optimize_agr_copyprop_arg. |
| (optimize_agr_copyprop_arg): New function. |
| |
| 2025-08-14 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.md: Merge movdi<mode>_zero_extend_A and |
| movsi<mode>_zero_extend_A into zero_extendsidi2 and |
| zero_extendhi<mode>2_z10 and |
| zero_extend<HQI:mode><GPR:mode>2_extimm. |
| * config/s390/vector.md (*movdi<mode>_zero_extend_A): Remove. |
| (*movsi<mode>_zero_extend_A): Remove. |
| (*movdi<mode>_zero_extend_B): Move to vec_extract patterns and |
| rename to *vec_extract<mode>_zero_extend. |
| (*movsi<mode>_zero_extend_B): Ditto. |
| |
| 2025-08-14 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121540 |
| * config/i386/i386-options.cc (ix86_set_current_function): |
| Properly check if MMX and 80387 are enabled. |
| |
| 2025-08-13 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/121531 |
| * config/riscv/sifive-p400.md (sifive_p400_unknown): New reservation. |
| * config/riscv/sifive-p600.md (sifive_p600_unkonwn): Likewise. |
| |
| 2025-08-13 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/output-spec.cc (sarif_scheme_handler::make_sink): |
| Populate sarif_generation_options instance directly, rather than |
| through local variables. |
| (sarif_scheme_handler::make_sarif_gen_opts): Drop. |
| (html_scheme_handler::make_sink): Populate html_generation_options |
| instance directly, rather than through local variables. |
| |
| 2025-08-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * config.gcc: Mark epiphany*-*-* and rl78*-*-* as |
| obsolete targets. |
| |
| 2025-08-13 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/81501 |
| * config/i386/i386-features.cc (x86_cse_kind): Add X86_CSE_TLS_GD, |
| X86_CSE_TLS_LD_BASE and X86_CSE_TLSDESC. |
| (redundant_load): Renamed to ... |
| (redundant_pattern): This. |
| (ix86_place_single_vector_set): Replace redundant_load with |
| redundant_pattern. |
| (replace_tls_call): New. |
| (ix86_place_single_tls_call): Likewise. |
| (pass_remove_redundant_vector_load): Renamed to ... |
| (pass_x86_cse): This. Add val, def_insn, mode, scalar_mode, kind, |
| x86_cse, candidate_gnu_tls_p, candidate_gnu2_tls_p and |
| candidate_vector_p. |
| (pass_x86_cse::candidate_gnu_tls_p): New. |
| (pass_x86_cse::candidate_gnu2_tls_p): Likewise. |
| (pass_x86_cse::candidate_vector_p): Likewise. |
| (remove_redundant_vector_load): Renamed to ... |
| (pass_x86_cse::x86_cse): This. Extend to remove redundant TLS |
| calls. |
| (make_pass_remove_redundant_vector_load): Renamed to ... |
| (make_pass_x86_cse): This. |
| * config/i386/i386-passes.def: Replace |
| pass_remove_redundant_vector_load with pass_x86_cse. |
| * config/i386/i386-protos.h (ix86_tls_get_addr): New. |
| (make_pass_remove_redundant_vector_load): Renamed to ... |
| (make_pass_x86_cse): This. |
| * config/i386/i386.cc (ix86_tls_get_addr): Remove static. |
| * config/i386/i386.h (machine_function): Add |
| tls_descriptor_call_multiple_p. |
| * config/i386/i386.md (tls64): New attribute. |
| (@tls_global_dynamic_64_<mode>): Set tls_descriptor_call_multiple_p. |
| (@tls_local_dynamic_base_64_<mode>): Likewise. |
| (@tls_dynamic_gnu2_64_<mode>): Likewise. |
| (*tls_global_dynamic_64_<mode>): Set tls64 attribute to gd. |
| (*tls_local_dynamic_base_64_<mode>): Set tls64 attribute to ld_base. |
| (*tls_dynamic_gnu2_lea_64_<mode>): Set tls64 attribute to lea. |
| (*tls_dynamic_gnu2_call_64_<mode>): Set tls64 attribute to call. |
| (*tls_dynamic_gnu2_combine_64_<mode>): Set tls64 attribute to |
| combine. |
| |
| 2025-08-13 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config.in: Regenerate. |
| * config/darwin.h (DARWIN_LD_NO_DEDUPLICATE): New. |
| (LINK_SPEC): Handle -no_deduplicate. |
| * configure: Regenerate. |
| * configure.ac: Detect linker support for -no_deduplicate. |
| |
| 2025-08-13 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-sections.def (asan_string_section, |
| asan_globals_section, asan_liveness_section): New. |
| * config/darwin.cc (objc_method_decl): Use asan sections |
| when asan is enabled. |
| (darwin_encode_section_info): Alter string constant |
| linker visibility depending on asan. |
| (machopic_select_section): Use the asan sections when |
| asan is enabled. |
| |
| 2025-08-13 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/121160 |
| * config/riscv/riscv.cc (canonicalize_comparands); Tighten check for |
| forcing value into a GPR. |
| |
| 2025-08-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121474 |
| * tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Move the check |
| for limit before the alias check. |
| |
| 2025-08-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (SLP_TREE_PERMUTE_P): New. |
| * tree-vect-slp-patterns.cc (linear_loads_p): Adjust. |
| (vect_detect_pair_op): Likewise. |
| (addsub_pattern::recognize): Likewise. |
| * tree-vect-slp.cc (vect_print_slp_tree): Likewise. |
| (vect_gather_slp_loads): Likewise. |
| (vect_is_slp_load_node): Likewise. |
| (optimize_load_redistribution_1): Likewise. |
| (vect_optimize_slp_pass::is_cfg_latch_edge): Likewise. |
| (vect_optimize_slp_pass::internal_node_cost): Likewise. |
| (vect_optimize_slp_pass::start_choosing_layouts): Likewise. |
| (vect_optimize_slp_pass::backward_cost): Likewise. |
| (vect_optimize_slp_pass::forward_pass): Likewise. |
| (vect_optimize_slp_pass::get_result_with_layout): Likewise. |
| (vect_optimize_slp_pass::materialize): Likewise. |
| (vect_optimize_slp_pass::dump): Likewise. |
| (vect_optimize_slp_pass::decide_masked_load_lanes): Likewise. |
| (vect_update_slp_vf_for_node): Likewise. |
| (vect_slp_analyze_node_operations_1): Likewise. |
| (vect_schedule_slp_node): Likewise. |
| (vect_schedule_scc): Likewise. |
| * tree-vect-stmts.cc (vect_analyze_stmt): Likewise. |
| (vect_transform_stmt): Likewise. |
| (vect_is_simple_use): Likewise. |
| |
| 2025-08-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vect_analyze_stmt): Use |
| SLP_TREE_DEF_TYPE instead of STMT_VINFO_DEF_TYPE. |
| |
| 2025-08-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_memory_access_type): Replace |
| VMAT_GATHER_SCATTER with three separate access types, |
| VMAT_GATHER_SCATTER_LEGACY, VMAT_GATHER_SCATTER_IFN and |
| VMAT_GATHER_SCATTER_EMULATED. |
| (mat_gather_scatter_p): New predicate. |
| (GATHER_SCATTER_LEGACY_P): Remove. |
| (GATHER_SCATTER_IFN_P): Likewise. |
| (GATHER_SCATTER_EMULATED_P): Likewise. |
| * tree-vect-stmts.cc (check_load_store_for_partial_vectors): |
| Adjust. |
| (get_load_store_type): Likewise. |
| (vect_get_loop_variant_data_ptr_increment): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| Likewise. |
| * config/riscv/riscv-vector-costs.cc |
| (costs::need_additional_vector_vars_p): Likewise. |
| * config/aarch64/aarch64.cc (aarch64_detect_vector_stmt_subtype): |
| Likewise. |
| (aarch64_vector_costs::count_ops): Likewise. |
| (aarch64_vector_costs::add_stmt_cost): Likewise. |
| |
| 2025-08-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_supportable_dr_alignment): Pass |
| a bool instead of a pointer to gather_scatter_info. |
| * tree-vect-data-refs.cc (vect_supportable_dr_alignment): |
| Likewise. |
| * tree-vect-stmts.cc (get_load_store_type): Adjust. |
| |
| 2025-08-13 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/120476 |
| * config/loongarch/loongarch.cc |
| (loongarch_compute_pressure_classes): New function. |
| (TARGET_COMPUTE_PRESSURE_CLASSES): Define. |
| |
| 2025-08-13 Yang Yujie <yangyujie@loongson.cn> |
| |
| PR target/117599 |
| * config/loongarch/loongarch.h: Define a PROMOTE_MODE case for |
| small _BitInts. |
| * config/loongarch/loongarch.cc (loongarch_promote_function_mode): |
| Same. |
| (loongarch_bitint_type_info): New function. |
| (TARGET_C_BITINT_TYPE_INFO): Declare. |
| |
| 2025-08-13 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/121113 |
| * config/riscv/sifive-p400.md: Handle HFmode for fdiv/fsqrt. |
| * config/riscv/sifive-p600.md: Likewise. |
| * config/riscv/xiangshan.md: Likewise. |
| |
| 2025-08-13 H.J. Lu <hjl.tools@gmail.com> |
| Liu, Hongtao <hongtao.liu@intel.com> |
| |
| PR target/121497 |
| * config/i386/i386-features.cc (ix86_broadcast_inner): Convert |
| integer constant to mode of move |
| |
| 2025-08-12 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*merge_vx_<mode>): Add new |
| pattern to combine the vmerge.vxm. |
| |
| 2025-08-12 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| PR target/121334 |
| * config/riscv/riscv-v.cc (expand_slide1up): New function. |
| (expand_vector_init_trailing_same_elem): Use new function. |
| (expand_const_vector_onestep): New function. |
| (expand_const_vector): Uew expand_slide1up. |
| (expand_vector_init_merge_repeating_sequence): Ditto. |
| (shuffle_off_by_one_patterns): Ditto. |
| |
| 2025-08-12 mengqinggang <mengqinggang@loongson.cn> |
| |
| * config/loongarch/loongarch-def.h (ABI_BASE_LP64D): New macro. |
| (ABI_BASE_LP64F): New macro. |
| (ABI_BASE_LP64S): New macro. |
| (N_ABI_BASE_TYPES): New macro. |
| |
| 2025-08-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_analyze_loop_2): Change |
| slp_done_for_suggested_uf to a boolean |
| single_lane_slp_done_for_suggested_uf. Change slp |
| to force_single_lane boolean. |
| (vect_analyze_loop_1): Adjust similarly. |
| |
| 2025-08-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/121253 |
| * fwprop.cc (forward_propagate_into): Don't propagate asm defs. |
| |
| 2025-08-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121509 |
| * tree-vect-stmts.cc (vect_mark_stmts_to_be_vectorized): |
| Fail early when we detect a relevant but not handled PHI. |
| |
| 2025-08-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121514 |
| * tree-ssa-sccvn.cc (visit_nary_op): Only call |
| vn_nary_op_insert_stmt for SSA name result. |
| |
| 2025-08-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121494 |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop): Mark the bb of the use |
| stmt if needed for eh cleanup. |
| |
| 2025-08-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vect_analyze_stmt): Only set |
| STMT_VINFO_VECTYPE for dataref SLP representatives. |
| Clear it for others and do not restore the original value. |
| (vect_transform_stmt): Likewise. |
| |
| 2025-08-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (get_initial_defs_for_reduction): |
| Get vector type as argument. |
| (vect_find_reusable_accumulator): Likewise. |
| (vect_transform_cycle_phi): Adjust. |
| |
| 2025-08-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_reduction): Replace |
| STMT_VINFO_VECTYPE use with SLP_TREE_VECTYPE. |
| |
| 2025-08-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121493 |
| * tree-ssa-sccvn.cc (vn_reference_lookup_3): Opportunistically |
| strip components with known offset. |
| |
| 2025-08-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.cc (vn_reference_lookup_3): When we fail to |
| match up the two base MEM_REFs, fail. |
| |
| 2025-08-12 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| Jeff Law <jlaw@ventanamicro.com> |
| Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * config/riscv/riscv-protos.h (synthesize_add): Add prototype. |
| * config/riscv/riscv.cc (synthesize_add): New function. |
| * config/riscv/riscv.md (addsi3): Allow any constant as operands[2] |
| in the expander. Force the constant into a register as needed for |
| TARGET_64BIT. Use synthesize_add for !TARGET_64BIT. |
| (*adddi3): Renamed from adddi3. |
| (adddi3): New expander. Use synthesize_add. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| * config/aarch64/aarch64.md (mov<ALLI>cc): Accept MODE_CC |
| conditions directly; reject QI/HImode conditions. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| PR target/121388 |
| * config/aarch64/aarch64.cc (aarch64_cb_rhs): Restrict the |
| range of LT/GE and GT/LE to their intersections. |
| * config/aarch64/aarch64.md (*aarch64_cb<INT_CMP><GPI>): Unexport. |
| Use cmpbr_imm_predicate instead of aarch64_cb_rhs. |
| * config/aarch64/constraints.md (Uc1): Accept 0..62. |
| (Uc2): Remove. |
| * config/aarch64/iterators.md (cmpbr_imm_predicate): New. |
| (cmpbr_imm_constraint): Update to match aarch64_cb_rhs. |
| * config/aarch64/predicates.md (aarch64_cb_reg_i63_operand): New. |
| (aarch64_cb_reg_i62_operand): New. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| * config/aarch64/aarch64.cc (aarch64_if_then_else_costs): |
| Use aarch64_cb_rhs to match CB insns. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| PR target/121385 |
| * config/aarch64/aarch64.md (*aarch64_tbz<LTGE><ALLI>1): Remove |
| cc clobber and expansion via TST+Bcond. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| * config/aarch64/aarch64.h (TARGET_CMPBR): False when |
| aarch64_track_speculation is true. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| * config/aarch64/aarch64.cc (aarch64_gen_compare_split_imm24): New. |
| * config/aarch64/aarch64-protos.h: Update. |
| * config/aarch64/aarch64.md (*aarch64_bcond_wide_imm<GPI>): Use it. |
| Add match_scratch and cc clobbers. Use match_operator instead of |
| iterator expansion. |
| (*compare_cstore<GPI>_insn): Likewise. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| * config/aarch64/predicates.md (aarch64_split_imm24): Rename from |
| aarch64_imm24; exclude aarch64_move_imm and aarch64_uimm12_shift. |
| * config/aarch64/aarch64.md (*aarch64_bcond_wide_imm<GPI>): |
| Update for aarch64_split_imm24. |
| (*compare_cstore<GPI>_insn): Likewise. |
| * config/aarch64/aarch64.cc (aarch64_if_then_else_costs): Likewise. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| * config/aarch64/aarch64.md (tbranch_<EQL><SHORT>3): Remove. |
| (save_stack_nonlocal): Use aarch64_gen_compare_zero_and_branch. |
| (restore_stack_nonlocal): Likewise. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_gen_compare_zero_and_branch): Export. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_gen_compare_zero_and_branch): Declare it. |
| * config/aarch64/aarch64-sme.md (aarch64_restore_za): Use it. |
| * config/aarch64/aarch64.md (*aarch64_cbz<EQL><GPI>): Unexport. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| * config/aarch64/aarch64.cc (aarch64_if_the_else_costs): Reorg to |
| include the cost of inner within TBZ sign-bit test, only match |
| CBZ/CBNZ with valid modes, and both for the aarch64_imm24 test. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| * config/aarch64/aarch64.cc (aarch64_if_then_else_costs): Remove |
| else after return and re-indent. |
| |
| 2025-08-11 Richard Henderson <richard.henderson@linaro.org> |
| |
| * config/aarch64/aarch64.md (BRANCH_LEN_N_1KiB): Rename |
| from BRANCH_LEN_N_1Kib. |
| |
| 2025-08-11 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Recognize stores |
| of integer_zerop as memset of 0. |
| |
| 2025-08-11 Jeff Law <jlaw@ventanamicro.com> |
| |
| * doc/sourcebuild.texi: Add riscv_b_ok and riscv_v_ok target selectors. |
| |
| 2025-08-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121488 |
| * tree-ssa-sccvn.cc (visit_nary_op): If the BIT_FIELD_REF |
| result is of wrong type, try a VIEW_CONVERT_EXPR around it. |
| |
| 2025-08-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121362 |
| * tree-ssa-sccvn.cc (vn_reference_lookup_3): Swap index |
| guards on component stripping loops. |
| |
| 2025-08-11 Pan Li <pan2.li@intel.com> |
| |
| * tree-ssa-math-opts.cc (match_saturation_mul): Add new func |
| to emit IFN_SAT_MUL if matched. |
| (math_opts_dom_walker::after_dom_children): Try to match |
| the phi node for SAT_MUL. |
| |
| 2025-08-11 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add form 2 for unsigned SAT_MUL. |
| |
| 2025-08-11 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv.cc (get_vector_binary_rtx_cost): Remove. |
| (riscv_rtx_costs): Refactor to serach vec_duplicate on the |
| sub rtx. |
| |
| 2025-08-11 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| PR target/121464 |
| * config/arm/arm.md (arm_<mrrc>, arm_<mcrr>): Fix operand check. |
| |
| 2025-08-11 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/121306 |
| * simplify-rtx.cc (simplify_context::simplify_subreg): Distribute |
| non-narrowing integer-to-integer subregs through logic ops, |
| in a similar way to the existing word_mode handling. |
| |
| 2025-08-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-cfg.cc (find_case_label_for_value): Fix comment typo, |
| singe-valued -> single-valued. |
| * config/arc/arc.md: Fix comment typos, unsinged -> unsigned. |
| |
| 2025-08-10 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config/mips/mips.h (FRAME_GROWS_DOWNWARD) Allow the frame to |
| grow downwards for mips16 when -mgrow-frame-downwards is set. |
| * config/mips/mips.opt: Add -mgrow-frame-downwards option. |
| |
| 2025-08-10 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/121438 |
| PR middle-end/121444 |
| * output.h (MAX_ALIGN_MERGABLE): Rename to ... |
| (MAX_MERGEABLE_BITSIZE): This. |
| * tree-switch-conversion.cc (switch_conversion::build_one_array): Don't |
| increase the alignment. |
| * varasm.cc (mergeable_string_section): Use MAX_MERGEABLE_BITSIZE |
| instead of MAX_ALIGN_MERGABLE. Also replace `/ 8` with `/ BITS_PER_UNIT`. |
| (mergeable_constant_section): Select the mergeable section based on |
| the bitsize rather than the alignment. Make sure the align is less |
| than the entity size. |
| |
| 2025-08-10 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/121394 |
| * varasm.cc (assemble_variable_contents): Pad out |
| mergeable sections if needed. |
| (output_constant_pool_1): Change the padding to be explicit |
| zeroing for mergeable sections. |
| |
| 2025-08-10 H.J. Lu <hjl.tools@gmail.com> |
| |
| * configure: Regenerated. |
| |
| 2025-08-09 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.cc (darwin_encode_section_info): Do not |
| make anchored symbols linker-visible. |
| (darwin_use_anchors_for_symbol_p): Disallow anchoring on |
| symbols that must be linker-visible (or external), even |
| if the definitions are in this TU. |
| |
| 2025-08-09 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): New |
| entry for LANCHOR. |
| |
| 2025-08-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/context.cc (context::dump): Bulletproof against |
| m_reference_printer being null. |
| * diagnostics/dumping.cc (emit_field<const char *>): Replace |
| with... |
| (emit_string_field): ...this. |
| (emit_field<char *>): Eliminate. |
| (emit_field<bool>): Replace with... |
| (emit_bool_field): ...this. |
| (emit_field<size_t>): Replace with... |
| (emit_size_t_field): ...this, and use HOST_SIZE_T_PRINT_DEC rather |
| than %zi in fprintf call. |
| (emit_field<int>): Replace with... |
| (emit_int_field): ...this. |
| (emit_field<unsigned>): Replace with... |
| (emit_unsigned_field): ...this. |
| * diagnostics/dumping.h (emit_field): Replace this template decl |
| with... |
| (emit_string_field): ...this, |
| (emit_bool_field): ...this, |
| (emit_size_t_field): ...this, |
| (emit_int_field): ...this, |
| (emit_unsigned_field): ... and this. |
| (DIAGNOSTICS_DUMPING_EMIT_FIELD): Rename to... |
| (DIAGNOSTICS_DUMPING_EMIT_BOOL_FIELD): ...this and update for |
| above change. |
| * diagnostics/file-cache.cc (file_cache_slot::dump): Replace |
| emit_field calls with calls that explicitly state the type. Fix |
| type of dump of m_missing_trailing_newline to use bool. |
| (file_cache_slot::dump): Use HOST_SIZE_T_PRINT_DEC rather than |
| %zi in fprintf call. |
| * diagnostics/html-sink.cc (html_generation_options::dump): Update |
| for macro renaming. |
| * diagnostics/sarif-sink.cc |
| (sarif_serialization_format_json::dump): Likewise. |
| (sarif_generation_options::dump): Likewise, and for function |
| renaming. |
| * diagnostics/text-sink.cc (text_sink::dump): Update for macro |
| renaming. |
| * libgdiagnostics.cc (diagnostic_manager_debug_dump_file): Use |
| HOST_SIZE_T_PRINT_DEC rather than %zi in fprintf call. |
| * pretty-print.cc: Include "diagnostics/dumping.h". |
| (pp_formatted_chunks::dump): Use it. |
| (get_url_format_as_string): New. |
| (pretty_printer::dump): Use diagnostics::dumping. Bulletproof |
| against m_buffer being null. |
| |
| 2025-08-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/constraints.md (T): |
| Change define_memory_constraint to define_special_memory_constraint. |
| |
| 2025-08-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/120599 |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop): Don't try to copy |
| from statements that throw. |
| |
| 2025-08-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118946 |
| PR tree-optimization/121422 |
| * tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Remove. |
| (optimize_aggr_zeroprop_1): New function. |
| (optimize_aggr_zeroprop): New function. |
| (simplify_builtin_call): Don't call optimize_memcpy_to_memset |
| for memcpy but call optimize_aggr_zeroprop for memset. |
| (pass_forwprop::execute): Don't call optimize_memcpy_to_memset |
| for aggregate copies but rather call optimize_aggr_zeroprop |
| for aggregate stores. |
| |
| 2025-08-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop): Change into a |
| forward looking (looking at vdef's uses) instead of a back |
| looking (vuse's def). |
| |
| 2025-08-08 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/116253 |
| * common.opt (fdiagnostics-show-nesting): New option. |
| (fdiagnostics-show-nesting-locations): New option. |
| (fdiagnostics-show-nesting-levels): New option. |
| * common.opt.urls: Regenerate. |
| * diagnostics/context.cc (context::set_show_nesting): New. |
| (context::set_show_nesting_locations): New. |
| (context::set_show_nesting_levels): New. |
| * diagnostics/context.h (context::set_show_nesting): New decl. |
| (context::set_show_nesting_locations): New decl. |
| (context::set_show_nesting_levels): New decl. |
| * diagnostics/html-sink.cc: Tweak comment. |
| * diagnostics/output-spec.cc (text_scheme_handler::make_sink): |
| Rename "experimental-nesting" to "show-nesting" and enable by |
| default. Rename "experimental-nesting-show-locations" to |
| "show-nesting-locations". Rename |
| "experimental-nesting-show-levels" to "show-nesting-levels". |
| * diagnostics/sink.h (sink::dyn_cast_text_sink): New. |
| * diagnostics/text-sink.h (text_sink::dyn_cast_text_sink): New. |
| * doc/invoke.texi: Add -fdiagnostics-show-nesting, |
| -fdiagnostics-show-nesting-locations, and |
| -fdiagnostics-show-nesting-levels. Update for changes to |
| output-spec.cc above. |
| * lto-wrapper.cc (merge_and_complain): Ignore |
| OPT_fdiagnostics_show_nesting, |
| OPT_fdiagnostics_show_nesting_locations, and |
| OPT_fdiagnostics_show_nesting_levels. |
| (append_compiler_options): Likewise. |
| (append_diag_options): Likewise. |
| * opts-common.cc (decode_cmdline_options_to_array): Add |
| "-fno-diagnostics-show-nesting" to -fdiagnostics-plain-output. |
| * opts.cc (common_handle_option): Handle the new options. |
| (gen_command_line_string): Ignore the new options. |
| * toplev.cc (general_init): Call set_show_nesting, |
| set_show_nesting_locations, and set_show_nesting_levels on |
| global_dc. |
| |
| 2025-08-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add diagnostics/dumping.o. |
| * diagnostics/buffering.cc: Include "diagnostics/dumping.h". |
| (buffer::dump): Reimplement using diagnostics::dumping. |
| * diagnostics/context.cc: Include "diagnostics/dumping.h". |
| (context::dump): Reimplement using diagnostics::dumping. |
| Use sink::dump_kind when listing the sinks. |
| (sink::dump): Reimplement using diagnostics::dumping. |
| (counters::dump): Likewise. |
| * diagnostics/dumping.cc: New file. |
| * diagnostics/dumping.h: New file. |
| * diagnostics/file-cache.cc: Include "diagnostics/dumping.h". |
| (file_cache::dump): Reimplement using diagnostics::dumping. |
| (file_cache_slot::dump): Likewise. |
| * diagnostics/html-sink.cc: Include "diagnostics/dumping.h". |
| (html_generation_options::dump): New. |
| (html_sink_buffer::dump): Reimplement using diagnostics::dumping. |
| (html_builder::dump): New. |
| (html_sink::dump): Reimplement using diagnostics::dumping. |
| Add dump of the html_builder. |
| (html_file_sink::dump): Replace with... |
| (html_file_sink::dump_kind): ...this. |
| (html_buffered_sink::dump_kind): New. |
| * diagnostics/html-sink.h (html_generation_options::dump): New |
| decl. |
| * diagnostics/sarif-sink.cc: Include "diagnostics/dumping.h". |
| (sarif_serialization_format_json::dump): New. |
| (sarif_builder::dump): New. |
| (sarif_sink_buffer::dump): Reimplement using diagnostics::dumping. |
| (sarif_sink::dump): Likewise. Add dump of the sarif_builder. |
| (sarif_stream_sink::dump_kind): New. |
| (sarif_file_sink::dump): Replace with... |
| (sarif_file_sink::dump_kind): ...this. |
| (get_dump_string_for_sarif_version): New. |
| (sarif_generation_options::dump): New. |
| (class buffered_sink): Rename to... |
| (class sarif_buffered_sink): ...this. |
| (sarif_buffered_sink::dump_kind): New. |
| * diagnostics/sarif-sink.h (sarif_serialization_format::dump): |
| New. |
| (sarif_serialization_format_json::dump): New decl. |
| (sarif_generation_options::dump): New decl. |
| * diagnostics/sink.h (sink::dump_kind): New. |
| * diagnostics/text-sink.cc: Include "diagnostics/dumping.h". |
| (text_sink_buffer::dump): Reimplement using diagnostics::dumping. |
| (text_sink::dump): Likewise. Emit fields m_show_nesting, |
| m_show_locations_in_nesting, and m_show_nesting_levels. |
| * diagnostics/text-sink.h (text_sink::dump_kind): New. |
| |
| 2025-08-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h (diagnostics::get_cwe_url): Move decl to |
| diagnostics/metadata.h. |
| (diagnostics::maybe_line_and_column): Move into |
| diagnostics::text_sink. |
| * diagnostics/context.cc: Update for maybe_line_and_column |
| becoming a static member of text_sink. |
| * diagnostics/metadata.h (diagnostics::get_cwe_url): Move decl |
| here from diagnostic.h. |
| * diagnostics/text-sink.cc (maybe_line_and_column): Convert to... |
| (text_sink::maybe_line_and_column): ...this. |
| * diagnostics/text-sink.h (text_sink::maybe_line_and_column): Move |
| here from diagnostic.h. |
| |
| 2025-08-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/context.cc (context::get_any_inlining_info): Convert |
| "context" arg of m_set_locations_cb from ptr to const &. |
| (context::report_diagnostic): Convert "context" arg of |
| m_adjust_diagnostic_info from ptr to const &. |
| * diagnostics/context.h (context::set_locations_callback_t): |
| Likewise. |
| (context::set_adjust_diagnostic_info_callback): Likewise. |
| (context::m_adjust_diagnostic_info): Likewise. |
| * tree-diagnostic.cc (set_inlining_locations): Likewise. |
| |
| 2025-08-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/column-options.h: New file, adding struct |
| diagnostics::column_options, taken from fields in |
| diagnostics::context and diagnostics::column_policy. |
| * diagnostics/context.cc (context::initialize): Update for moving |
| fields of diagnostics::context into diagnostics::column_options. |
| (column_policy::column_policy): Likewise. |
| (column_policy::converted_column): Move implementation to... |
| (column_options::convert_column): ...this new function. |
| (context::report_diagnostic): Update for moving fields of |
| diagnostics::context into diagnostics::column_options. |
| (assert_location_text): Likewise. |
| * diagnostics/context.h: Include "diagnostics/column-options.h". |
| (class column_policy): Replace fields m_column_unit, |
| m_column_origin, and m_tabstop with m_column_options. |
| (context::get_column_options): New accessors. |
| (context::m_column_unit): Move to struct column_options and |
| replace with m_column_options. |
| (context::m_column_origin): Likewise. |
| (context::m_tabstop): Likewise. |
| * diagnostics/sarif-sink.cc (sarif_builder::sarif_builder): Update |
| for moving fields of diagnostics::context into |
| diagnostics::column_options. |
| * diagnostics/source-printing.cc: Likewise. |
| * opts.cc (common_handle_option): Likewise. |
| |
| 2025-08-08 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/120977 |
| * config/arm/arm.md (call): Move unspec parameter to parallel. |
| (nonsecure_call_internal): Likewise. |
| (call_value): Likewise. |
| (nonsecure_call_value_internal): Likewise. |
| * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Likewise. |
| (nonsecure_call_value_reg_thumb1_v5): Likewise. |
| * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): |
| Likewise. |
| (nonsecure_call_reg_thumb2): Likewise. |
| (nonsecure_call_value_reg_thumb2_fpcxt): Likewise. |
| (nonsecure_call_value_reg_thumb2): Likewise. |
| * config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear): |
| Likewise. |
| |
| 2025-08-08 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| PR target/121449 |
| * config/aarch64/aarch64-sve.md |
| (mask_gather_load<mode><v_int_container>): Use vg<Vesize> |
| constraints for alternatives with immediate offset. |
| (mask_scatter_store<mode><v_int_container>): Likewise. |
| |
| 2025-08-08 Richard Biener <rguenther@suse.de> |
| |
| * doc/tm.texi.in: Add Vectorization and OpenMP and OpenACC |
| sub-sections to the list of target macros and functions. |
| * doc/tm.texi: Re-generate. |
| |
| 2025-08-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_determine_vectype_for_stmt_1): Remove. |
| (vect_determine_vectype_for_stmt): Likewise. |
| (vect_set_stmts_vectype): Likewise. |
| (vect_analyze_loop_2): Do not call vect_set_stmts_vectype. |
| * tree-vect-stmts.cc (vect_mark_stmts_to_be_vectorized): Detect |
| irregular stmts early here. |
| |
| 2025-08-08 Alex Coplan <alex.coplan@arm.com> |
| |
| PR target/120986 |
| * config/aarch64/aarch64-sve-builtins.cc |
| (function_expander::expand): Relax fpm_t assert to allow |
| modeless const_ints. |
| |
| 2025-08-08 Alex Coplan <alex.coplan@arm.com> |
| |
| PR target/120986 |
| * config/aarch64/aarch64-sve2.md (@aarch64_sve_dot<mode>): |
| Switch mode iterator from SVE_FULL_HSF to new iterator; |
| remove insn predicate as this is now taken care of by conditions |
| in the mode iterator. |
| (@aarch64_sve_dot_lane<mode>): Likewise. |
| * config/aarch64/iterators.md (SVE_FULL_HSF_FP8_FDOT): New. |
| |
| 2025-08-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121454 |
| * tree-ssa-sccvn.cc (visit_nary_op): Avoid unexpected |
| BIT_FIELD_REFs. |
| |
| 2025-08-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/121389 |
| * tree-tailcall.cc (find_tail_calls): For finally_tmp.N |
| handle not just GIMPLE_CONDs with EQ_EXPR/NE_EXPR and only |
| values 0 and 1, but arbitrary non-negative values, arbitrary |
| comparisons in conditions and also GIMPLE_SWITCH next to |
| GIMPLE_CONDs. |
| |
| 2025-08-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): Get |
| the SLP node rather than the stmt_info. |
| (vectorizable_lane_reducing): Adjust, pass SLP node to costing. |
| (vect_transform_reduction): Adjust. |
| |
| 2025-08-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vect_model_promotion_demotion_cost): Pass |
| in SLP node and drop unused dr argument. Use SLP node for |
| costing, drop costing of constant/external operands. |
| (vectorizable_conversion): Adjust. |
| |
| 2025-08-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_store): Apply SLP_TREE_VECTYPE |
| to slp_node rather than stmt_info. |
| |
| 2025-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/121414 |
| * config/aarch64/aarch64.cc (aarch64_is_variant_pcs): New function, |
| split out from... |
| (aarch64_asm_output_variant_pcs): ...here. Handle various types |
| of SME function type. |
| |
| 2025-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/120718 |
| * simplify-rtx.cc (simplify_context::simplify_gen_subreg): |
| Remove MODE_COMPOSITE_P condition. |
| |
| 2025-08-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121405 |
| * tree-ssa-sccvn.cc (visit_nary_op): Handle BIT_FIELD_REF |
| with reference def by looking up a combination of both. |
| |
| 2025-08-07 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| * tree-vect-data-refs.cc (vect_compute_data_ref_alignment): |
| Allow DR target alignment to be a poly_int. |
| (vect_enhance_data_refs_alignment): Support peeling and |
| versioning for VLA modes. |
| * tree-vect-loop-manip.cc (get_misalign_in_elems): Remove |
| power-of-two rounding in peeling. |
| (vect_create_cond_for_align_checks): Update alignment check |
| logic for poly_int mask. |
| (vect_create_cond_for_vla_spec_read): New runtime checks. |
| (vect_loop_versioning): Support new runtime checks. |
| * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Add a new |
| loop_vinfo field. |
| (vectorizable_induction): Fix wrong IV offset issue. |
| * tree-vect-stmts.cc (get_load_store_type): Refactor |
| vectorizable checks for speculative loads. |
| * tree-vectorizer.h (LOOP_VINFO_MAX_SPEC_READ_AMOUNT): New |
| macro for new runtime checks. |
| (LOOP_REQUIRES_VERSIONING_FOR_SPEC_READ): Likewise |
| (LOOP_REQUIRES_VERSIONING): Update macro for new runtime checks. |
| |
| 2025-08-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR preprocessor/120778 |
| * doc/invoke.texi (Wkeyword-macro): Document. |
| |
| 2025-08-07 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc (print_operand): Allow arbitrary wide_int |
| constants for _BitInt. |
| (s390_bitint_type_info): Implement target hook |
| TARGET_C_BITINT_TYPE_INFO. |
| |
| 2025-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/96226 |
| * config/i386/predicates.md (and_operator): New operator. |
| * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask): |
| Use and_operator to match AND RTX and use its mode |
| in the split pattern. |
| |
| 2025-08-06 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| PR target/69374 |
| * doc/install.texi (Prerequisites): Replace bzip2 by xz. |
| |
| 2025-08-06 Yangyu Chen <cyy@cyyself.name> |
| |
| * config/i386/i386.h (PTA_BDVER1): |
| Add missing PTA_POPCNT and PTA_LZCNT with PTA_ABM. |
| (PTA_ZNVER1): Ditto. |
| (PTA_BTVER1): Ditto. |
| (PTA_LUJIAZUI): Ditto. |
| (PTA_YONGFENG): Do not include extra PTA_LZCNT. |
| |
| 2025-08-06 Sam James <sam@gentoo.org> |
| |
| PR libstdc++/29286 |
| * Makefile.in (ALIASING_FLAGS): Drop. |
| * configure: Regenerate. |
| * configure.ac: Drop -fno-strict-aliasing workaround for < GCC 4.3. |
| |
| 2025-08-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.cc (vect_supportable_dr_alignment): |
| Prune dead code. |
| |
| 2025-08-06 Patrick Palka <ppalka@redhat.com> |
| |
| PR c++/121231 |
| PR c++/119688 |
| PR c++/94511 |
| * common.opt: Document additional ABI version 21 change. |
| * doc/invoke.texi: Likewise. |
| |
| 2025-08-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_slp_tree::gs_scale): New. |
| (_slp_tree::gs_base): Likewise. |
| (SLP_TREE_GS_SCALE): Likewise. |
| (SLP_TREE_GS_BASE): Likewise. |
| (vect_describe_gather_scatter_call): Declare. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize |
| new members. |
| (vect_build_slp_tree_2): Record gather/scatter base and scale. |
| (vect_get_and_check_slp_defs): For gather/scatter IFNs |
| describe the call to first_gs_info. |
| * tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Add |
| mode of operation with fixed offset vector type. |
| (vect_describe_gather_scatter_call): Export. |
| * tree-vect-stmts.cc (get_load_store_type): Do not call |
| vect_check_gather_scatter to fill gs_info, instead populate |
| from the SLP tree. Check which of, IFN, decl or fallback |
| is supported and record that decision. |
| |
| 2025-08-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_store): Build proper |
| alias + align pointer value for gather/scatter and SLP |
| and use it. |
| (vectorizable_load): Likewise. |
| |
| 2025-08-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (check_load_store_for_partial_vectors): |
| Remove redundant gather/scatter target support check, instead |
| check the recorded ifns. Also allow legacy gather/scatter |
| with loop masking. |
| |
| 2025-08-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/121413 |
| * gimple-lower-bitint.cc (gimple_lower_bitint): Fix up last |
| commit, cast limb_prec to unsigned before comparison. |
| |
| 2025-08-06 Yang Yujie <yangyujie@loongson.cn> |
| |
| * match.pd: Preserve conversion to _BitInt before a VCE |
| if the _BitInt is extended. |
| |
| 2025-08-06 Yang Yujie <yangyujie@loongson.cn> |
| |
| * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt): |
| Zero-extend the partial limb of any unsigned _BitInt LHS assigned |
| with a widening sign-extension. |
| |
| 2025-08-06 Yang Yujie <yangyujie@loongson.cn> |
| |
| * gimple-lower-bitint.cc (bitint_large_huge::limb_access): |
| Add a parameter abi_load_p. If set, load a limb directly |
| in its actual precision without casting from m_limb_type. |
| (struct bitint_large_huge): Same. |
| (bitint_large_huge::handle_load): Use. |
| |
| 2025-08-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/121413 |
| * gimple-lower-bitint.cc (abi_limb_prec): New variable |
| (bitint_precision_kind): Initialize it. |
| (gimple_lower_bitint): Clear it at the start. For |
| min_prec > limb_prec descreased precision vars for |
| INTEGER_CST PHI arguments ensure min_prec is either |
| prec or multiple of abi_limb_prec. |
| |
| 2025-08-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/121127 |
| * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr): For |
| uninitialized SSA_NAME, set *prec_stored to 0 rather than *prec. |
| Handle that case in narrowing casts. If prec_stored is non-NULL, |
| set *prec_stored to prec_stored_val. |
| |
| 2025-08-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/121386 |
| * Makefile.in (gengtype-lex.cc): Append #define FLEX_SCANNER, |
| #include "system.h" and #undef FLEX_SCANNER to the prepended lines. |
| * gengtype-lex.l: Remove inclusion of config.h or bconfig.h, system.h |
| and definition of malloc/realloc from %{} section. |
| |
| 2025-08-06 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/arch-canonicalize: Read extension data from |
| riscv-ext*.def and adding unittest. |
| |
| 2025-08-06 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_expand_arch): |
| Ignore `unset`. |
| * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Handle |
| `-march=unset`. |
| (ARCH_UNSET_CLEANUP_SPECS): New. |
| (DRIVER_SELF_SPECS): Handle -march=unset. |
| * doc/invoke.texi (RISC-V Options): Update documentation for |
| `-march=unset`. |
| |
| 2025-08-06 Kwok Cheung Yeung <kcyeung@baylibre.com> |
| |
| * gimplify.cc (remove_unused_omp_iterator_vars): Display unused |
| variable warning for 'to' and 'from' clauses. |
| (gimplify_scan_omp_clauses): Add argument for iterator loop sequence. |
| Gimplify the clause decl and size into the iterator loop if iterators |
| are used. |
| (gimplify_omp_workshare): Add argument for iterator loops sequence |
| in call to gimplify_scan_omp_clauses. |
| (gimplify_omp_target_update): Call remove_unused_omp_iterator_vars and |
| build_omp_iterators_loops. Add loop sequence as argument when calling |
| gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses and building |
| the Gimple statement. |
| * tree-pretty-print.cc (dump_omp_clause): Call dump_omp_iterators |
| for to/from clauses with iterators. |
| * tree.cc (omp_clause_num_ops): Add extra operand for OMP_CLAUSE_FROM |
| and OMP_CLAUSE_TO. |
| * tree.h (OMP_CLAUSE_HAS_ITERATORS): Add check for OMP_CLAUSE_TO and |
| OMP_CLAUSE_FROM. |
| (OMP_CLAUSE_ITERATORS): Likewise. |
| |
| 2025-08-06 Kwok Cheung Yeung <kcyeung@baylibre.com> |
| Andrew Stubbs <ams@baylibre.com> |
| |
| * gimple-pretty-print.cc (dump_gimple_omp_target): Print expanded |
| iterator loops. |
| * gimple.cc (gimple_build_omp_target): Add argument for iterator |
| loops sequence. Initialize iterator loops field. |
| * gimple.def (GIMPLE_OMP_TARGET): Set GSS symbol to GSS_OMP_TARGET. |
| * gimple.h (gomp_target): Set GSS symbol to GSS_OMP_TARGET. Add extra |
| field for iterator loops. |
| (gimple_build_omp_target): Add argument for iterator loops sequence. |
| (gimple_omp_target_iterator_loops): New. |
| (gimple_omp_target_iterator_loops_ptr): New. |
| (gimple_omp_target_set_iterator_loops): New. |
| * gimplify.cc (find_var_decl): New. |
| (copy_omp_iterator): New. |
| (remap_omp_iterator_var_1): New. |
| (remap_omp_iterator_var): New. |
| (remove_unused_omp_iterator_vars): New. |
| (struct iterator_loop_info_t): New type. |
| (iterator_loop_info_map_t): New type. |
| (build_omp_iterators_loops): New. |
| (enter_omp_iterator_loop_context_1): New. |
| (enter_omp_iterator_loop_context): New. |
| (enter_omp_iterator_loop_context): New. |
| (exit_omp_iterator_loop_context): New. |
| (gimplify_adjust_omp_clauses): Add argument for iterator loop |
| sequence. Gimplify the clause decl and size into the iterator |
| loop if iterators are used. |
| (gimplify_omp_workshare): Call remove_unused_omp_iterator_vars and |
| build_omp_iterators_loops for OpenMP target expressions. Add |
| loop sequence as argument when calling gimplify_adjust_omp_clauses |
| and building the Gimple statement. |
| * gimplify.h (enter_omp_iterator_loop_context): New prototype. |
| (exit_omp_iterator_loop_context): New prototype. |
| * gsstruct.def (GSS_OMP_TARGET): New. |
| * omp-low.cc (lower_omp_map_iterator_expr): New. |
| (lower_omp_map_iterator_size): New. |
| (finish_omp_map_iterators): New. |
| (lower_omp_target): Add sorry if iterators used with deep mapping. |
| Call lower_omp_map_iterator_expr before assigning to sender ref. |
| Call lower_omp_map_iterator_size before setting the size. Insert |
| iterator loop sequence before the statements for the target clause. |
| * tree-nested.cc (convert_nonlocal_reference_stmt): Walk the iterator |
| loop sequence of OpenMP target statements. |
| (convert_local_reference_stmt): Likewise. |
| (convert_tramp_reference_stmt): Likewise. |
| * tree-pretty-print.cc (dump_omp_iterators): Dump extra iterator |
| information if present. |
| (dump_omp_clause): Call dump_omp_iterators for iterators in map |
| clauses. |
| * tree.cc (omp_clause_num_ops): Add operand for OMP_CLAUSE_MAP. |
| (walk_tree_1): Do not walk last operand of OMP_CLAUSE_MAP. |
| * tree.h (OMP_CLAUSE_HAS_ITERATORS): New. |
| (OMP_CLAUSE_ITERATORS): New. |
| |
| 2025-08-05 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121410 |
| * config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Use |
| STORE_MAX_PIECES to get the widest vector mode in vector loop |
| for memset. |
| |
| 2025-08-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_rtx_costs_1) [SIGN_EXTEND]: Adjust cost. |
| * config/avr/avr.md (*sext.ashift<QIPSI:mode><HISI:mode>2): New |
| insn and a cc split. |
| |
| 2025-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/121306 |
| * config/i386/predicates.md (extract_operator): Replace with... |
| (extract_high_operator): ...this new predicate. |
| * config/i386/i386.md (*cmpqi_ext<mode>_1, *cmpqi_ext<mode>_2) |
| (*cmpqi_ext<mode>_3, *cmpqi_ext<mode>_4, *movstrictqi_ext<mode>_1) |
| (*extzv<mode>, *insvqi_2, *extendqi<SWI24:mode>_ext_1) |
| (*addqi_ext<mode>_1_slp, *addqi_ext<mode>_1_slp, *addqi_ext<mode>_0) |
| (*addqi_ext2<mode>_0, *addqi_ext<mode>_1, *<insn>qi_ext<mode>_2) |
| (*subqi_ext<mode>_1_slp, *subqi_ext<mode>_2_slp, *subqi_ext<mode>_0) |
| (*subqi_ext2<mode>_0, *subqi_ext<mode>_1, *testqi_ext<mode>_1) |
| (*testqi_ext<mode>_2, *<code>qi_ext<mode>_1_slp) |
| (*<code>qi_ext<mode>_2_slp. *<code>qi_ext<mode>_0) |
| (*<code>qi_ext2<mode>_0, *<code>qi_ext<mode>_1) |
| (*<code>qi_ext<mode>_1_cc, *<code>qi_ext<mode>_1_cc) |
| (*<code>qi_ext<mode>_2, *<code>qi_ext<mode>_3, *negqi_ext<mode>_1) |
| (*one_cmplqi_ext<mode>_1, *ashlqi_ext<mode>_1, *<insn>qi_ext<mode>_1) |
| (define_peephole2): Replace uses of extract_operator with |
| extract_high_operator, matching only the first operand. |
| Use zero_extract rather than match_op_dup when splitting. |
| |
| 2025-08-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_relevant::hybrid): Remove. |
| * tree-vect-loop.cc (vect_analyze_loop_2): Do not call |
| vect_detect_hybrid_slp. |
| * tree-vect-slp.cc (maybe_push_to_hybrid_worklist): Remove. |
| (vect_detect_hybrid_slp): Likewise. |
| |
| 2025-08-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/121359 |
| * config/avr/avr.h: Remove -mlra and remains of reload. |
| * config/avr/avr.cc: Same. |
| * config/avr/avr.md: Same. |
| * config/avr/avr-log.cc: Same. |
| * config/avr/avr-protos.h: Same. |
| * config/avr/avr.opt: Same. |
| * config/avr/avr.opt.urls: Same. |
| |
| 2025-08-05 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121306 |
| * config/i386/i386.md (*one_cmplqi_ext<mode>_1): Updated to |
| support the new pattern. |
| |
| 2025-08-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121395 |
| * tree-vectorizer.h (_loop_vec_info::alternate_defs): New member. |
| (LOOP_VINFO_ALTERNATE_DEFS): New. |
| * tree-vect-stmts.cc (vect_stmt_relevant_p): Populate it. |
| (vectorizable_simd_clone_call): Do not register a SLP def |
| when there is none. |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Allow a NULL |
| vectype when there's no LHS. Allow all calls w/o LHS. |
| (vect_analyze_slp): Process LOOP_VINFO_ALTERNATE_DEFS as |
| SLP graph entries. |
| (vect_make_slp_decision): Handle a NULL SLP_TREE_VECTYPE. |
| (vect_slp_analyze_node_operations_1): Likewise. |
| (vect_schedule_slp_node): Likewise. |
| |
| 2025-08-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (enum slp_vect_type): Rename loop_vect |
| to not_vect, clarify docs. |
| (HYBRID_SLP_STMT): Remove. |
| * tree-vectorizer.cc (vec_info::new_stmt_vec_info): Adjust. |
| * tree-vect-loop.cc (vect_analyze_loop_2): Likewise. |
| |
| 2025-08-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.cc (vect_get_data_access_cost): Use |
| ncopies == 1. |
| * tree-vect-slp.cc (vect_remove_slp_scalar_calls): Remove |
| hybrid/loop SLP skip. |
| * tree-vect-stmts.cc (vectorizable_store): Remove pure SLP assert. |
| |
| 2025-08-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121382 |
| * tree-ssa-loop-ivopts.cc (create_new_iv): Rewrite the IV |
| step to defined form. |
| |
| 2025-08-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121370 |
| * tree-scalar-evolution.cc (scev_dfs::add_to_evolution_1): |
| Avoid UB integer overflow in accumulating CHREC_RIGHT. |
| |
| 2025-08-05 Yang Yujie <yangyujie@loongson.cn> |
| |
| * expr.cc (expand_expr_real_1): Do not call |
| reduce_to_bit_field_precision if the target assumes the _BitInt |
| results to be already extended. |
| (EXTEND_BITINT): Same. |
| * expr.h (bitint_extended): Declare the cache variable. |
| * function.cc (prepare_function_start): Initialize it. |
| |
| 2025-08-05 Yang Yujie <yangyujie@loongson.cn> |
| |
| * explow.cc (promote_function_mode): Add a case for |
| small/medium _BitInts. |
| (promote_mode): Same. |
| |
| 2025-08-05 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| PR target/69374 |
| * doc/install.texi (Configuration): Mark up atexit as code. |
| |
| 2025-08-05 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv.cc (riscv_expand_xmode_usmul): Take |
| umulhu for high bits mul result. |
| |
| 2025-08-04 Hans-Peter Nilsson <hp@bitrange.com> |
| |
| * defaults.h (MAX_FIXED_MODE_SIZE): Default to 2 * BITS_PER_WORD |
| for larger-than-32-bitters. |
| * doc/tm.texi.in (MAX_FIXED_MODE_SIZE): Adjust accordingly. Tweak |
| wording. |
| * doc/tm.texi: Regenerate. |
| |
| 2025-08-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * dump-context.h: Convert "enum optinfo_item_kind" into |
| "enum class kind" within class optinfo_item. |
| * dumpfile.cc: Likewise. Use "auto" in a few places. |
| Convert "enum optinfo_kind" to "enum class kind" within |
| class optinfo. |
| * opt-problem.cc: Likewise. |
| * optinfo-emit-json.cc: Likewise. |
| * optinfo.cc: Likewise. |
| * optinfo.h: Likewise. |
| |
| 2025-08-04 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/116253 |
| * diagnostics/context.cc (context::set_nesting_level): New. |
| * diagnostics/context.h (context::set_nesting_level): New decl. |
| * doc/libgdiagnostics/topics/compatibility.rst |
| (LIBGDIAGNOSTICS_ABI_5): New. |
| * doc/libgdiagnostics/topics/physical-locations.rst |
| (diagnostic_manager_set_debug_physical_locations): New. |
| * libgdiagnostics++.h (manager::set_debug_physical_locations): |
| New. |
| * libgdiagnostics-private.h |
| (private_diagnostic_set_nesting_level): New decl. |
| * libgdiagnostics.cc (diagnostic_manager::diagnostic_manager): |
| Initialize m_debug_physical_locations. |
| (diagnostic_manager::new_location_from_file_and_line): Add debug |
| printing. |
| (diagnostic_manager::new_location_from_file_line_column): |
| Likewise. |
| (diagnostic_manager::new_location_from_range): Likewise. |
| (diagnostic_manager::set_debug_physical_locations): New. |
| (diagnostic_manager::ensure_linemap_for_file_and_line): Avoid |
| redundant calls to linemap_add. |
| (diagnostic_manager::new_location): Add debug printing. |
| (diagnostic_manager::m_debug_physical_locations): New field. |
| (diagnostic::diagnostic): Initialize m_nesting_level. |
| (diagnostic::get_nesting_level): New accessor. |
| (diagnostic::set_nesting_level): New. |
| (diagnostic::m_nesting_level): New field. |
| (diagnostic_manager::emit_va): Set and reset the nesting level |
| of the context from that of the diagnostic. |
| (diagnostic_manager_set_debug_physical_locations): New. |
| (private_diagnostic_set_nesting_level): New. |
| * libgdiagnostics.h |
| (diagnostic_manager_set_debug_physical_locations): New decl. |
| * libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_5): New. |
| * libsarifreplay.cc (sarif_replayer::handle_result_obj): Support |
| the "nestingLevel" property. |
| * libsarifreplay.h (replay_options::m_debug_physical_locations): |
| New field. |
| * sarif-replay.cc: Add -fdebug-physical-locations. |
| |
| 2025-08-04 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/116792 |
| * diagnostics/html-sink.cc |
| (html_builder::make_element_for_diagnostic): Don't add the |
| metadata element if it's empty. |
| (html_builder::make_element_for_metadata): Return null rather than |
| an empty element. |
| |
| 2025-08-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/context.h: Move struct counters to its own header |
| and include it. |
| * diagnostics/counters.h: New file, from the above. |
| |
| 2025-08-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/context.h: Split struct source_printing_options out |
| into "diagnostics/source-printing-options.h" and include it. |
| * diagnostics/source-printing-options.h: New file, from the above. |
| |
| 2025-08-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/context.cc: Update for renaming of option_manager to |
| option_id_manager and of context::m_option_mgr to |
| context::m_option_id_mgr. |
| * diagnostics/context.h: Likewise, moving class declaration to a |
| new diagnostics/option-id-manager.h. |
| * diagnostics/lazy-paths.cc: Likewise. |
| * diagnostics/option-id-manager.h: New file, from material in |
| diagnostics/context.h. |
| * lto-wrapper.cc: Update for renaming of option_manager to |
| option_id_manager. |
| * opts-common.cc: Likewise. |
| * opts-diagnostic.h: Likewise. |
| * opts.cc: Likewise. |
| * toplev.cc: Likewise. |
| |
| 2025-08-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/buffering.h: Update comment to refer to output sinks |
| rather than output formats. |
| |
| 2025-08-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * gimple-warn-recursion.cc (pass_warn_recursion::execute): Add |
| missing auto_diagnostic_group. |
| |
| 2025-08-04 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/121303 |
| * avoid-store-forwarding.cc (is_store_forwarding): Add check |
| for `off_val` in `is_store_forwarding`. |
| |
| 2025-08-04 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_analyze_slp): When analyzing a loop |
| and slp instance discovery fails, immediately fail the whole |
| process. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins.cc |
| (function_expander::expand): Assert that the return value |
| has an appropriate mode. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h |
| (aarch64_convert_sve_data_to_pred): Remove the mode argument. |
| * config/aarch64/aarch64.cc |
| (aarch64_sve_emit_int_cmp): Allow PRED_MODE to be VNx16BI or |
| the natural predicate mode for the data mode. |
| (aarch64_convert_sve_data_to_pred): Remove the mode argument |
| and instead always create a VNx16BI result. |
| (aarch64_expand_sve_const_pred): Update call accordingly. |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svdupq_impl::expand): Likewise, ensuring that the result |
| has mode VNx16BI. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h |
| (aarch64_emit_sve_pred_vec_duplicate): Declare. |
| * config/aarch64/aarch64.cc |
| (aarch64_emit_sve_pred_vec_duplicate): New function. |
| * config/aarch64/aarch64-sve.md (vec_duplicate<PRED_ALL:mode>): Use it. |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svdup_impl::expand): Handle boolean values specially. Check for |
| constants and fall back on aarch64_emit_sve_pred_vec_duplicate |
| for the variable case, ensuring that the result has mode VNx16BI. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (PNEXT_ONLY): New int iterator. |
| * config/aarch64/aarch64-sve.md |
| (@aarch64_sve_<sve_pred_op><mode>): Restrict SVE_PITER pattern |
| to VNx16BI_ONLY. |
| (@aarch64_sve_<sve_pred_op><mode>): New PNEXT_ONLY pattern for |
| PRED_HSD. |
| (*aarch64_sve_<sve_pred_op><mode>): Likewise. |
| (*aarch64_sve_<sve_pred_op><mode>_cc): Likewise. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve2.md (@aarch64_pred_<sve_int_op><mode>): |
| Split SVE2_MATCH pattern into a VNx16QI_ONLY define_ins and a |
| VNx8HI_ONLY define_expand. Use a VNx16BI destination for the latter. |
| (*aarch64_pred_<sve_int_op><mode>): New SVE2_MATCH pattern for |
| VNx8HI_ONLY. |
| (*aarch64_pred_<sve_int_op><mode>_cc): Likewise. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@aarch64_pred_fac<cmp_op><mode>): |
| Replace with... |
| (@aarch64_pred_fac<cmp_op><mode>_acle): ...this new expander. |
| (*aarch64_pred_fac<cmp_op><mode>_strict_acle): New pattern. |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svac_impl::expand): Update accordingly. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@aarch64_pred_fcm<cmp_op><mode>_acle) |
| (*aarch64_pred_fcm<cmp_op><mode>_acle, @aarch64_pred_fcmuo<mode>_acle) |
| (*aarch64_pred_fcmuo<mode>_acle): New patterns. |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svcmp_impl::expand, svcmpuo_impl::expand): Use them. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_wide): |
| Split into VNx16QI_ONLY and SVE_FULL_HSI patterns. Use VNx16BI |
| results for both. |
| (*aarch64_pred_cmp<cmp_op><mode>_wide): New pattern. |
| (*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Likewise. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md |
| (*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Turn into a |
| define_insn_and_rewrite and rewrite the governing predicate |
| of the comparison so that it is identical to the PTEST's. |
| (*aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Likewise. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_wide) |
| (*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Use <VPRED> instead of |
| VNx16BI for the governing predicate. |
| (*aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Likewise. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_acle) |
| (*aarch64_pred_cmp<cmp_op><mode>_acle, *cmp<cmp_op><mode>_acle_cc) |
| (*cmp<cmp_op><mode>_acle_and): New patterns that yield VNx16BI |
| results for all element types. |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svcmp_impl::expand): Use them. |
| (svcmp_wide_impl::expand): Likewise when implementing an svcmp_wide |
| against an in-range constant. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@aarch64_sve_punpk<perm_hilo>_acle) |
| (*aarch64_sve_punpk<perm_hilo>_acle): New patterns. |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svunpk_impl::expand): Use them for boolean svunpk*. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/121294 |
| * config/aarch64/aarch64.md (UNSPEC_REV_PRED): New unspec. |
| * config/aarch64/aarch64-sve.md (@aarch64_sve_rev<mode>_acle) |
| (*aarch64_sve_rev<mode>_acle): New patterns. |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svrev_impl::expand): Use the new patterns for boolean svrev. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/121294 |
| * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): Delete. |
| (UNSPEC_PERMUTE_PRED): New unspec. |
| * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): |
| Replace with... |
| (@aarch64_sve_<perm_insn><mode>_acle) |
| (*aarch64_sve_<perm_insn><mode>_acle): ...these new patterns. |
| * config/aarch64/aarch64.cc (aarch64_expand_sve_const_pred_trn): |
| Update accordingly. |
| * config/aarch64/aarch64-sve-builtins-functions.h |
| (binary_permute::expand): Use the new _acle patterns for |
| predicate operations. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR testsuite/121118 |
| * config/aarch64/iterators.md (VNx16BI_ONLY): New mode iterator. |
| * config/aarch64/predicates.md (aarch64_ptrue_all_operand): New |
| predicate. |
| * config/aarch64/aarch64-sve.md |
| (@aarch64_sve_while_<while_optab_cmp><GPI:mode><VNx16BI_ONLY:mode>_acle) |
| (@aarch64_sve_while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle) |
| (*aarch64_sve_while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle) |
| (*while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle_cc): New |
| patterns. |
| * config/aarch64/aarch64-sve-builtins-functions.h |
| (while_comparison::expand): Use the new _acle patterns that |
| always return a VNx16BI. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc |
| (svwhilerw_svwhilewr_impl::expand): Likewise. |
| * config/aarch64/aarch64.cc |
| (aarch64_sve_move_pred_via_while): Likewise. |
| |
| 2025-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/121293 |
| * config/aarch64/aarch64-sve-builtins-base.cc (svdupq_lane::expand): |
| Use aarch64_sve_reinterpret instead of subregs. Explicitly |
| reinterpret the result back to the required mode, rather than |
| leaving the caller to take a subreg. |
| |
| 2025-08-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121362 |
| * tree-ssa-sccvn.cc (vn_reference_lookup_3): Generalize |
| aggregate copy handling. |
| |
| 2025-08-04 Filip Kastl <fkastl@suse.cz> |
| |
| * doc/invoke.texi: Add remark about -options being documented |
| under -fdump-tree. Remove remark about -graph working only for |
| RTL. |
| |
| 2025-08-04 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120941 |
| * config/i386/i386-features.cc (x86_cse_kind): Moved before |
| ix86_place_single_vector_set. |
| (redundant_load): Likewise. |
| (ix86_place_single_vector_set): Replace the last argument to the |
| pointer to redundant_load. For X86_CSE_VEC_DUP, don't place the |
| vector set outside of the loop to avoid extra spills. |
| (remove_redundant_vector_load): Pass load to |
| ix86_place_single_vector_set. |
| |
| 2025-08-03 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (define_insn_and_split) [reload_completed]: |
| For splits that just append a (clobber (reg:CC REG_CC)) to |
| the pattern, use avr_add_ccclobber (curr_insn) instead of |
| repeating the original pattern. |
| * config/avr/avr-dimode.md: Same. |
| * config/avr/avr-fixed.md: Same. |
| |
| 2025-08-03 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_add_ccclobber): New function. |
| * config/avr/avr-protos.h (avr_add_ccclobber): New proto. |
| (DONE_ADD_CCC): New define. |
| |
| 2025-08-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90242 |
| * tree-ssa-sccvn.cc (vn_reference_compute_hash): Use |
| poly_offset_int for offset accumulation. For hashing |
| truncate to 64 bits and also hash 64 bits. |
| (vn_reference_eq): Likewise. |
| |
| 2025-08-02 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| PR target/69374 |
| * doc/install.texi (Specific) <windows>: Drop note on 16-bit |
| Windows support. Streamline note on 32-bit support. |
| |
| 2025-08-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121350 |
| * tree-vect-stmts.cc (vectorizable_store): Pass down SLP |
| node when costing scalar stores in vect_body. |
| |
| 2025-08-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121349 |
| * tree-vect-stmts.cc (check_load_store_for_partial_vectors): |
| Get full SLP mask, reduce to uniform scalar_mask for further |
| processing if possible. |
| (vect_check_scalar_mask): Remove scalar mask output, remove |
| code conditional on slp_mask. |
| (vectorizable_call): Adjust. |
| (check_scan_store): Get and check SLP mask. |
| (vectorizable_store): Eliminate scalar mask variable. |
| (vectorizable_load): Likewise. |
| |
| 2025-08-01 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Prerequisites): mdocml.bsd.lv is now |
| mandoc.bsd.lv. |
| |
| 2025-08-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (get_group_load_store_type): Remove, |
| inline into ... |
| (get_load_store_type): ... this. Remove ncopies parameter. |
| (vectorizable_load): Adjust. |
| (vectorizable_store): Likewise. |
| |
| 2025-08-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (get_group_load_store_type): Remove |
| checks performed at SLP build time. |
| (vect_check_store_rhs): Remove scalar RHS output. |
| (vectorizable_store): Remove uses of scalar RHS. |
| |
| 2025-08-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (VMAT_UNINITIALIZED): New |
| vect_memory_access_type. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Use it. |
| |
| 2025-08-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121338 |
| * tree-ssa-loop-ivopts.cc (avg_loop_niter): Return an |
| unsigned. |
| (adjust_setup_cost): When niters is so large the division |
| result is one or zero avoid it. |
| (create_new_ivs): Adjust. |
| |
| 2025-08-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_simd_clone_data): New. |
| (_slp_tree::simd_clone_info): Remove. |
| (SLP_TREE_SIMD_CLONE_INFO): Likewise. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Adjust. |
| (_slp_tree::~_slp_tree): Likewise. |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use |
| tyupe specific data to store SLP_TREE_SIMD_CLONE_INFO. |
| |
| 2025-08-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Adjust. |
| (_slp_tree::~_slp_tree): Likewise. |
| * tree-vectorizer.h (vect_data): New base class. |
| (_slp_tree::u): Remove. |
| (_slp_tree::data): Add pointer to vect_data. |
| (_slp_tree::get_data): New helper template. |
| |
| 2025-08-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/121322 |
| * gimple-ssa-store-merging.cc (find_bswap_or_nop): Return NULL if |
| count is 0. |
| |
| 2025-07-31 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt.urls (-mfuse-move2): Add url. |
| |
| 2025-07-31 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_output_addr_vec) <labl>: Asm out its .type. |
| |
| 2025-07-31 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR rtl-optimization/121340 |
| * config/avr/avr.opt (-mfuse-move2): New option. |
| * config/avr/avr-passes.def (avr_pass_2moves): Insert after combine. |
| * config/avr/avr-passes.cc (make_avr_pass_2moves): New function. |
| (pass_data avr_pass_data_2moves): New static variable. |
| (avr_pass_2moves): New rtl_opt_pass. |
| * config/avr/avr-protos.h (make_avr_pass_2moves): New proto. |
| * common/config/avr/avr-common.cc |
| (default_options avr_option_optimization_table) <-mfuse-move2>: |
| Set for -O1 and higher. |
| * doc/invoke.texi (AVR Options) <-mfuse-move2>: Document. |
| |
| 2025-07-31 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/120805 |
| * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Skip setting |
| bounds on epilogues. |
| |
| 2025-07-31 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * common/config/aarch64/cpuinfo.h: Remove unused features, add FEAT_CSSC |
| and FEAT_MOPS. |
| * config/aarch64/aarch64-option-extensions.def: Remove FMV support |
| for RPRES, use PULL rather than AES, add FMV support for CSSC and MOPS. |
| |
| 2025-07-31 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/tuning_models/generic_armv9_a.h |
| (generic_armv9_a_addrcost_table): Use zero cost for himode. |
| |
| 2025-07-31 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (get_group_load_store_type): Properly |
| compare the scalar type of the gather/scatter offset to |
| the offset vector component type. |
| |
| 2025-07-31 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.h (fold_stmt_inplace): Add valueization hook |
| argument, defaulted to no_follow_ssa_edges. |
| * gimple-fold.cc (fold_stmt_inplace): Adjust. |
| |
| 2025-07-31 Artemiy Granat <a.granat@ispras.ru> |
| |
| * config/i386/i386-options.cc (ix86_handle_cconv_attribute): |
| Fix typo. |
| |
| 2025-07-31 Artemiy Granat <a.granat@ispras.ru> |
| |
| * config/i386/i386-options.cc (ix86_handle_cconv_attribute): |
| Handle simultaneous use of regparm and thiscall attributes in |
| case when regparm is set before thiscall. |
| |
| 2025-07-31 Artemiy Granat <a.granat@ispras.ru> |
| |
| * config/i386/i386-options.cc (ix86_handle_cconv_attribute): |
| Fix comments which state that combination of stdcall and fastcall |
| attributes is valid but redundant. |
| |
| 2025-07-31 Artemiy Granat <a.granat@ispras.ru> |
| |
| * config/i386/i386-options.cc (ix86_handle_cconv_attribute): |
| Move 64-bit mode check before regparm handling. |
| |
| 2025-07-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121320 |
| * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Convert |
| op->off to poly_offset_int before multiplying by |
| BITS_PER_UNIT. |
| |
| 2025-07-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121323 |
| * tree-ssa-alias.cc (ao_ref_init_from_ptr_and_range): Check |
| the pointer offset fits in a HWI when represented in bits. |
| |
| 2025-07-31 Yury Khrustalev <yury.khrustalev@arm.com> |
| |
| * config/aarch64/aarch64.cc (build_ifunc_arg_type): |
| Add new fields _hwcap3 and _hwcap4. |
| |
| 2025-07-31 Kishan Parmar <kishan@linux.ibm.com> |
| |
| PR target/118890 |
| * config/rs6000/rs6000.cc (can_be_rotated_to_negative_lis): Avoid left |
| shift of negative value and guard shift count. |
| (can_be_built_by_li_and_rldic): Likewise. |
| (rs6000_emit_set_long_const): Likewise. |
| * config/rs6000/rs6000.md (splitter for plus into two 16-bit parts): Fix |
| UB from overflow in addition. |
| |
| 2025-07-31 Richard Biener <rguenther@suse.de> |
| |
| * config/aarch64/aarch64.cc (aarch64_detect_vector_stmt_subtype): |
| Check for node before dereferencing. |
| (aarch64_vector_costs::add_stmt_cost): Likewise. |
| |
| 2025-07-31 Spencer Abson <spencer.abson@arm.com> |
| |
| PR target/121028 |
| * config/aarch64/aarch64-sme.md (aarch64_smstart_sm): Use the .inst |
| directive if !TARGET_SME. |
| (aarch64_smstop_sm): Likewise. |
| |
| 2025-07-31 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_stmt_vec_info::memory_access_type): Remove. |
| (STMT_VINFO_MEMORY_ACCESS_TYPE): Likewise. |
| (vect_mem_access_type): Likewise. |
| * tree-vect-stmts.cc (vectorizable_store): Do not set |
| STMT_VINFO_MEMORY_ACCESS_TYPE. Fix SLP_TREE_MEMORY_ACCESS_TYPE |
| usage. |
| * tree-vect-loop.cc (update_epilogue_loop_vinfo): Remove |
| checking of memory access type. |
| * config/riscv/riscv-vector-costs.cc (costs::compute_local_live_ranges): |
| Use SLP_TREE_MEMORY_ACCESS_TYPE. |
| (costs::need_additional_vector_vars_p): Likewise. |
| (segment_loadstore_group_size): Get SLP node as argument, |
| use SLP_TREE_MEMORY_ACCESS_TYPE. |
| (costs::adjust_stmt_cost): Pass down SLP node. |
| * config/aarch64/aarch64.cc (aarch64_ld234_st234_vectors): Use |
| SLP_TREE_MEMORY_ACCESS_TYPE instead of vect_mem_access_type. |
| (aarch64_detect_vector_stmt_subtype): Likewise. |
| (aarch64_vector_costs::count_ops): Likewise. |
| (aarch64_vector_costs::add_stmt_cost): Likewise. |
| |
| 2025-07-31 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_transform_loop): Do not verify DRs |
| have not been modified for epilogue loops. |
| (update_epilogue_loop_vinfo): Do not copy modified DRs to |
| the originals. |
| |
| 2025-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/121264 |
| * machmode.h (get_best_mode): Change type of first 2 arguments |
| from int to HOST_WIDE_INT. |
| * stor-layout.cc (get_best_mode): Likewise. |
| |
| 2025-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-ssa-store-merging.cc (find_bswap_or_nop): Fix comment typos, |
| hanlde -> handle. |
| * config/i386/i386.cc (ix86_gimple_fold_builtin, ix86_rtx_costs): |
| Likewise. |
| * config/i386/i386-features.cc (remove_partial_avx_dependency): |
| Likewise. |
| |
| 2025-07-31 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (check_scan_store): Remove redundant |
| slp_node check. Disallow epilogue vectorization. |
| |
| 2025-07-31 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vector_costs::costing_for_scalar): New |
| accessor. |
| (add_stmt_cost): For scalar costing force vectype to NULL. |
| Verify we do not pass in a SLP node. |
| |
| 2025-07-31 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/121312 |
| * config/riscv/arch-canonicalize: Add H extension to the |
| canonical order. |
| |
| 2025-07-30 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR rtl-optimization/121308 |
| * simplify-rtx.cc (simplify_context::simplify_subreg): Handle |
| subreg of `not` with word_mode to make it symmetric with the |
| other bitwise operators. |
| |
| 2025-07-30 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/121236 |
| PR tree-optimization/121295 |
| * tree-if-conv.cc (factor_out_operators): Change the phi node |
| to the new result and args. |
| |
| 2025-07-30 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| Revert: |
| 2025-07-28 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/121236 |
| * tree-if-conv.cc (is_cond_scalar_reduction): Instead of phi argument, |
| pass bb and res of the phi. |
| (factor_out_operators): Add iterator for the phi. Remove the phi |
| if this is the first time. Return if we had removed the phi. |
| (predicate_scalar_phi): Add the phi iterator argument. |
| Update call to is_cond_scalar_reduction. |
| Update call to factor_out_operators and set the return value to true |
| when factor_out_operators returns true. |
| (predicate_all_scalar_phis): Don't remove the phi if predicate_scalar_phi |
| already removed it. |
| |
| 2025-07-30 Jan Hubicka <jh@suse.cz> |
| |
| * auto-profile.cc (string_table::read): Check gcov_is_error. |
| (read_profile): Likewise. |
| * gcov-io.cc (gcov_is_error): Export for gcc linkage. |
| * gcov-io.h (gcov_is_error): Declare. |
| |
| 2025-07-30 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_default_vector_cost): Split |
| out from ... |
| (ix86_builtin_vectorization_cost): ... this and use |
| mode instead of vectype as argument. |
| (ix86_vector_costs::add_stmt_cost): Call |
| ix86_default_vector_cost instead of ix86_builtin_vectorization_cost. |
| |
| 2025-07-30 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR target/117015 |
| * config/s390/s390-protos.h (s390_expand_int_spaceship): New |
| function. |
| (s390_expand_fp_spaceship): New function. |
| * config/s390/s390.cc (s390_expand_int_spaceship): New function. |
| (s390_expand_fp_spaceship): New function. |
| * config/s390/s390.md (spaceship<mode>4): New expander. |
| |
| 2025-07-30 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * cprop.cc (bypass_block): Extract single set. |
| (bypass_conditional_jumps): Ditto. |
| |
| 2025-07-30 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120427 |
| * config/i386/i386.md (peephole2): Transform "movq $-1,reg" to |
| "pushq $-1; popq reg" for -Oz if reg is a legacy integer register. |
| |
| 2025-07-30 Jan Hubicka <jh@suse.cz> |
| |
| * auto-profile.cc (function_instance::match): Disable warning |
| about bogus locations since dwarf does not represent enough |
| info to output them correctly in all cases. |
| (add_scale): Use nonzero_p instead of orig.force_nonzero () == orig. |
| (afdo_adjust_guessed_profile): Add missing newline in dump |
| file. |
| |
| 2025-07-30 Jan Hubicka <jh@suse.cz> |
| |
| * symtab.cc (symbol_table::change_decl_assembler_name): Recompute DECL_RTL |
| in case it is already computed. |
| |
| 2025-07-30 Jan Hubicka <jh@suse.cz> |
| |
| * predict.cc (unlikely_executed_edge_p): Ignore EDGE_EH if profile |
| is reliable. |
| (unlikely_executed_stmt_p): special case builtin_trap/unreachable and |
| ignore other heuristics for reliable profiles. |
| (tree_estimate_probability): Disable unlikely bb detection when |
| doing dry run |
| |
| 2025-07-30 Andrew Stubbs <ams@baylibre.com> |
| Julian Brown <julian@codesourcery.com> |
| |
| * doc/tm.texi.in (TARGET_VECTORIZE_PREFER_GATHER_SCATTER): Add |
| documentation hook. |
| * doc/tm.texi: Regenerate. |
| * target.def (prefer_gather_scatter): Add target hook under vectorizer. |
| * hooks.cc (hook_bool_mode_int_unsigned_false): New function. |
| * hooks.h (hook_bool_mode_int_unsigned_false): New prototype. |
| * tree-vect-stmts.cc (vect_use_strided_gather_scatters_p): Add |
| parameters group_size and single_element_p, and rework to use |
| targetm.vectorize.prefer_gather_scatter. |
| (get_group_load_store_type): Move some of the condition into |
| vect_use_strided_gather_scatters_p. |
| * config/gcn/gcn.cc (gcn_prefer_gather_scatter): New function. |
| (TARGET_VECTORIZE_PREFER_GATHER_SCATTER): Define hook. |
| |
| 2025-07-30 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn.cc (gcn_option_override): Add note to set default for |
| param_vect_partial_vector_usage to "1". |
| * optc-save-gen.awk: Don't pass through options marked "NoOffload". |
| * params.opt (-param=vect-epilogues-nomask): Add NoOffload. |
| (-param=vect-partial-vector-usage): Likewise. |
| (-param=vect-inner-loop-cost-factor): Likewise. |
| |
| 2025-07-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121130 |
| * tree-vect-stmts.cc (vectorizable_call): Bail out for |
| .MASK_CALL. |
| |
| 2025-07-30 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| PR tree-optimization/121020 |
| * tree-vect-loop-manip.cc (vect_do_peeling): Update the |
| condition of omitting the skip-vector check. |
| * tree-vectorizer.h (LOOP_VINFO_USE_VERSIONING_WITHOUT_PEELING): |
| Add a helper macro. |
| |
| 2025-07-30 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| PR tree-optimization/121190 |
| * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): |
| Increase alignment requirement for speculative loads. |
| |
| 2025-07-30 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/121300 |
| * config/aarch64/aarch64-sve-builtins-sme.def (svamin/svamax): Fix |
| arch gating. |
| |
| 2025-07-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (get_group_load_store_type): |
| Process STMT_VINFO_GATHER_SCATTER before reading |
| memory_access_type. |
| |
| 2025-07-30 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@cond_<optab><mode>): Extend |
| to support partial FP modes. |
| (*cond_<optab><mode>_2_strict): Extend from SVE_FULL_F to SVE_F, |
| use aarch64_predicate_operand. |
| (*cond_<optab><mode>_4_strict): Extend from SVE_FULL_F_B16B16 to |
| SVE_F_B16B16, use aarch64_predicate_operand. |
| (*cond_<optab><mode>_any_strict): Likewise. |
| |
| 2025-07-30 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_relaxed): |
| Extend from SVE_FULL_F to SVE_F. |
| (*cond_<optab><mode>_4_relaxed): Extend from SVE_FULL_F_B16B16 |
| to SVE_F_B16B16. |
| (*cond_<optab><mode>_any_relaxed): Likewise. |
| |
| 2025-07-30 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (<optab><mode>4): Extend from |
| SVE_FULL_F_B16B16 to SVE_F_B16B16. Use aarch64_sve_fp_pred instead |
| of aarch64_ptrue_reg. |
| (@aarch64_pred_<optab><mode>): Extend from SVE_FULL_F_B16B16 to |
| SVE_F_B16B16. Use aarch64_predicate_operand. |
| |
| 2025-07-30 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-modes.def: Remove VECTOR_MODES(FLOAT, 256) |
| and VECTOR_MODE (INT, SI, 64). |
| * config/i386/i386.cc (ix86_hard_regno_nregs): Remove related |
| code for V64SF/V64SImode. |
| |
| 2025-07-30 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/121274 |
| * config/i386/sse.md (*vec_concatv2di_0): Add a splitter |
| before it. |
| |
| 2025-07-30 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR rtl-optimization/121302 |
| * simplify-rtx.cc (simplify_context::simplify_subreg): Use |
| byte instead of 0 when calling simplify_subreg. |
| |
| 2025-07-29 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_sve_emit_masked_fp_pred): |
| Declare. |
| * config/aarch64/aarch64-sve.md (and<mode>3): Change this to... |
| (@and<mode>3): ...this, so that we can use gen_and3. |
| (@cond_<optab><mode>): Extend from SVE_FULL_F_B16B16 to SVE_F_B16B16, |
| use aarch64_predicate_operand. |
| (*cond_<optab><mode>_2_strict): Likewise. |
| (*cond_<optab><mode>_3_strict): Likewise. |
| (*cond_<optab><mode>_any_strict): Likwise. |
| (*cond_<optab><mode>_2_const_strict): Extend from SVE_FULL_F to SVE_F, |
| use aarch64_predicate_operand. |
| (*cond_<optab><mode>_any_const_strict): Likewise. |
| (*cond_sub<mode>_3_const_strict): Likwise. |
| (*cond_sub<mode>_const_strict): Likewise. |
| (*vcond_mask_<mode><vpred>): Use aarch64_predicate_operand, and update |
| the comment here. |
| * config/aarch64/aarch64.cc (aarch64_sve_emit_masked_fp_pred): New |
| function. Helper to mask the predicate in conditional expanders. |
| |
| 2025-07-29 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * Makefile.in: Add riscv-mcpu.texi and riscv-mtune.texi to the list |
| of files to be processed by the Texinfo generator. |
| * config/riscv/t-riscv: Add rule for generating riscv-mcpu.texi |
| and riscv-mtune.texi. |
| * doc/invoke.texi: Replace hand‑written extension table with |
| `@include riscv-mcpu.texi` and `@include riscv-mtune.texi` to |
| pull in auto‑generated entries. |
| * config/riscv/gen-riscv-mcpu-texi.cc: New file. |
| * config/riscv/gen-riscv-mtune-texi.cc: New file. |
| * doc/riscv-mcpu.texi: New file. |
| * doc/riscv-mtune.texi: New file. |
| |
| 2025-07-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * simplify-rtx.cc (simplify_context::simplify_subreg): Distribute |
| lowpart subregs through AND/IOR/XOR, if doing so eliminates one |
| of the terms. |
| (test_scalar_int_ext_ops): Add some tests of the above for integers. |
| * config/aarch64/aarch64.cc (aarch64_test_sve_folding): Likewise |
| add tests for predicate modes. |
| |
| 2025-07-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins.cc |
| (function_expander::get_reg_target): Check whether the target |
| is a valid register_operand. |
| |
| 2025-07-29 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/120660 |
| * avoid-store-forwarding.cc (process_store_forwarding): |
| Fix instruction generation when haveing multiple stores with |
| base offset. |
| |
| 2025-07-29 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * common/config/riscv/riscv-common.cc (riscv_ext_is_subset): |
| Remove use of structured binding to fix compiler warning. |
| |
| 2025-07-29 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/119795 |
| * avoid-store-forwarding.cc |
| (store_forwarding_analyzer::avoid_store_forwarding): Skip |
| transformations for stores that operate on the same address |
| range as deleted ones. |
| |
| 2025-07-29 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add mul based unsigned SAT_MUL. |
| |
| 2025-07-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120687 |
| * tree-ssa-reassoc.cc (reassociate_bb): Do not disturb |
| the sorted operand order in the early pass. |
| * tree-vect-slp.cc (vect_analyze_slp): Dump when a detected |
| reduction chain fails SLP discovery. |
| |
| 2025-07-29 Alfie Richards <alfie.richards@arm.com> |
| |
| PR middle-end/121261 |
| * vec.h: Add null ptr check. |
| |
| 2025-07-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/121159 |
| * calls.cc (can_implement_as_sibling_call_p): Don't reject declared |
| noreturn functions in musttail calls. |
| |
| 2025-07-29 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * output.h (MAX_ALIGN_MERGABLE): New define. |
| * tree-switch-conversion.cc (switch_conversion::build_one_array): |
| Use MAX_ALIGN_MERGABLE instead of 256. |
| * varasm.cc (mergeable_string_section): Likewise |
| (mergeable_constant_section): Likewise |
| |
| 2025-07-29 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/120523 |
| * output.h (mergeable_constant_section): New declaration taking |
| unsigned HOST_WIDE_INT for the size. |
| * tree-switch-conversion.cc (switch_conversion::build_one_array): |
| Increase the alignment of CSWTCH for sizes less than 32bytes. |
| * varasm.cc (mergeable_constant_section): Split out twice. |
| One that takes the size in unsigned HOST_WIDE_INT and the |
| other size in a tree. |
| (default_elf_select_section): Pass DECL_SIZE instead of |
| DECL_MODE to mergeable_constant_section. |
| |
| 2025-07-29 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_load): Un-factor VMAT |
| specific code to their handling blocks. |
| |
| 2025-07-29 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (gather_scatter_info::offset_dt): Remove. |
| * tree-vect-data-refs.cc (vect_describe_gather_scatter_call): |
| Do not set it. |
| (vect_check_gather_scatter): Likewise. |
| * tree-vect-stmts.cc (vect_truncate_gather_scatter_offset): |
| Likewise. |
| (get_group_load_store_type): Use the vector type of the offset |
| SLP child. Do not re-check vect_is_simple_use validated by |
| SLP build. |
| |
| 2025-07-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/121277 |
| * config/avr/avr.cc (avr_addr_space_convert): When converting |
| from generic AS to __flashx, don't set bit 23. |
| (avr_convert_to_type): Don't -Waddr-space-convert when NULL |
| is converted to __flashx or to __flash. |
| |
| 2025-07-28 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/121236 |
| * tree-if-conv.cc (is_cond_scalar_reduction): Instead of phi argument, |
| pass bb and res of the phi. |
| (factor_out_operators): Add iterator for the phi. Remove the phi |
| if this is the first time. Return if we had removed the phi. |
| (predicate_scalar_phi): Add the phi iterator argument. |
| Update call to is_cond_scalar_reduction. |
| Update call to factor_out_operators and set the return value to true |
| when factor_out_operators returns true. |
| (predicate_all_scalar_phis): Don't remove the phi if predicate_scalar_phi |
| already removed it. |
| |
| 2025-07-28 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/121208 |
| * config/i386/i386.cc (ix86_tls_get_addr): Issue an error for |
| -mtls-dialect=gnu with no_caller_saved_registers attribute and |
| suggest -mtls-dialect=gnu2. |
| |
| 2025-07-28 Mikael Pettersson <mikpelinux@gmail.com> |
| |
| PR other/121260 |
| * diagnostics/changes.cc: Correct nesting of namespaces |
| and #if CHECKING_P blocks. |
| * diagnostics/context.cc: Likewise. |
| * diagnostics/html-sink.cc: Likewise. |
| * diagnostics/output-spec.cc: Likewise. |
| * diagnostics/sarif-sink.cc: Likewise. |
| |
| 2025-07-28 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/nvptx/nvptx.opt (march-map=): Add sm_100{,f,a}, |
| sm_101{,f,a}, sm_103{,a,f}, sm_120{,a,f} and sm_121{,f,a}. |
| |
| 2025-07-28 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn.md (atomic_load, atomic_store, atomic_exchange): |
| Fix CDNA3 L2 cache write-back before atomic instructions. |
| |
| 2025-07-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (check_load_store_for_partial_vectors): |
| Make *gs_info const. |
| (vect_build_one_gather_load_call): Likewise. |
| (vect_build_one_scatter_store_call): Likewise. |
| (vect_get_gather_scatter_ops): Likewise. |
| (vect_get_strided_load_store_ops): Likewise. |
| |
| 2025-07-28 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn.md (define_attr "vcmp"): Add with values |
| vcmp/vcmpx/no. |
| (*movbi, cstoredi4.., cstore<mode>4): Set it. |
| * config/gcn/gcn-valu.md (vec_cmp<mode>...): Likewise. |
| * config/gcn/gcn.cc (gcn_cmpx_insn_p): Remove. |
| (gcn_md_reorg): Add two new conditions for MI300. |
| |
| 2025-07-28 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn-opts.h (enum hsaco_attr_type): Add comment |
| about 'sc0'. |
| * config/gcn/gcn.cc (gcn_md_reorg): Use gen_nops instead of gen_nop. |
| (print_operand_address): Document 'R' and 'V' in the |
| pre-function comment as well. |
| * config/gcn/gcn.md (nops): Add. |
| |
| 2025-07-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121256 |
| * tree-vect-loop.cc (vectorizable_recurr): Build a correct |
| initialization vector for SLP_TREE_LANES > 1. |
| |
| 2025-07-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_slp_tree::type): Add. |
| (_slp_tree::u): Likewise. |
| (_stmt_vec_info::type): Remove. |
| (STMT_VINFO_TYPE): Likewise. |
| (SLP_TREE_TYPE): New. |
| * tree-vectorizer.cc (vec_info::new_stmt_vec_info): Do not |
| initialize type. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize type. |
| (vect_slp_analyze_node_operations): Adjust. |
| (vect_schedule_slp_node): Likewise. |
| * tree-vect-patterns.cc (vect_init_pattern_stmt): Do not |
| copy STMT_VINFO_TYPE. |
| * tree-vect-loop.cc: Set SLP_TREE_TYPE instead of |
| STMT_VINFO_TYPE everywhere. |
| (vect_create_loop_vinfo): Do not set STMT_VINFO_TYPE on |
| loop conditions. |
| * tree-vect-stmts.cc: Set SLP_TREE_TYPE instead of |
| STMT_VINFO_TYPE everywhere. |
| (vect_analyze_stmt): Adjust. |
| (vect_transform_stmt): Likewise. |
| * config/aarch64/aarch64.cc (aarch64_vector_costs::count_ops): |
| Access SLP_TREE_TYPE instead of STMT_VINFO_TYPE. |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| Remove non-SLP element-wise load/store matching. |
| * config/rs6000/rs6000.cc |
| (rs6000_cost_data::update_target_cost_per_stmt): Pass in |
| the SLP node. Use that to get at the memory access |
| kind and type. |
| (rs6000_cost_data::add_stmt_cost): Pass down SLP node. |
| * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): |
| Use SLP_TREE_TYPE. |
| (costs::need_additional_vector_vars_p): Likewise. |
| (costs::update_local_live_ranges): Likewise. |
| |
| 2025-07-28 Jennifer Schmitz <jschmitz@nvidia.com> |
| Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/aarch64-cores.def (olympus): Use olympus tuning |
| model. |
| * config/aarch64/aarch64.cc: Include olympus.h. |
| * config/aarch64/tuning_models/olympus.h: New file. |
| |
| 2025-07-28 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.h |
| (CASE_VECTOR_SHORTEN_MODE): Delete. |
| |
| 2025-07-28 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p): |
| Re-rewrite to more accurately capture insns that could be L32R machine |
| instructions wherever possible, and add comments that help understand |
| the intent of the process. |
| |
| 2025-07-27 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vxrm_vec_vec_dup): |
| Add new case UNSPEC_VAADD. |
| (expand_vx_binary_vxrm_vec_dup_vec): Ditto. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new case UNSPEC_VAADD to |
| iterator. |
| |
| 2025-07-27 Nathaniel Shead <nathanieloshead@gmail.com> |
| |
| PR middle-end/120855 |
| * cgraphunit.cc (symbol_table::compile): Assert a transparent |
| alias is not an internal identifier. |
| * symtab.cc (symbol_table::change_decl_assembler_name): |
| Likewise. |
| * varasm.cc (assemble_name_resolve): Check for |
| IDENTIFIER_TRANSPARENT_ALIAS instead of just TREE_CHAIN. |
| |
| 2025-07-26 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * diagnostics/context.cc (context::diagnostic_impl) |
| (context::diagnostic_n_impl): In presence of formal parameter |
| 'kind', explicitly state 'diagnostics::' scope for 'kind' enum. |
| |
| 2025-07-26 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * diagnostics/option-classifier.cc |
| (update_effective_level_from_pragmas): In presence of local |
| variable 'kind', explicitly state 'diagnostics::' scope for 'kind' |
| enum. |
| |
| 2025-07-26 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * config/riscv/riscv-ext.def: Add allocated group IDs and |
| group bit positions. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/context.cc: Eliminate digraphs::lazy_digraph in |
| favor of lazily_created template. |
| * diagnostics/context.h: Likewise. |
| * diagnostics/digraphs.cc: Likewise, also digraphs::lazy_digraphs. |
| * diagnostics/digraphs.h: Likewise. |
| * diagnostics/html-sink.cc: Likewise. |
| * diagnostics/metadata.h: Likewise. |
| * diagnostics/sarif-sink.cc: Likewise. |
| * diagnostics/sink.h: Likewise. |
| * diagnostics/text-sink.h: Likewise. |
| * lazily-created.h: New file. |
| * libgdiagnostics.cc: Eliminate digraphs::lazy_digraph in |
| favor of lazily_created template. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h: Use TextOrHtml rather than Sink for template |
| params. |
| * diagnostics/context.h: Likewise. |
| * diagnostics/selftest-context.cc: Use "html_or_text" rather than |
| "sink". |
| * diagnostics/source-printing.cc: Use TextOrHtml rather than Sink |
| for template params. Use "text_out" and "html_out" rather than |
| "sink". |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h (diagnostic_set_caret_max_width): Drop forward |
| decl. |
| (diagnostic_same_line): Make |
| diagnostics::context::m_source_printing private. |
| * diagnostics/context.cc (diagnostic_set_caret_max_width): Convert |
| to... |
| (diagnostics::context::set_caret_max_width): ...this. |
| * diagnostics/context.h |
| (diagnostics::context::get_source_printing_options): New |
| accessors. |
| (diagnostics::context::m_source_printing): Make private. |
| * diagnostics/html-sink.cc: Make |
| diagnostics::context::m_source_printing private. |
| * diagnostics/paths-output.cc: Likewise. |
| * diagnostics/sarif-sink.cc: Likewise. |
| * diagnostics/selftest-context.cc: Likewise. |
| * diagnostics/selftest-context.h |
| (diagnostics::selftest::test_context::colorize_source): New. |
| (diagnostics::selftest::test_context::show_labels): New. |
| (diagnostics::selftest::test_context::show_line_numbers): New. |
| (diagnostics::selftest::test_context::show_ruler): New. |
| (diagnostics::selftest::test_context::show_event_links): New. |
| (diagnostics::selftest::test_context::set_caret_char): New. |
| * diagnostics/source-printing.cc: Make |
| diagnostics::context::m_source_printing private. |
| * diagnostics/text-sink.h: Likewise. |
| * libgdiagnostics.cc: Likewise. |
| * opts.cc: Likewise. |
| * toplev.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h: Eliminate "diagnostic_info" typedef. |
| * diagnostics/context.cc: Update usage of "diagnostic_info" to |
| explicitly refer to "diagnostics::diagnostic_info". |
| * langhooks.cc: Likewise. |
| * libgdiagnostics.cc: Likewise. |
| * rtl-error.cc: Likewise. |
| * substring-locations.cc: Likewise. |
| * toplev.cc: Likewise. |
| * tree-diagnostic.cc: Likewise. |
| * tree-diagnostic.h: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h (enum diagnostics_column_unit): Move to |
| diagnostics/context-options.h. |
| (enum diagnostics_escape_format): Likewise. |
| (enum diagnostics_output_format): Likewise. |
| (enum diagnostic_path_format): Likewise. |
| (enum diagnostics_extra_output_kind): Likewise. |
| (enum diagnostic_text_art_charset): Likewise. |
| * diagnostics/context-options.h: New file, based on the above |
| material. |
| * diagnostics/context.h: Include it. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add diagnostics/file-cache.o. |
| * diagnostics/changes.cc: Update for file_cache and char_span |
| moving from input.h to diagnostics/file-cache.h and into the |
| "diagnostics::" namespace. |
| * diagnostics/context.cc: Likewise. |
| * diagnostics/diagnostics-selftests.cc: Likewise. |
| * diagnostics/diagnostics-selftests.h: Likewise. |
| * diagnostics/file-cache.cc: New file, based on the file_cache |
| and file_cache_slot material in input.cc. |
| * diagnostics/file-cache.h: Likewise for input.h. |
| * diagnostics/selftest-source-printing.h: Update for file_cache |
| and char_span moving from input.h to diagnostics/file-cache.h and |
| into the "diagnostics::" namespace. |
| * diagnostics/source-printing.cc: Likewise. |
| * final.cc: Likewise. |
| * gcc-rich-location.cc: Likewise. |
| * input.cc (default_charset_callback): Move to |
| diagnostics/file-cache.cc. |
| (file_cache::initialize_input_context): Likewise. |
| (class file_cache_slot): Likewise. |
| (file_cache::tune): Likewise. |
| (file_cache::lookup_file): Likewise. |
| (file_cache::forcibly_evict_file): Likewise. |
| (file_cache::missing_trailing_newline_p): Likewise. |
| (file_cache::add_buffered_content): Likewise. |
| (file_cache::evicted_cache_tab_entry): Likewise. |
| (file_cache::add_file): Likewise. |
| (file_cache::file_cache): Likewise. |
| (file_cache::dump): Likewise. |
| (file_cache::dump): Likewise. |
| (file_cache::lookup_or_add_file): Likewise. |
| (find_end_of_line): Likewise. |
| (file_cache::get_source_line): Likewise. |
| (check_line): Likewise. |
| (test_replacement): Likewise. |
| (test_reading_source_line): Likewise. |
| (test_reading_source_buffer): Likewise. |
| * input.h (class char_span): Move to diagnostics/file-cache.h and |
| into the "diagnostics::" namespace. |
| (class file_cache_slot): Likewise. |
| (class file_cache): Likewise. |
| * libgdiagnostics.cc: Update for file_cache and char_span moving |
| from input.h to diagnostics/file-cache.h and into the |
| "diagnostics::" namespace. |
| * selftest.cc: Likewise. |
| * selftest.h: Likewise. |
| * substring-locations.h: Likewise. |
| * toplev.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/selftest-paths.cc: Don't include "demangle.h" |
| and "backtrace.h". |
| * diagnostics/source-printing.cc: Likewise. |
| * diagnostics/state-graphs.cc: Don't include "graphviz.h", |
| "xml.h", "xml-printer.h", or "intl.h". |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h: Move include of "unique-argv.h" |
| and various forward decls into... |
| * diagnostics/context.h: ...here. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h (num_digits): Move to... |
| (diagnostics::num_digits): ...here. |
| (get_cwe_url): Move to... |
| (diagnostics::get_cwe_url): ...here. |
| (maybe_line_and_column): Move to... |
| (diagnostics::maybe_line_and_column): ...here. |
| * diagnostic.cc: Move to... |
| * diagnostics/context.cc: ...here. |
| * diagnostics/diagnostics-selftests.cc |
| (run_diagnostics_selftests): Add comment about context_cc_tests. |
| * diagnostics/diagnostics-selftests.h: Add context_cc_tests decl. |
| * diagnostics/sarif-sink.cc: Update for file rename. |
| * diagnostics/source-printing.cc: Update for num_digits moving to |
| diagnostics::num_digits. |
| * errors.cc: Update for file rename. |
| * input.cc: Update for num_digits moving to |
| diagnostics::num_digits. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Replace diagnostic.o with |
| diagnostics/context.o. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in: Replace diagnostic.def with diagnostics/kinds.def. |
| * config/aarch64/aarch64.cc: Update for diagnostic_t becoming |
| enum class diagnostics::kind. |
| * config/i386/i386-options.cc: Likewise. |
| * config/s390/s390.cc: Likewise. |
| * diagnostic-core.h: Replace typedef diagnostic_t with |
| enum class diagnostics::kind in diagnostics/kinds.h and include |
| it. |
| * diagnostic-global-context.cc: Update for diagnostic_t becoming |
| enum class diagnostics::kind. |
| * diagnostic.cc: Likewise. |
| * diagnostic.h: Likewise. |
| * diagnostics/buffering.cc: Likewise. |
| * diagnostics/buffering.h: Likewise. |
| * diagnostics/context.h: Likewise. |
| * diagnostics/diagnostic-info.h: Likewise. |
| * diagnostics/html-sink.cc: Likewise. |
| * diagnostic.def: Move to... |
| * diagnostics/kinds.def: ...here and update for diagnostic_t |
| becoming enum class diagnostics::kind. |
| * diagnostics/kinds.h: New file, based on material in |
| diagnostic-core.h. |
| * diagnostics/lazy-paths.cc: Update for diagnostic_t becoming |
| enum class diagnostics::kind. |
| * diagnostics/option-classifier.cc: Likewise. |
| * diagnostics/option-classifier.h: Likewise. |
| * diagnostics/output-spec.h: Likewise. |
| * diagnostics/paths-output.cc: Likewise. |
| * diagnostics/sarif-sink.cc: Likewise. |
| * diagnostics/selftest-context.cc: Likewise. |
| * diagnostics/selftest-context.h: Likewise. |
| * diagnostics/sink.h: Likewise. |
| * diagnostics/source-printing.cc: Likewise. |
| * diagnostics/text-sink.cc: Likewise. |
| * diagnostics/text-sink.h: Likewise. |
| * gcc.cc: Likewise. |
| * libgdiagnostics.cc: Likewise. |
| * lto-wrapper.cc: Likewise. |
| * opts-common.cc: Likewise. |
| * opts-diagnostic.h: Likewise. |
| * opts.cc: Likewise. |
| * rtl-error.cc: Likewise. |
| * substring-locations.cc: Likewise. |
| * toplev.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-core.h: Include "diagnostics/option-id.h". |
| (struct diagnostic_option_id): Move there, renaming to |
| diagnostics::option_id. |
| * diagnostic-global-context.cc: Update for renaming of |
| diagnostic_option_id to diagnostics::option_id. |
| * diagnostic.cc: Likewise. |
| * diagnostic.h: Likewise. |
| * diagnostics/context.h: Likewise. |
| * diagnostics/diagnostic-info.h: Likewise. |
| * diagnostics/lazy-paths.cc: Likewise. |
| * diagnostics/option-classifier.cc: Likewise. |
| * diagnostics/option-classifier.h: Likewise. |
| * diagnostics/option-id.h: New file, taken from material in |
| diagnostic-core.h. |
| * diagnostics/selftest-context.cc: Update for renaming of |
| diagnostic_option_id to diagnostics::option_id. |
| * diagnostics/selftest-context.h: Likewise. |
| * ipa-pure-const.cc: Likewise. |
| * lto-wrapper.cc: Likewise. |
| * opts-common.cc: Likewise. |
| * opts-diagnostic.h: Likewise. |
| * opts.cc: Likewise. |
| * substring-locations.cc: Likewise. |
| * substring-locations.h: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Replace diagnostic-spec.o with |
| gcc-diagnostic-spec.o. |
| (GTFILES): Replace diagnostic-spec.h with gcc-diagnostic-spec.h. |
| * diagnostic-spec.cc: Move to... |
| * gcc-diagnostic-spec.cc: ...here. |
| * diagnostic-spec.h: Move to... |
| * gcc-diagnostic-spec.h: ...here. |
| * gengtype.cc (open_base_files): Replace diagnostic-spec.h with |
| gcc-diagnostic-spec.h. |
| * warning-control.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Replace diagnostics/changes.o with |
| diagnostics/edit-context.o. |
| * diagnostic.cc: Update for move of diagnostics/edit-context.h to |
| diagnostics/changes.h. |
| (diagnostics::context::initialize): Update for renaming of |
| m_edit_context_ptr to m_fixits_change_set. |
| (diagnostics::context::finish): Likewise. |
| (diagnostics::context::create_edit_context): Rename to... |
| (diagnostics::context::initialize_fixits_change_set): ...this and |
| update for other renamings. |
| (diagnostics::context::report_diagnostic): Update for renaming of |
| m_edit_context_ptr to m_fixits_change_set. |
| * diagnostic.h (diagnostics::edit_context): Drop forward decl |
| * diagnostics/edit-context.cc: Move to... |
| * diagnostics/changes.cc: ...here. Update for move of |
| diagnostics/edit-context.h to diagnostics/changes.h. |
| Rename diagnostics::edit_context to |
| diagnostics::changes::change_set. Rename diagnostics::edited_file |
| to diagnostics::changes::changed_file. Rename |
| diagnostics::edited_line to diagnostics::changes::changed_line. |
| * diagnostics/edit-context.h: Move to... |
| * diagnostics/changes.h: ...here, renaming as above. |
| * diagnostics/context.h (diagnostics::changes::change_set): New |
| forward decl. |
| (diagnostics::context::create_edit_context): Rename to... |
| (diagnostics::context::initialize_fixits_change_set): ...this. |
| (diagnostics::context::get_edit_context): Rename to... |
| (diagnostics::context::get_fixits_change_set): ...this. |
| (diagnostics::context::m_edit_context_ptr): Rename to... |
| (diagnostics::context::m_fixits_change_set): ..this and update |
| type. |
| * diagnostics/diagnostics-selftests.cc: Update for renaming. |
| * diagnostics/diagnostics-selftests.h: Likewise. |
| * diagnostics/html-sink.cc: Update for above changes. |
| * libgdiagnostics.cc: Likewise. |
| * toplev.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS): Move diagnostics/lazy-paths.o to... |
| (OBJS-libcommon): ...here. Add |
| diagnostics/diagnostics-selftests.o. |
| * diagnostic.cc: Update for move of |
| selftest::test_diagnostic_context to |
| diagnostics::selftest::test_context. |
| * diagnostics/color.cc: Move selftests from selftest:: to |
| diagnostics::selftest::. |
| * diagnostics/diagnostics-selftests.cc: New file. |
| * diagnostics/diagnostics-selftests.h: New file. |
| * diagnostics/digraphs.cc: Move selftests from selftest:: to |
| diagnostics::selftest::. |
| * diagnostics/edit-context.cc: Likewise. |
| * diagnostics/html-sink.cc: Likewise. |
| * diagnostics/lazy-paths.cc: Likewise. Eliminate use of "tree" |
| by porting selftests from simple-diagnostic-path.h to |
| diagnostics/selftest-paths.h. |
| * diagnostics/output-spec.cc: Move selftests from selftest:: to |
| diagnostics::selftest::. |
| * diagnostics/paths-output.cc: Likewise. |
| * diagnostics/sarif-sink.cc: Likewise. |
| * diagnostics/selftest-context.cc: Move |
| selftest::test_diagnostic_context to |
| diagnostics::selftest::test_context. |
| * diagnostics/selftest-context.h: Likewise. |
| * diagnostics/selftest-logical-locations.cc: Move selftests from |
| selftest:: to diagnostics::logical_locations::selftest::. |
| * diagnostics/selftest-logical-locations.h: Move |
| selftest::logical_location_manager to |
| diagnostics::logical_locations::selftest::logical_location_manager. |
| * diagnostics/selftest-paths.cc: Move |
| selftest::test_diagnostic_path to |
| diagnostics::paths::selftest::test_path. Move |
| selftest::test_diagnostic_event to |
| diagnostics::paths::selftest::test_event. |
| * diagnostics/selftest-paths.h: Likewise, and move |
| selftest::test_diagnostic_thread to |
| diagnostics::paths::selftest::test_thread. |
| * diagnostics/selftest-source-printing.h: Move |
| selftest::diagnostic_show_locus_fixture to |
| diagnostics::selftest::source_printing_fixture. |
| * diagnostics/source-printing.cc: Move selftests from selftest:: |
| to diagnostics::selftest:: and update for renames. |
| * diagnostics/state-graphs.cc: Likewise. |
| * selftest-run-tests.cc: Include |
| "diagnostics/diagnostics-selftests.h". |
| (selftest::run_tests): Replace invocation of the various diagnostics |
| selftests with a call to |
| diagnostics::selftest::run_diagnostics_selftests. |
| * selftest.h: Move decls of the various per-file diagnostics |
| invocation functions to diagnostics/diagnostics-selftests.h, |
| renaming due to diagostics prefix being implied by namespace. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * common.opt: Update for move of diagnostic-url.h to |
| diagnostics/url.h. |
| * diagnostic.cc: Likewise. |
| * diagnostics/color.cc: Likewise. |
| * diagnostics/text-sink.cc: Likewise. |
| * diagnostic-url.h: Move to... |
| * diagnostics/url.h: ...here. |
| * libgdiagnostics.cc: Update for move of diagnostic-url.h to |
| diagnostics/url.h. |
| * pretty-print.h: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Replace diagnostic-color.o with |
| diagnostics/color.o. |
| (PLUGIN_HEADERS): Remove diagnostic-color.h in favor of glob. |
| * common.opt: Update for move of diagnostic-color.h to |
| diagnostics/color.h. |
| * diagnostic.cc: Likewise. |
| * diagnostic-color.cc: Move to... |
| * diagnostics/color.cc: ...here. |
| * diagnostic-color.h: Move to... |
| * diagnostics/color.h: ...here. |
| * diagnostics/edit-context.cc: Update for move of |
| diagnostic-color.h to diagnostics/color.h. |
| * diagnostics/output-spec.cc: Likewise. |
| * diagnostics/paths-output.cc: Likewise. |
| * diagnostics/source-printing.cc: Likewise. |
| * diagnostics/text-sink.cc: Likewise. |
| * libgdiagnostics.cc: Likewise. |
| * opts.cc: Likewise. |
| * pretty-print-markup.h: Likewise. |
| * pretty-print.cc: Likewise. |
| * selftest-run-tests.cc: Likewise. |
| * selftest.h: Likewise. |
| * text-art/style.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Replace selftest-diagnostic.o with |
| diagnostics/selftest-context.o. |
| * diagnostic.cc: Update for move of selftest-diagnostic.h to |
| diagnostics/selftest-context.h. |
| * diagnostics/html-sink.cc: Likewise. |
| * diagnostics/lazy-paths.cc: Likewise. |
| * diagnostics/output-spec.cc: Likewise. |
| * diagnostics/paths-output.cc: Likewise. |
| * diagnostics/sarif-sink.cc: Likewise. |
| * selftest-diagnostic.cc: Move to... |
| * diagnostics/selftest-context.cc: ...here and update for move of |
| header file. |
| * selftest-diagnostic.h: Move to... |
| * diagnostics/selftest-context.h: ...here. |
| * diagnostics/source-printing.cc: Update for move of |
| selftest-diagnostic.h to diagnostics/selftest-context.h. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add diagnostics/buffering.o. |
| * diagnostic.cc (diagnostics::context::set_diagnostic_buffer): Move to |
| diagnostics/buffering.cc. |
| (diagnostics::context::clear_diagnostic_buffer): Likewise. |
| (diagnostics::context::flush_diagnostic_buffer): Likewise. |
| (diagnostics::buffer::buffer): Likewise. |
| (diagnostics::buffer::~buffer): Likewise. |
| (diagnostics::buffer::dump): Likewise. |
| (diagnostics::buffer::empty_p): Likewise. |
| (diagnostics::buffer::move_to): Likewise. |
| (diagnostics::buffer::ensure_per_sink_buffers): Likewise. |
| * diagnostics/buffering.cc: New file, from material in diagnostic.cc. |
| * diagnostics/buffering.h: Fix comment. |
| * diagnostics/text-sink.h: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add |
| diagnostics/option-classifier.o. |
| * diagnostic.cc (diagnostics::option_classifier::init): Move to |
| diagnostics/option-classifier.cc. |
| (diagnostics::option_classifier::fini): Likewise. |
| (diagnostics::option_classifier::pch_save): Likewise. |
| (diagnostics::option_classifier::pch_restore): Likewise. |
| (diagnostics::option_classifier::push): Likewise. |
| (diagnostics::option_classifier::pop): Likewise. |
| (diagnostics::option_classifier::classify_diagnostic): Likewise. |
| (diagnostics::option_classifier::update_effective_level_from_pragmas): |
| Likewise. |
| * diagnostics/context.h: Include |
| "diagnostics/option-classifier.h". |
| (class option_classifier): Move to |
| diagnostics/option-classifier.h. |
| * diagnostics/option-classifier.cc: New file, based on material |
| from diagnostic.cc. |
| * diagnostics/option-classifier.h: New file, based on material |
| from diagnostics/context.h. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * coretypes.h: Update for diagnostic_context becoming |
| diagnostics::context. |
| * diagnostic-global-context.cc: Likewise. |
| * diagnostic.cc: Likewise. Also for diagnostic_option_classifier |
| becoming diagnostics::option_classifier. |
| * diagnostic.h (diagnostic_text_starter_fn): Rename to... |
| (diagnostics::text_starter_fn): ...this, and move to |
| diagnostics/context.h. |
| (get_printer): Rename to... |
| (diagnostics::get_printer): ...this, and move to |
| diagnostics/context.h. |
| (class diagnostic_option_manager): Rename to... |
| (class diagnostics::option_manager): ...this, and move to |
| diagnostics/context.h. |
| (class diagnostic_option_classifier): Rename to... |
| (class diagnostics::option_classifier): ...this, and move to |
| diagnostics/context.h. |
| (struct diagnostic_source_printing_options): Rename to... |
| (struct diagnostics::source_printing_options): ...this, and move |
| to diagnostics/context.h. |
| (class diagnostic_column_policy): Rename to... |
| (class diagnostics::column_policy): ...this, and move to |
| diagnostics/context.h. |
| (class diagnostic_location_print_policy): Rename to... |
| (class diagnostics::location_print_policy): ...this, and move to |
| diagnostics/context.h. |
| (class html_label_writer): Rename to... |
| (class diagnostics::html_label_writer): ...this, and move to |
| diagnostics/context.h. |
| (class diagnostic_source_print_policy): Rename to... |
| (class diagnostics::source_print_policy): ...this, and move to |
| diagnostics/context.h. |
| (struct diagnostic_counters): Rename to... |
| (struct diagnostics::counters): ...this, and move to |
| diagnostics/context.h. |
| (class diagnostic_context): Rename to... |
| (class diagnostics::context): ...this, and move to |
| diagnostics/context.h. |
| (diagnostic_text_starter): Rename to... |
| (diagnostics::text_starter): ...this, and move to |
| diagnostics/context.h. |
| (diagnostic_start_span): Rename to... |
| (diagnostics::start_span): ...this, and move to |
| diagnostics/context.h. |
| (diagnostic_text_finalizer): Rename to... |
| (diagnostics::text_finalizer): ...this, and move to |
| diagnostics/context.h. |
| Include "diagnostics/context.h". |
| * diagnostics/buffering.h: Update for diagnostic_context becoming |
| diagnostics::context; similarly for diagnostic_counters. |
| * diagnostics/client-data-hooks.h: Likewise. |
| * diagnostics/context.h: New file, taken from material in |
| diagnostic.h. |
| * diagnostics/html-sink.cc: : Update for diagnostic_context |
| becoming diagnostics::context. |
| * diagnostics/html-sink.h: Likewise. |
| * diagnostics/lazy-paths.cc: Likewise for |
| diagnostic_option_manager. |
| * diagnostics/output-file.h: Likewise for diagnostic_context. |
| * diagnostics/output-spec.cc: Likewise. |
| * diagnostics/output-spec.h: Likewise. |
| * diagnostics/paths-output.cc: Likewise. |
| * diagnostics/sarif-sink.cc: Likewise. |
| * diagnostics/sarif-sink.h: Likewise. |
| * diagnostics/sink.h: Likewise. |
| * diagnostics/source-printing.cc: Likewise. |
| * diagnostics/text-sink.cc: Likewise. |
| * diagnostics/text-sink.h: Likewise. |
| * gcc-rich-location.h: Likewise. |
| * gcc.cc: Likewise. |
| * gdbinit.in: Likewise. |
| * langhooks-def.h: Likewise. |
| * langhooks.cc: Likewise. |
| * langhooks.h: Likewise. |
| * libgdiagnostics.cc: Likewise. |
| * optc-gen.awk: Likewise. |
| * opth-gen.awk: Likewise. |
| * opts-common.cc: Likewise. |
| * opts-diagnostic.cc: Likewise. |
| * opts-diagnostic.h: Likewise. |
| * opts-global.cc: Likewise. |
| * opts.cc: Likewise. |
| * opts.h: Likewise. |
| * selftest-diagnostic.cc: Likewise. |
| * selftest-diagnostic.h: Likewise. |
| * toplev.cc: Likewise. |
| * tree-diagnostic-client-data-hooks.cc: Likewise. |
| * tree-diagnostic.cc: Likewise. |
| * tree-diagnostic.h: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h (struct diagnostic_info): Move to |
| diagnostics/diagnostic-info.h as diagnostics::diagnostic_info. |
| Add typedef bringing it back into root namespace, for now. |
| * diagnostics/diagnostic-info.h: New file, based on the above. |
| * langhooks-def.h: Update for diagnostic_info moving into |
| namespace diagnostics. |
| * langhooks.h: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.cc: Update to add "m_" prefix to fields of |
| diagnostic_info throughout. |
| * diagnostic.h: Likewise. |
| * diagnostics/html-sink.cc: Likewise. |
| * diagnostics/sarif-sink.cc: Likewise. |
| * diagnostics/text-sink.cc: Likewise. |
| * libgdiagnostics.cc: Likewise. |
| * substring-locations.cc: Likewise. |
| * tree-diagnostic.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS): Replace diagnostic-macro-unwinding.o with |
| diagnostics/macro-unwinding.o. |
| * diagnostic-macro-unwinding.cc: Move to... |
| * diagnostics/macro-unwinding.cc: ...here, moving content into |
| namespace diagnostics. |
| * diagnostic-macro-unwinding.h: Move to... |
| * diagnostics/macro-unwinding.h: ...here, moving content into |
| namespace diagnostics. |
| * diagnostics/paths-output.cc: Update for move of |
| "diagnostic-macro-unwinding.h" to "diagnostics/macro-unwinding.h". |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS): Replace diagnostic-show-locus.o with |
| diagnostics/source-printing.o. |
| * diagnostic.h (class diagnostic_source_effect_info): Replace |
| with... |
| (class diagnotics::source_effect_info): ...this. |
| * diagnostics/paths-output.cc: Likewise. Update for move of |
| "diagnostic-label-effects.h" to |
| "diagnostics/source-printing-effects.h". |
| * diagnostics/sarif-sink.cc: Update for move of |
| "selftest-diagnostic-show-locus.h" to |
| "diagnostics/selftest-source-printing.h". |
| * selftest-diagnostic-show-locus.h: Move to... |
| * diagnostics/selftest-source-printing.h: ...here. |
| * diagnostic-label-effects.h: Move to... |
| * diagnostics/source-printing-effects.h: ...here, updating |
| for above changes. |
| * diagnostic-show-locus.cc: Move to... |
| * diagnostics/source-printing.cc: ...here. |
| * gcc-rich-location.h: Likewise. |
| * selftest-run-tests.cc: Likewise. |
| * selftest.h: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS): Replace diagnostic-format-html.o with |
| diagnostics/html-sink.o, diagnostic-format-sarif.o with |
| diagnostics/sarif-sink.o, and diagnostic-format-text.o with |
| diagnostics/text-sink.o. |
| * coretypes.h (class diagnostic_text_output_format): Replace |
| with... |
| (class diagnostics::text_sink): ...this. |
| * diagnostic-global-context.cc: Update for move of diagnostics |
| output formats into namespace "diagnostics", as "sinks". |
| * diagnostic-macro-unwinding.cc: Likewise. |
| * diagnostic-macro-unwinding.h: Likewise. |
| * diagnostic-show-locus.cc: Likewise. |
| * diagnostic.cc: Likewise. |
| * diagnostic.h: Likewise. |
| * diagnostic-buffer.h: Rename to... |
| * diagnostics/buffering.h: ...this, updating for above changes. |
| * diagnostics/client-data-hooks.h: Likewise. |
| * diagnostics/digraphs.cc: Likewise. |
| * diagnostic-format-html.cc: Rename to... |
| * diagnostics/html-sink.cc: ...this, updating for above changes. |
| * diagnostic-format-html.h: Rename to... |
| * diagnostics/html-sink.h: ...this, updating for above changes. |
| * diagnostics/lazy-paths.cc: Likewise. |
| * diagnostics/metadata.h: Likewise. |
| * diagnostics/output-spec.cc: Likewise. |
| * diagnostics/output-spec.h: Likewise. |
| * diagnostics/paths-output.cc: Likewise. |
| * diagnostics/paths.h: Likewise. |
| * diagnostic-format-sarif.cc: Rename to... |
| * diagnostics/sarif-sink.cc: ...this, updating for above changes. |
| * diagnostic-format-sarif.h: Rename to... |
| * diagnostics/sarif-sink.h: ...this, updating for above changes. |
| * diagnostic-format.h: Rename to... |
| * diagnostics/sink.h: ...this, updating for above changes. |
| * diagnostics/state-graphs-to-dot.cc: Likewise. |
| * diagnostic-format-text.cc: Rename to... |
| * diagnostics/text-sink.cc: ...this, updating for above changes. |
| * diagnostic-format-text.h: Rename to... |
| * diagnostics/text-sink.h: ...this, updating for above changes. |
| * gcc.cc: Likewise. |
| * langhooks-def.h: Likewise. |
| * langhooks.cc: Likewise. |
| * langhooks.h: Likewise. |
| * libgdiagnostics.cc: Likewise. |
| * opts-diagnostic.cc: Likewise. |
| * opts.cc: Likewise. |
| * selftest-diagnostic.cc: Likewise. |
| * selftest-run-tests.cc: Likewise. |
| * selftest.h: Likewise. |
| * tree-diagnostic-client-data-hooks.cc: Likewise. |
| * tree-diagnostic.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS): Replace lazy-diagnostic-path.o with |
| diagnostics/lazy-paths.o. |
| (OBJS-libcommon): Replace diagnostic-path.o with |
| diagnostics/paths.o, diagnostic-path-output.o with |
| diagnostics/paths-output.o, and selftest-diagnostic-path.o with |
| diagnostics/selftest-paths.o. |
| (EXTRA_BACKEND_OBJS): Replace lazy-diagnostic-path.o with |
| diagnostics/lazy-paths.o. |
| * diagnostic-format-html.cc: Update #include for |
| "diagnostic-path.h" moving to "diagnostics/paths.h", |
| diagnostic_thread_id_t to diagnostics::paths::thread_id_t, |
| diagnostic_event_id_t to diagnostics::paths::event_id_t, |
| diagnostic_path to diagnostics::paths::path, and |
| diagnostic_thread to diagnostics::paths::thread, and |
| diagnostic_event to diagnostics::paths::event. |
| * diagnostic-format-html.h: Likewise. |
| * diagnostic-format-sarif.cc: Likewise. Update PROPERTY_PREFIX |
| for threadFlowLocations from "gcc/diagnostic_event/" to |
| "gcc/diagnostics/paths/event/". |
| * diagnostic-format-text.cc: Likewise. |
| * diagnostic-format-text.h: Likewise. |
| * diagnostic.cc: Likewise. |
| * diagnostic.h: Likewise. |
| * diagnostic-event-id.h: Move to... |
| * diagnostics/event-id.h: ...here, updating header guard. |
| (diagnostics:paths:event_id_t): New typedef. |
| (diagnostic_thread_id_t): Replace with... |
| (diagnostics:paths:thread_id_t): New typedef. |
| * lazy-diagnostic-path.cc: Move to... |
| * diagnostics/lazy-paths.cc: ...here. Update for above changes, |
| lazy_diagnostic_path becomes diagnostics::paths::lazy_path. |
| (lazy_diagnostic_path_cc_tests): Rename to... |
| (diagnostics_lazy_paths_cc_tests): ...this. |
| * lazy-diagnostic-path.h: Move to... |
| * diagnostics/lazy-paths.h: ...here, updating header guard. |
| Update for above changes. |
| * diagnostic-path-output.cc: Move to... |
| * diagnostics/paths-output.cc: ...here. Update for above changes. |
| (diagnostic_path_output_cc_tests): Rename to... |
| (diagnostics_paths_output_cc_tests): ...this. |
| * diagnostic-path.cc: Move to... |
| * diagnostics/paths.cc: ...here. Update for above changes. |
| * diagnostic-path.h: Move to... |
| * diagnostics/paths.h: ...here, updating header guard. |
| Update #include for moving "diagnostic-event-id.h" to |
| "diagnostics/event-id.h". |
| (class diagnostic_event): Convert to... |
| (class diagnostics::paths::event): ...this. |
| (class diagnostic_thread): Convert to... |
| (class diagnostics::paths::thread): ...this. |
| (class diagnostic_path): Convert to... |
| (class diagnostics::paths::path): ...this. |
| * diagnostic-show-locus.cc: Update for above changes. |
| * doc/analyzer.texi: Likewise. |
| * selftest-diagnostic-path.cc: Move to... |
| * diagnostics/selftest-paths.cc: ...here. Update for |
| above changes, and for "selftest-diagnostic-path.h" moving to |
| "diagnostics/selftest-paths.h". |
| * selftest-diagnostic-path.h: Move to... |
| * diagnostics/selftest-paths.h: ...here, updating header guard. |
| Update for above changes. |
| * libgdiagnostics.cc: Update for above changes. |
| * libsarifreplay.cc: Update property prefix for |
| threadFlowLocations from "gcc/diagnostic_event/" to |
| "gcc/diagnostics/paths/event/". |
| * pretty-print-format-impl.h: Update for above changes. |
| * pretty-print.cc: Likewise. |
| * selftest-run-tests.cc (selftest::run_tests): Update for |
| renaming of lazy_diagnostic_path_cc_tests to |
| diagnostics_lazy_paths_cc_tests, and of |
| diagnostic_path_output_cc_tests to |
| diagnostics_paths_output_cc_tests. |
| * selftest.h (lazy_diagnostic_path_cc_tests): Replace decl with... |
| (diagnostics_lazy_paths_cc_tests): ...this. |
| (diagnostic_path_output_cc_tests): Replace decl with... |
| (diagnostics_paths_output_cc_tests): ...this. |
| * simple-diagnostic-path.cc: Clarify that this relates to "tree" |
| and thus shouldn't be in "diagnostics". Update for above changes. |
| * simple-diagnostic-path.h: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Replace diagnostic-output-spec.o |
| with diagnostics/output-spec.o. |
| * diagnostic-output-spec.cc: Move to... |
| * diagnostics/output-spec.cc: ...here. Update #include for |
| move of diagnostic-output-spec.h to diagnostics/output-spec.h. |
| (namespace::diagnostics_output_spec): Replace with... |
| (namespace diagnostics::output_spec): ...this, removing redundant |
| prefixes. |
| (diagnostics_output_spec::gcc_spec_context): Replace with... |
| (diagnostics::output_spec::dc_spec_context): ...this. |
| (diagnostic_output_spec_cc_tests): Rename to... |
| (diagnostics_output_spec_cc_tests): ...this. |
| * diagnostic-output-spec.h: Move to... |
| * diagnostics/output-spec.h: ...here and update inclusion guard. |
| (namespace::diagnostics_output_spec): Replace with... |
| (namespace diagnostics::output_spec): ...this, removing redundant |
| prefixes. |
| (diagnostics_output_spec::gcc_spec_context): Replace with... |
| (diagnostics::output_spec::dc_spec_context): ...this. |
| * libgdiagnostics.cc: Update #include for move of |
| diagnostic-output-spec.h to diagnostics/output-spec.h. |
| * opts-diagnostic.cc: Likewise. Update for namespace and name |
| changes. |
| * selftest-run-tests.cc (selftest::run_tests): Update for renaming |
| of diagnostic_output_spec_cc_tests to |
| diagnostics_output_spec_cc_tests. |
| * selftest.h (diagnostic_output_spec_cc_tests): Rename decl to... |
| (diagnostics_output_spec_cc_tests): ...this. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-html.cc: Update #include for move of |
| diagnostic-output-file.h to diagnostics/output-file.h. Update for |
| move of diagnostic_output_file to diagnostics::output_file. |
| * diagnostic-format-html.h: Likewise. |
| * diagnostic-format-sarif.cc: Likewise. |
| * diagnostic-format-sarif.h: Likewise. |
| * diagnostic-output-spec.cc: Likewise. |
| * diagnostic-output-spec.h (along): Likewise. |
| * diagnostic-output-file.h: Move to... |
| * diagnostics/output-file.h: ...here, updating header guard. |
| (class diagnostic_output_file): Move to... |
| (class diagnostics::output_file): ...here. |
| * libgdiagnostics.cc (sarif_sink::sarif_sink): Update for |
| move of diagnostic_output_file to diagnostics::output_file. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-html.cc: Update #include for move of |
| diagnostic-client-data-hooks.h to diagnostics/client-data-hooks.h. |
| * diagnostic-format-sarif.cc: Likewise. Update for move of |
| diagnostic_client_plugin_info to diagnostics::client_plugin_info. |
| * diagnostic-format-text.cc: Likewise. |
| * diagnostic.cc: Likewise. |
| * diagnostic.h: Likewise. |
| * diagnostic-client-data-hooks.h: Move to... |
| * diagnostics/client-data-hooks.h: ...here, updating header guard. |
| (class diagnostic_client_data_hooks): Move to... |
| (class diagnostics::client_data_hooks): ...here. Remove redundant |
| "diagnostics::" prefixes. |
| (class diagnostic_client_plugin_info): Move to... |
| (class diagnostics::client_plugin_info): ...here. |
| * libgdiagnostics.cc: : Update #include for move of |
| diagnostic-client-data-hooks.h to diagnostics/client-data-hooks.h. |
| Update for move of diagnostic_client_data_hooks to |
| diagnostics::client_data_hooks, and for move of |
| diagnostic_client_version_info to diagnostics::client_version_info. |
| * tree-diagnostic-client-data-hooks.cc: Likewise. |
| * tree-diagnostic.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Replace edit-context.o with |
| diagnostics/edit-context.o. |
| * diagnostic-format-html.cc: Update #include for move |
| of edit-context.h to diagnostics subdir. |
| * diagnostic.cc: Likewise. Update for move of edit_context to |
| diagnostics::edit_context. |
| * diagnostic.h: Likewise. |
| * edit-context.cc: Move to... |
| * diagnostics/edit-context.cc: ...here. Update #include for move |
| of edit-context.h to diagnostics subdir. Move all code |
| within namespace diagnostics. |
| * edit-context.h: Move to... |
| * diagnostics/edit-context.h: ...here, updating header guard. |
| Move all code within namespace diagnostics. |
| * libgdiagnostics.cc: Update #include for move of edit-context.h |
| to diagnostics subdir. Update for move of edit_context |
| to diagnostics::edit_context. |
| * toplev.cc: Update #include for move of edit-context.h |
| to diagnostics subdir. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-html.cc: Update for move of diagnostic_diagram |
| to diagnostics::diagram. |
| * diagnostic-format-sarif.cc: Update #include for move of |
| "diagnostic-diagram.h" to "diagnostics/diagram.h". Update for move |
| of diagnostic_diagram to diagnostics::diagram. |
| * diagnostic-format-text.cc: Likewise. |
| * diagnostic-format-text.h: Update for move of diagnostic_diagram |
| to diagnostics::diagram. |
| * diagnostic-format.h: Likewise. |
| * diagnostic.cc: Update #include for move of |
| "diagnostic-diagram.h" to "diagnostics/diagram.h". Update for move |
| of diagnostic_diagram to diagnostics::diagram. |
| * diagnostic.h: Update for move of diagnostic_diagram to |
| diagnostics::diagram. |
| * diagnostic-diagram.h: Move to... |
| * diagnostics/diagram.h: ...here. |
| (class diagnostic_diagram): Convert to... |
| (class diagnostics::diagram): ...this. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-core.h: Update for move of diagnostic_metadata to |
| diagnostics::metadata. |
| * diagnostic-format-html.cc: Likewise; also, update #include for |
| move of "diagnostic-metadata.h" to "diagnostics/metadata.h". |
| * diagnostic-format-sarif.cc: Likewise. |
| * diagnostic-format-text.cc: Likewise. |
| * diagnostic-global-context.cc: Likewise. |
| * diagnostic.cc: Likewise. |
| * diagnostic.h: Likewise. |
| * diagnostic-metadata.h: Move to... |
| * diagnostics/metadata.h: ...here, updating header guard. |
| (class diagnostic_metadata): Move to... |
| (class diagnostics::metadata): ...here. Drop redundant |
| "diagnostics::" qualifiers. |
| * libgdiagnostics.cc: : Update #include for move of |
| "diagnostic-metadata.h" to "diagnostics/metadata.h", and update |
| for move of diagnostic_metadata to diagnostics::metadata. |
| * selftest-diagnostic.cc: Update for move of diagnostic_metadata |
| to diagnostics::metadata. |
| * selftest-diagnostic.h: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Replace |
| selftest-logical-location.o with |
| diagnostics/selftest-logical-locations.o. |
| * diagnostic-client-data-hooks.h: Update #include for move of |
| "logical-location.h" to "diagnostics/logical-locations.h". |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager, and of logical_location |
| to diagnostics::logical_locations::key. |
| * diagnostic-format-html.cc: Add "using namespace diagnostics;", |
| and drop now-redundant "diagnostics::" prefixes. |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager, of logical_location to |
| diagnostics::logical_locations::key, and of |
| enum logical_location_kind to |
| enum diagnostics::logical_locations::kind. |
| * diagnostic-format-sarif.cc: Update #include for move of |
| "logical-location.h" to "diagnostics/logical-locations.h". Add |
| "using namespace diagnostics;", and drop now-redundant |
| "diagnostics::" prefixes. |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager, of logical_location to |
| diagnostics::logical_locations::key, and of |
| enum logical_location_kind to |
| enum diagnostics::logical_locations::kind. |
| * diagnostic-format-sarif.h: Update #include for move of |
| "logical-location.h" to "diagnostics/logical-locations.h". |
| Update for conversion of logical_location to |
| diagnostics::logical_locations::key. |
| * diagnostic-path-output.cc: Add "using namespace diagnostics;". |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager, and |
| of logical_location to diagnostics::logical_locations::key, |
| * diagnostic-path.cc: Add "using namespace diagnostics;". |
| Update for conversion of logical_location to |
| diagnostics::logical_locations::key. |
| * diagnostic-path.h: Update #include for move of |
| "logical-location.h" to "diagnostics/logical-locations.h". |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager, and of logical_location |
| to diagnostics::logical_locations::key, |
| * diagnostic.cc: Update #include for move of |
| "logical-location.h" to "diagnostics/logical-locations.h". |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager and of |
| enum logical_location_kind to |
| enum diagnostics::logical_locations::kind. |
| * diagnostic.h: Reorganize forward decls. |
| (class logical_location_manager): Replace this forward decl |
| with... |
| (class diagnostics::logical_locations::manager): ...this. |
| (diagnostic_context::get_logical_location_manager): Update |
| return type. |
| * diagnostics/digraphs.h: : Update #include for move of |
| "logical-location.h" to "diagnostics/logical-locations.h". |
| Update for conversion of logical_location to |
| diagnostics::logical_locations::key. |
| * logical-location.h: Move to... |
| * diagnostics/logical-locations.h: ...here. |
| (enum class logical_location_kind): Convert to... |
| (enum class diagnostics::logical_locations::kind): ... this. |
| (class logical_location_manager::key): Convert to... |
| (class diagnostics::logical_locations::key): ... this. |
| (class logical_location_manager): Convert to... |
| (class diagnostics::logical_locations::manager): ... this. |
| (logical_location): Drop this typedef in favor of |
| diagnostics::logical_locations::key. |
| * selftest-logical-location.cc: Move to... |
| * diagnostics/selftest-logical-locations.cc: ...here. |
| Update #include for move of "selftest-logical-location.h" to |
| "diagnostics/selftest-logical-locations.h". |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager, of logical_location to |
| diagnostics::logical_locations::key, and of |
| enum logical_location_kind to |
| enum diagnostics::logical_locations::kind. |
| (selftest_logical_location_cc_tests): Rename to... |
| (diagnostics_selftest_logical_locations_cc_tests): ...this. |
| * selftest-logical-location.h: Move to... |
| * diagnostics/selftest-logical-locations.h: ...here, updating |
| include guard. |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager, of logical_location to |
| diagnostics::logical_locations::key, and of |
| enum logical_location_kind to |
| enum diagnostics::logical_locations::kind. |
| * diagnostics/state-graphs-to-dot.cc: Add |
| "using namespace diagnostics;" and drop now-redundant |
| "diagnostics::" prefixes. |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager. |
| * diagnostics/state-graphs.h: Update #include for move of |
| "logical-location.h" to "diagnostics/logical-locations.h". |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager, |
| of logical_location to diagnostics::logical_locations::key. |
| * libgdiagnostics.cc: Update #include for move of |
| "logical-location.h" to "diagnostics/logical-locations.h". |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager, and of logical_location |
| to diagnostics::logical_locations::key. |
| * selftest-diagnostic-path.cc: Update for conversion of |
| logical_location to diagnostics::logical_locations::key. |
| * selftest-diagnostic-path.h: Update #include for move of |
| "logical-location.h" to "diagnostics/logical-locations.h". |
| Update for conversion of logical_location to |
| diagnostics::logical_locations::key. |
| * selftest-run-tests.cc (selftest::run_tests): Update for |
| renaming of selftest_logical_location_cc_tests to |
| diagnostics_selftest_logical_locations_cc_tests. |
| * selftest.h: Likewise. |
| * simple-diagnostic-path.h: Update for conversion of |
| logical_location to diagnostics::logical_locations::key. |
| * tree-diagnostic-client-data-hooks.cc: Update for conversion of |
| logical_location_manager to |
| diagnostics::logical_locations::manager, and of logical_location |
| to diagnostics::logical_locations::key. |
| * tree-logical-location.cc: Update for conversions. |
| Update for conversion of logical_location to |
| diagnostics::logical_locations::key, and of |
| enum logical_location_kind to |
| enum diagnostics::logical_locations::kind. |
| * tree-logical-location.h: Update #include for move of |
| "logical-location.h" to "diagnostics/logical-locations.h". |
| Update for conversion of logical_location_manager to |
| diagnostics::logical_locations::manager, of logical_location |
| to diagnostics::logical_locations::key, and of |
| enum logical_location_kind to |
| enum diagnostics::logical_locations::kind. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Rename diagnostic-digraphs.o to |
| diagnostics/digraphs.o. Rename diagnostic-state-graphs.o to |
| diagnostics/state-graphs.o. Rename diagnostic-state-to-dot.o to |
| diagnostics/state-graphs-to-dot.o. |
| (PLUGIN_HEADERS): Add $(srcdir)/diagnostics/*.h. |
| (install-plugin:): Likewise. |
| * configure: Regenerate. |
| * configure.ac (gccdepdir): Add "diagnostics" to directories. |
| * diagnostic-format-html.cc: Update #includes for move of |
| "diagnostic-digraphs.h" to "diagnostics/digraphs.h" and of |
| move of "diagnostic-state-graphs.h" to |
| "diagnostics/state-graphs.h". |
| * diagnostic-format-sarif.cc: Likewise. |
| * diagnostic-path.cc: Likewise for state-graphs.h |
| * diagnostic-digraphs.cc: Move... |
| * diagnostics/digraphs.cc: ...to here. Update #include |
| for renaming of digraphs.h. |
| (selftest::diagnostic_digraphs_cc_tests): Rename to... |
| (selftest::diagnostics_digraphs_cc_tests): ...this. |
| * diagnostic-digraphs.h: Move... |
| * diagnostics/digraphs.h: ...to here, updating header guard. |
| * diagnostic-state-to-dot.cc: Move... |
| * diagnostics/state-graphs-to-dot.cc: ...to here. Update #include |
| of state-graphs.h. |
| * diagnostic-state-graphs.cc: Move... |
| * diagnostics/state-graphs.cc: ...to here. Update #include |
| of state-graphs.h. |
| (selftest::diagnostic_state_graphs_cc_tests): Rename... |
| (selftest::diagnostics_state_graphs_cc_tests): ...to this. |
| * diagnostic-state-graphs.h: Move... |
| * diagnostics/state-graphs.h: ...to here, updating header guard. |
| * libgdiagnostics.cc: Update #includes for move of |
| "diagnostic-digraphs.h" to "diagnostics/digraphs.h" and of |
| move of "diagnostic-state-graphs.h" to |
| "diagnostics/state-graphs.h". |
| * selftest-run-tests.cc (selftest::run_tests): Update for |
| function renamings that reflect file renamings. |
| * selftest.h (selftest::diagnostic_digraphs_cc_tests): Rename |
| to... |
| (selftest::diagnostics_digraphs_cc_tests): ...this. |
| (selftest::diagnostic_state_graphs_cc_tests): Rename... |
| (selftest::diagnostics_state_graphs_cc_tests): ...to this. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_get_vec_defs): Remove overload |
| with operand vector type. Remove stmt_vec_info and |
| ncopies argument. |
| * tree-vect-stmts.cc (vect_get_vec_defs): Likewise. |
| (vectorizable_conversion): Adjust by not passing in |
| vector types, stmt_vec_info and ncopies. |
| (vectorizable_bswap): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_scan_store): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_condition): Likewise. |
| (vectorizable_comparison_1): Likewise. |
| * tree-vect-loop.cc (vect_transform_reduction): Likewise. |
| (vect_transform_lc_phi): Likewise. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_is_simple_use): Remove stmt-info |
| with vectype output overload and remove stmt-info argument |
| from SLP based API. |
| * tree-vect-loop.cc (vectorizable_lane_reducing): Remove |
| unused def_stmt_info output argument to vect_is_simple_use. |
| Adjust. |
| * tree-vect-stmts.cc (get_group_load_store_type): Get |
| the gather/scatter offset vector type from the SLP child. |
| (vect_check_scalar_mask): Remove stmt_info argument. Adjust. |
| (vect_check_store_rhs): Likewise. |
| (vectorizable_call): Likewise. |
| (vectorizable_simd_clone_call): Likewise. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_load): Likewise. |
| (vect_is_simple_cond): Remove stmt_info argument. Adjust. |
| (vectorizable_condition): Likewise. |
| (vectorizable_comparison_1): Likewise. |
| (vectorizable_store): Likewise. |
| (vect_is_simple_use): Remove overload and non-SLP path. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vect_model_simple_cost): Removed code |
| when no SLP node is passed, remove then unused dt and ndts |
| parameters and fix the number of vector stmts calculation. |
| (vectorizable_call): Adjust. |
| (vectorizable_simd_clone_call): Likewise. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_condition): Likewise. |
| (vectorizable_comparison_1): Likewise. |
| |
| 2025-07-25 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/riscv-vector-costs.cc (get_live_range): |
| Move compute_local_program_points to cost class. |
| (variable_vectorized_p): Add slp node parameter. |
| (need_additional_vector_vars_p): Move from here... |
| (costs::need_additional_vector_vars_p): ... to here and add slp |
| parameter. |
| (compute_estimated_lmul): Move update_local_live_ranges to cost |
| class. |
| (has_unexpected_spills_p): Move from here... |
| (costs::has_unexpected_spills_p): ... to here. |
| (costs::record_lmul_spills): New function. |
| (costs::add_stmt_cost): Add stmt_info, slp mapping. |
| (costs::finish_cost): Analyze loop. |
| * config/riscv/riscv-vector-costs.h: Move declarations to class. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_analyze_loop_2): Get vectype |
| from the SLP node. |
| (vectorize_fold_left_reduction): Likewise. |
| (vect_transform_reduction): Likewise. |
| (vect_transform_cycle_phi): Likewise. |
| (vect_transform_lc_phi): Likewise. |
| * tree-vect-slp.cc (vect_analyze_slp): Likewise. |
| * tree-vect-stmts.cc (vect_truncate_gather_scatter_offset): |
| Pass in vectype and use that. |
| (vect_use_strided_gather_scatters_p): Likewise. |
| (get_group_load_store_type): Adjust. |
| (vect_check_scalar_mask): We always have a SLP node. |
| Use vectype from the SLP node. |
| (vect_check_store_rhs): Likewise. |
| (vect_build_one_gather_load_call): Pass in the vector type |
| and use that. |
| (vect_get_strided_load_store_ops): Likewise. |
| (vectorizable_store): Adjust. |
| (vectorizable_load): Use the vector type from the SLP node |
| and adjust. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * target.h (stmt_vectype): Remove. |
| * tree-vect-stmts.cc (stmt_vectype): Likewise. |
| |
| 2025-07-25 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * config/riscv/riscv.cc (enum riscv_privilege_levels): Remove USER_MODE. |
| (riscv_handle_type_attribute): Remove "user" interrupts. |
| (riscv_expand_epilogue): Likewise. |
| (riscv_get_interrupt_type): Likewise. |
| * config/riscv/riscv.md (riscv_uret): Remove URET pattern. |
| * doc/extend.texi: Remove documentation of user interrupts. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_stmt_vec_info::vec_stmts): Remove. |
| (STMT_VINFO_VEC_STMTS): Likewise. |
| * tree-vectorizer.cc (vec_info::new_stmt_vec_info): Do not |
| initialize it. |
| (vec_info::free_stmt_vec_info): Nor free it. |
| * tree-vect-data-refs.cc (vect_vfa_access_size): Remove |
| check on STMT_VINFO_VEC_STMTS. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_transform_grouped_load): Remove. |
| (vect_record_grouped_load_vectors): Likewise. |
| * tree-vect-data-refs.cc (vect_permute_load_chain): Likewise. |
| (vect_shift_permute_load_chain): Likewise. |
| (vect_transform_grouped_load): Likewise. |
| (vect_record_grouped_load_vectors): Likewise. |
| * tree-vect-stmts.cc (vectorizable_load): Remove comments |
| about load interleaving. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_permute_store_chain): Remove. |
| * tree-vect-data-refs.cc (vect_permute_store_chain): Likewise. |
| * tree-vect-stmts.cc (vectorizable_store): Remove comment |
| about store interleaving. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_get_vec_defs_for_operand): Remove. |
| * tree-vect-stmts.cc (vect_get_vec_defs_for_operand): Likewise. |
| (vect_get_vec_defs): Remove non-SLP path. |
| (check_load_store_for_partial_vectors): We always have an |
| SLP node. |
| (vect_check_store_rhs): Likewise. |
| (vect_get_gather_scatter_ops): Likewise. |
| (vect_create_vectorized_demotion_stmts): Likewise. |
| (vectorizable_store): Adjust. |
| (vectorizable_load): Likewise. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (VMAT_CONTIGUOUS_PERMUTE): Remove. |
| * tree-vect-stmts.cc (check_load_store_for_partial_vectors): |
| Remove checks on VMAT_CONTIGUOUS_PERMUTE. |
| (vectorizable_load): Likewise. |
| (vectorizable_store): Likewise. Prune dead code. |
| |
| 2025-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_store): Remove trivially |
| dead code. |
| |
| 2025-07-25 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn-opts.h (TARGET_NO_MANUAL_NOPS, |
| TARGET_CDNA3_NOPS): Define. |
| * config/gcn/gcn.md (define_attr "laneselect): Change 'yes' to |
| 'read' and 'write'. |
| (define_attr "flatmemaccess"): Add with values store, storex34, |
| load, atomic, atomicwait, cmpswapx2, and no. Replacing ... |
| (define_attr "delayeduse"): Remove. |
| (define_attr "transop"): Add with values yes and no. |
| (various insns): Update 'laneselect', add flatmemaccess and transop, |
| remove delayeduse; fixing an issue for s_load_dwordx4 vs. |
| flat_store_dwordx4 related to delayeduse (now: flatmemaccess). |
| * config/gcn/gcn-valu.md: Update laneselect attribute and add |
| flatmemaccess. |
| * config/gcn/gcn.cc (gcn_cmpx_insn_p): New. |
| (gcn_md_reorg): Update for MI300 to add additional s_nop. |
| Skip s_nop-insertion part for RDNA{2,3}; add "VALU writes EXEC |
| followed by VALU DPP" unconditionally for CDNA2/CDNA3/GCN5. |
| |
| 2025-07-25 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR middle-end/121214 |
| * genpreds.cc (constraint_max_namelen): Delete. |
| (write_tm_preds_h): Always write insn_constraint_len() and |
| define CONSTRAINT_LEN to it, i.e., remove guard |
| constraint_max_namelen>1. Remove outer guard |
| constraint_max_namelen>0 and re-indent. |
| (write_insn_preds_c): Remove guard |
| constraint_max_namelen>0 and re-indent. |
| |
| 2025-07-25 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * config/riscv/riscv.cc (enum riscv_privilege_levels): Add |
| RNMI_MODE. |
| (riscv_handle_type_attribute): Handle 'rnmi' interrupt attribute. |
| (riscv_expand_epilogue): Generate nmret for RNMI handlers. |
| (riscv_get_interrupt_type): Handle 'rnmi' interrupt attribute. |
| * config/riscv/riscv.md (riscv_rnmi): Add nmret INSN. |
| * doc/extend.texi: Add documentation for 'rnmi' interrupt attribute. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vectorizable_induction): Remove |
| gimple **vec_stmt argument. |
| (vectorizable_phi): Likewise. |
| (vectorizable_recurr): Likewise. |
| (vectorizable_early_exit): Likewise. |
| * tree-vect-loop.cc (vectorizable_phi): Likewise and adjust. |
| (vectorizable_recurr): Likewise. |
| (vectorizable_nonlinear_induction): Likewise. |
| (vectorizable_induction): Likewise. |
| * tree-vect-stmts.cc (vectorizable_bswap): Likewise. |
| (vectorizable_call): Likewise. |
| (vectorizable_simd_clone_call): Likewise. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| (vectorizable_condition): Likewise. |
| (vectorizable_comparison_1): Likewise. |
| (vectorizable_comparison): Likewise. |
| (vectorizable_early_exit): Likewise. |
| (vect_analyze_stmt): Adjust. |
| (vect_transform_stmt): Likewise. |
| * tree-vect-slp.cc (vect_slp_analyze_operations): Adjust. |
| (vectorize_slp_instance_root_stmt): Likewise. |
| |
| 2025-07-24 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * doc/cpp.texi (#ifdef): Correct typo. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_early_exit): Remove non-SLP |
| path. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_stmt_vec_info::simd_clone_info): Remove. |
| (STMT_VINFO_SIMD_CLONE_INFO): Likewise. |
| * tree-vectorizer.cc (vec_info::free_stmt_vec_info): Do not |
| release it. |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Remove |
| non-SLP path. |
| |
| 2025-07-24 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * internal-fn.cc (internal_fn_len_index): Adjust indices for new |
| alias_ptr param. |
| (internal_fn_else_index): Ditto. |
| (internal_fn_mask_index): Ditto. |
| (internal_fn_stored_value_index): Ditto. |
| (internal_fn_alias_ptr_index): Ditto. |
| (internal_fn_offset_index): Ditto. |
| (internal_fn_scale_index): Ditto. |
| (internal_gather_scatter_fn_supported_p): Ditto. |
| * internal-fn.h (internal_fn_alias_ptr_index): Ditto. |
| * optabs-query.cc (supports_vec_gather_load_p): Ditto. |
| * tree-vect-data-refs.cc (vect_check_gather_scatter): Add alias |
| pointer. |
| * tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Add |
| alias pointer. |
| * tree-vect-slp.cc (vect_get_operand_map): Adjust for alias |
| pointer. |
| * tree-vect-stmts.cc (vect_truncate_gather_scatter_offset): Add |
| alias pointer and misalignment handling. |
| (get_load_store_type): Move from here... |
| (get_group_load_store_type): ...To here. |
| (vectorizable_store): Add alias pointer. |
| (vectorizable_load): Ditto. |
| * tree-vectorizer.h (struct gather_scatter_info): Ditto. |
| |
| 2025-07-24 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_builtin_support_vector_misalignment): |
| Return true for gather/scatter. |
| * config/arm/arm.cc (arm_builtin_support_vector_misalignment): |
| Ditto. |
| * config/epiphany/epiphany.cc (epiphany_support_vector_misalignment): |
| Ditto. |
| * config/gcn/gcn.cc (gcn_vectorize_support_vector_misalignment): |
| Ditto. |
| * config/loongarch/loongarch.cc (loongarch_builtin_support_vector_misalignment): |
| Ditto. |
| * config/riscv/riscv.cc (riscv_support_vector_misalignment): |
| Add gather/scatter argument. |
| * config/rs6000/rs6000.cc (rs6000_builtin_support_vector_misalignment): |
| Return true for gather/scatter. |
| * config/s390/s390.cc (s390_support_vector_misalignment): |
| Ditto. |
| * doc/tm.texi: Add argument. |
| * target.def: Ditto. |
| * targhooks.cc (default_builtin_support_vector_misalignment): |
| Ditto. |
| * targhooks.h (default_builtin_support_vector_misalignment): |
| Ditto. |
| * tree-vect-data-refs.cc (vect_supportable_dr_alignment): |
| Ditto. |
| |
| 2025-07-24 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * tree-vect-slp.cc (GATHER_SCATTER_OFFSET): New define. |
| (vect_get_and_check_slp_defs): Use. |
| * tree-vectorizer.h (GATHER_SCATTER_LEGACY_P): New define. |
| (GATHER_SCATTER_IFN_P): Ditto. |
| (GATHER_SCATTER_EMULATED_P): Ditto. |
| * tree-vect-stmts.cc (vectorizable_store): Use. |
| (vectorizable_load): Use. |
| |
| 2025-07-24 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * internal-fn.cc (expand_scatter_store_optab_fn): Use new |
| function. |
| (expand_gather_load_optab_fn): Ditto. |
| (internal_fn_offset_index): Ditto. |
| (internal_fn_scale_index): Ditto. |
| * internal-fn.h (internal_fn_offset_index): New function. |
| (internal_fn_scale_index): Ditto. |
| * tree-vect-data-refs.cc (vect_describe_gather_scatter_call): |
| Use new function. |
| |
| 2025-07-24 Alfie Richards <alfie.richards@arm.com> |
| |
| * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Remove unnecessary |
| casts to aggr_ptr_type. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_comparison_1): Remove |
| non-SLP path. |
| (vectorizable_comparison): Likewise. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_condition): Remove |
| non-SLP paths. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_scan_store): Remove |
| non-SLP path and unused parameters. |
| (vectorizable_store): Adjust. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_shift): Remove non-SLP paths. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_assignment): Remove |
| non-SLP paths. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_call): Remove non-SLP path. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_bswap): Remove non-SLP path. |
| |
| 2025-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_recurr): Remove non-SLP path. |
| |
| 2025-07-24 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_relaxed): |
| Extend from SVE_FULL_F_B16B16 to SVE_F_B16B16. |
| (*cond_<optab><mode>_3_relaxed): Likewise. |
| (*cond_<optab><mode>_any_relaxed): Likwise. |
| (*cond_<optab><mode>_any_const_relaxed): Extend from SVE_FULL_F |
| to SVE_F. |
| (*cond_add<mode>_2_const_relaxed): Likewise. |
| (*cond_add<mode>_any_const_relaxed): Likewise. |
| (*cond_sub<mode>_3_const_relaxed): Likewise. |
| (*cond_sub<mode>_const_relaxed): Likewise. |
| |
| 2025-07-24 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md: (@aarch64_sve_<optab><mode>): |
| Extend from SVE_FULL_F to SVE_F, use aarch64_predicate_operand. |
| (@aarch64_frecpe<mode>): Extend from SVE_FULL_F to SVE_F. |
| (@aarch64_frecps<mode>): Likewise. |
| (div<mode>3): Likewise, use aarch64_sve_fp_pred. |
| * config/aarch64/iterators.md: Add warnings above SVE_FP_UNARY |
| and SVE_FP_BINARY. |
| |
| 2025-07-24 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (<optab><mode>3): Extend from |
| SVE_FULL_F to SVE_F, use aarch64_sve_fp_pred. |
| (*post_ra_<sve_fp_op><mode>3): Extend from SVE_FULL_F to SVE_F. |
| (@aarch64_pred_<optab><mode>): Extend from SVE_FULL_F to SVE_F, |
| use aarch64_predicate_operand (ADD/SUB/MUL/MAX/MIN). |
| (split for using unpredicated insns): Move SVE_RELAXED_GP into |
| the pattern, rather than testing for it in the condition. |
| * config/aarch64/aarch64-sve2.md (@aarch64_pred_<optab><mode>): |
| Extend from VNx8BF_ONLY to SVE_BF. |
| |
| 2025-07-24 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*uavg_floor_vx_<mode>): Rename |
| from... |
| (*<sat_op_v_vdup>_vx_<mode>): Rename to... |
| (*<sat_op_vdup_v>_vx_<mode>): Rename to... |
| * config/riscv/riscv-protos.h (enum insn_flags): Add vxrm |
| RNE, ROD type. |
| (enum insn_type): Add RNE_P, ROD_P type. |
| (expand_vx_binary_vxrm_vec_vec_dup): Add new func decl. |
| (expand_vx_binary_vxrm_vec_dup_vec): Ditto. |
| * config/riscv/riscv-v.cc (get_insn_type_by_vxrm_val): Add |
| helper to get insn type by vxrm value. |
| (expand_vx_binary_vxrm_vec_vec_dup): Add new func impl |
| to expand vec + vec_dup pattern. |
| (expand_vx_binary_vxrm_vec_dup_vec): Ditto but for |
| vec_dup + vec pattern. |
| * config/riscv/vector-iterators.md: Add helper iterator |
| for sat vx combine. |
| |
| 2025-07-23 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_relaxed): |
| Extend from SVE_FULL_F to SVE_F. |
| (*cond_<optab><mode>_any_relaxed): Likewise. |
| |
| 2025-07-23 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (<optab><mode>2): Replace use of |
| aarch64_ptrue_reg with aarch64_sve_fp_pred. |
| (@aarch64_pred_<optab><mode>): Extend from SVE_FULL_F to SVE_F, |
| and use aarch64_predicate_operand. |
| * config/aarch64/iterators.md: Split FABS/FNEG out of |
| SVE_COND_FP_UNARY (into new SVE_COND_FP_UNARY_BITWISE). |
| |
| 2025-07-23 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md |
| (*cond_<optab>_nontrunc<SVE_PARTIAL_F:mode><SVE_HSDI:mode>_relaxed): |
| New FCVT/SEL combiner pattern. |
| (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx2SI_ONLY:mode>_relaxed): |
| New FCVTZ{S,U}/SEL combiner pattern. |
| (*cond_<optab>_nonextend<SVE_HSDI:mode><SVE_PARTIAL_F:mode>_relaxed): |
| New {S,U}CVTF/SEL combiner pattern. |
| (*cond_<optab>_trunc<SVE_SDF:mode><SVE_PARTIAL_HSF:mode>): |
| New FCVT/SEL combiner pattern. |
| (*cond_<optab>_nontrunc<SVE_PARTIAL_HSF:mode><SVE_SDF:mode>_relaxed): |
| New FCVTZ{S,U}/SEL combiner pattern. |
| * config/aarch64/iterators.md: New mode iterator for VNx2SI. |
| |
| 2025-07-23 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/121073 |
| * config/riscv/autovec-opt.md: Use new helpers. |
| * config/riscv/autovec.md: Ditto. |
| * config/riscv/predicates.md (strided_broadcast_mask_operand): |
| New predicate. |
| (strided_broadcast_operand): Ditto. |
| (any_broadcast_operand): Ditto. |
| * config/riscv/riscv-protos.h (expand_broadcast): Declare. |
| (expand_set_first): Ditto. |
| (expand_set_first_tu): Ditto. |
| (strided_broadcast_p): Ditto. |
| * config/riscv/riscv-string.cc (expand_vec_setmem): Use new |
| helpers. |
| * config/riscv/riscv-v.cc (expand_broadcast): New functionk. |
| (expand_set_first): Ditto. |
| (expand_set_first_tu): Ditto. |
| (expand_const_vec_duplicate): Use new helpers. |
| (expand_const_vector_duplicate_repeating): Ditto. |
| (expand_const_vector_duplicate_default): Ditto. |
| (sew64_scalar_helper): Ditto. |
| (expand_vector_init_merge_repeating_sequence): Ditto. |
| (expand_reduction): Ditto. |
| (strided_broadcast_p): New function. |
| (whole_reg_to_reg_move_p): Use new helpers. |
| * config/riscv/riscv-vector-builtins-bases.cc: Use either |
| broadcast or strided broadcast. |
| * config/riscv/riscv-vector-builtins.cc (function_expander::use_ternop_insn): |
| Ditto. |
| (function_expander::use_widen_ternop_insn): Ditto. |
| (function_expander::use_scalar_broadcast_insn): Ditto. |
| * config/riscv/riscv-vector-builtins.h: Declare scalar |
| broadcast. |
| * config/riscv/vector.md (*pred_broadcast<mode>): Split into |
| regular and strided broadcast. |
| (*pred_broadcast<mode>_zvfh): Split. |
| (pred_broadcast<mode>_zvfh): Ditto. |
| (*pred_broadcast<mode>_zvfhmin): Ditto. |
| (@pred_strided_broadcast<mode>): Ditto. |
| (*pred_strided_broadcast<mode>): Ditto. |
| (*pred_strided_broadcast<mode>_zvfhmin): Ditto. |
| |
| 2025-07-23 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR target/120119 |
| * config/aarch64/cortex-a57-fma-steering.cc (func_fma_steering::analyze): |
| Skip if renaming fails. |
| |
| 2025-07-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121220 |
| * tree-ssa-sink.cc (statement_sink_location): For stores |
| handle sinking to paths ending in a store. Skip loads |
| that do not use the store. |
| |
| 2025-07-23 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/119085 |
| * tree-sra.cc (sort_and_splice_var_accesses): Prevent total |
| scalarization if two incompatible aggregates access the same place. |
| |
| 2025-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc <sparc*-*-solaris2*> (with_cpu): Default to ultrasparc3. |
| |
| 2025-07-23 Richard Biener <rguenther@suse.de> |
| |
| * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost): |
| Check vectype is non-NULL before accessing it. |
| |
| 2025-07-23 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/121216 |
| * expr.cc (constant_byte_string): Check the string type |
| size fits an uhwi before converting to uhwi. |
| |
| 2025-07-22 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/109267 |
| * tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing): If the first |
| non debug statement in the first (and only) basic block is a call |
| to __builtin_unreachable change it to a call to __builtin_trap or an |
| infinite loop. |
| |
| 2025-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p): |
| Rewrite to capture insns that could be L32R machine instructions |
| wherever possible. |
| (xtensa_rtx_costs): Fix to consider that moves larger than a |
| natural word can take multiple L32R machine instructions. |
| (constantpool_address_p): Cosmetics. |
| * config/xtensa/xtensa.md (movdi_internal, movdf_internal): |
| Add missing insn attributes. |
| |
| 2025-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md |
| (movsi_internal, movhi_internal, movsf_internal): |
| Change the value of the "type" attribute from "move" to "load" |
| when the source operand constraint is "Y". |
| |
| 2025-07-22 Karl Meakin <karl.meakin@arm.com> |
| |
| * tree-vect-data-refs.cc (vect_check_gather_scatter): Swap |
| `base` and `off` in more scenarios. Also assert at the end of |
| the function that `base` and `off` are loop-invariant and not |
| loop-invariant respectively. |
| |
| 2025-07-22 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/generic-vector-ooo.md: Restrict insn reservations to |
| generic_ooo and generic tuning models. |
| |
| 2025-07-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121202 |
| * tree-vect-slp.cc (vect_schedule_slp_node): Do not take |
| an out-of-region stmt as "last". |
| |
| 2025-07-22 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * genpreds.cc (write_insn_constraint_len): Replace rawmemchr by |
| a loop. |
| |
| 2025-07-21 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/mips-p8700.md: Add support for "ghost" insn types. |
| * config/riscv/xiangshan.md: Add support for "sf_vc" and "sf_vc_se" |
| insn types. |
| |
| 2025-07-21 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/110949 |
| PR tree-optimization/95906 |
| * match.pd (cmp - 1): New pattern. |
| |
| 2025-07-21 Andreas Schwab <schwab@suse.de> |
| |
| PR target/121121 |
| * config/riscv/riscv.cc (riscv_allocate_and_probe_stack_space): |
| Use temp2 instead of temp1 for the CFA note. |
| |
| 2025-07-21 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Allow VLS DImode for sat_op vx pattern. |
| |
| 2025-07-21 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*uavg_floor_vx_<mode>): Add |
| pattern for vaaddu.vx combine. |
| * config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add UNSPEC |
| handling for UNSPEC_VAADDU. |
| (riscv_rtx_costs): Ditto. |
| |
| 2025-07-21 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>): |
| Enable only when optimizing for size. |
| |
| 2025-07-21 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_rtx_costs): Add extra_cost values |
| only when speed is true for CONST_VECTOR, VEC_DUPLICATE, VEC_SELECT |
| cases. |
| * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs, |
| thunderx_extra_costs, thunderx2t99_extra_costs, |
| thunderx3t110_extra_costs, tsv110_extra_costs, a64fx_extra_costs, |
| ampere1_extra_costs, ampere1a_extra_costs, ampere1b_extra_costs): |
| Reduce cost of movi, dup, extract fields by COSTS_N_INSNS (1). |
| * config/arm/aarch-cost-tables.h (generic_extra_costs, |
| cortexa53_extra_costs, cortexa57_extra_costs, cortexa76_extra_costs, |
| exynosm1_extra_costs, xgene1_extra_costs): Likewise. |
| |
| 2025-07-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121194 |
| * tree-vect-loop.cc (vectorizable_lc_phi): Verify |
| vector types are compatible. |
| |
| 2025-07-21 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-valu.md (gather_load<mode><vndi>): New. |
| (scatter_store<mode><vndi>): New. |
| (mask_gather_load<mode><vndi>): New. |
| (mask_scatter_store<mode><vndi>): New. |
| * config/gcn/gcn.cc (gcn_expand_scaled_offsets): Support DImode. |
| |
| 2025-07-21 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn.cc (GEN_VNM_NOEXEC): Use USE_QHF. |
| (GEN_VNM): Likewise, and call for new ashl and mul variants. |
| |
| 2025-07-21 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-valu.md (add<mode>3_dup): New. |
| (add<mode>3_dup_exec): New. |
| (<su>mul<mode>3_highpart_dup<exec>): New. |
| (mul<mode>3_dup): Move the vec_duplicate to operand 1. |
| (mul<mode>3_dup_exec): New. |
| (vec_series<mode>): Adjust call to gen_mul<mode>3_dup. |
| * config/gcn/gcn.cc (gcn_expand_vector_init): Likewise. |
| |
| 2025-07-21 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * genoutput.cc (main): Emit function |
| verify_reg_names_in_constraints() for run-time validation. |
| (mdep_constraint_len): Deal with hard register constraints. |
| * output.h (verify_reg_names_in_constraints): New function |
| declaration. |
| * toplev.cc (backend_init): If checking is enabled, call into |
| verify_reg_names_in_constraints(). |
| |
| 2025-07-21 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * cfgexpand.cc (n_occurrences): Move this ... |
| (check_operand_nalternatives): and this ... |
| (expand_asm_stmt): and the call to gimplify.cc. |
| * config/s390/s390.cc (s390_md_asm_adjust): Pass null pointer to |
| parse_{input,output}_constraint(). |
| * gimple-walk.cc (walk_gimple_asm): Pass null pointer to |
| parse_{input,output}_constraint(). |
| (walk_stmt_load_store_addr_ops): Ditto. |
| * gimplify-me.cc (gimple_regimplify_operands): Ditto. |
| * gimplify.cc (num_occurrences): Moved from cfgexpand.cc. |
| (num_alternatives): Ditto. |
| (gimplify_asm_expr): Deal with hard register constraints. |
| * stmt.cc (eliminable_regno_p): New helper. |
| (hardreg_ok_p): Perform a similar check as done in |
| make_decl_rtl(). |
| (parse_output_constraint): Add parameter for gimplify_reg_info |
| and validate hard register constrained operands. |
| (parse_input_constraint): Ditto. |
| * stmt.h (class gimplify_reg_info): Forward declaration. |
| (parse_output_constraint): Add parameter. |
| (parse_input_constraint): Ditto. |
| * tree-ssa-operands.cc |
| (operands_scanner::get_asm_stmt_operands): Pass null pointer |
| to parse_{input,output}_constraint(). |
| * tree-ssa-structalias.cc (find_func_aliases): Pass null pointer |
| to parse_{input,output}_constraint(). |
| * varasm.cc (assemble_asm): Pass null pointer to |
| parse_{input,output}_constraint(). |
| * gimplify_reg_info.h: New file. |
| |
| 2025-07-21 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/cris/cris.cc (cris_md_asm_adjust): Deal with hard |
| register constraint. |
| * config/i386/i386.cc (map_egpr_constraints): Ditto. |
| * config/s390/s390.cc (f_constraint_p): Ditto. |
| * doc/extend.texi: Document hard register constraints. |
| * doc/md.texi: Ditto. |
| * function.cc (match_asm_constraints_2): Have a unique pseudo |
| for each operand with a hard register constraint. |
| (pass_match_asm_constraints::execute): Calling into new helper |
| match_asm_constraints_2(). |
| * genoutput.cc (mdep_constraint_len): Return the length of a |
| hard register constraint. |
| * genpreds.cc (write_insn_constraint_len): Support hard register |
| constraints for insn_constraint_len(). |
| * ira.cc (valid_replacement_for_asm_input_p_1): New helper. |
| (valid_replacement_for_asm_input_p): New helper. |
| (decrease_live_ranges_number): Similar to |
| match_asm_constraints_2() ensure that each operand has a unique |
| pseudo if constrained by a hard register. |
| * lra-constraints.cc (process_alt_operands): Install hard |
| register filter according to constraint. |
| * recog.cc (asm_operand_ok): Accept register type for hard |
| register constrained asm operands. |
| (constrain_operands): Validate hard register constraints. |
| * stmt.cc (decode_hard_reg_constraint): Parse a hard register |
| constraint into the corresponding register number or bail out. |
| (parse_output_constraint): Parse hard register constraint and |
| set *ALLOWS_REG. |
| (parse_input_constraint): Ditto. |
| * stmt.h (decode_hard_reg_constraint): Declaration of new |
| function. |
| |
| 2025-07-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_analyze_data_refs): Remove min_vf |
| output. |
| * tree-vect-data-refs.cc (vect_analyze_data_refs): Likewise. |
| * tree-vect-loop.cc (vect_analyze_loop_2): Remove early |
| out based on bogus min_vf. |
| * tree-vect-slp.cc (vect_slp_analyze_bb_1): Adjust. |
| |
| 2025-07-20 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec.md: Add (const_int 1) as the op2 of |
| ashiftrt. |
| |
| 2025-07-19 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| PR target/121124 |
| * config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Handle the |
| ctable base address as signed 32-bit value, and sign-extend to |
| HOST_WIDE_INT. |
| * config/pru/pru-protos.h (struct pru_ctable_entry): Store the |
| ctable base address as signed. |
| (pru_get_ctable_exact_base_index): Pass base address as signed. |
| (pru_get_ctable_base_index): Ditto. |
| (pru_get_ctable_base_offset): Ditto. |
| * config/pru/pru.cc (pru_get_ctable_exact_base_index): Ditto. |
| (pru_get_ctable_base_index): Ditto. |
| (pru_get_ctable_base_offset): Ditto. |
| (pru_print_operand_address): Ditto. |
| |
| 2025-07-19 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR target/119100 |
| * config/riscv/autovec-opt.md (*vfwnmacc_vf_<mode>): New pattern. |
| (*vfwnmsac_vf_<mode>): New pattern. |
| * config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add support for a |
| vec_duplicate in a neg. |
| |
| 2025-07-19 Artemiy Volkov <artemiyv@acm.org> |
| |
| * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Protect |
| from a NULL PREV_SET or CURR_SET. |
| |
| 2025-07-19 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-passes.cc (avr_optimize_casesi): Fuse |
| get_insns() with end_sequence(). |
| |
| 2025-07-18 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec.md (avg<mode>3_ceil): Add new pattern |
| of avg3_ceil for RVV DImode |
| |
| 2025-07-18 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/117423 |
| * tree-sra.cc (analyze_access_subtree): Fix computation of grp_covered |
| flag. |
| |
| 2025-07-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121126 |
| * tree-vect-stmts.cc (vect_analyze_stmt): Analyze the |
| live lane extract for LC PHIs that are vect_internal_def. |
| |
| 2025-07-18 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_live_operation_1): |
| Remove stmt_info and ncopies parameters. Remove !slp_node |
| paths. |
| (vectorizable_live_operation): Remove !slp_node paths. |
| |
| 2025-07-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120924 |
| * params.opt (uninit-max-chain-len): Up from 8 to 12. |
| |
| 2025-07-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121048 |
| * tree-vect-loop.cc (vect_determine_vectype_for_stmt_1): |
| Remove rejecting vector(1) vector types. |
| (vect_set_stmts_vectype): Likewise. |
| * tree-vect-slp.cc (vect_make_slp_decision): Only |
| count instances with non-vector(1) root towards whether |
| we have any interesting instances to vectorize. |
| |
| 2025-07-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/121131 |
| * gimple-fold.cc (fold_nonarray_ctor_reference): Use |
| TREE_INT_CST_LOW (TYPE_SIZE ()) instead of |
| GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE ()) for BLKmode BITINT_TYPEs. |
| Don't compute encoding_size at all for little endian targets. |
| |
| 2025-07-17 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/121095 |
| * gcse.cc (execute_hardreg_pre): Skip if the hardreg which is never live. |
| |
| 2025-07-17 Filip Kastl <fkastl@suse.cz> |
| |
| * tree-ssa-structalias.cc (lookup_vi_for_tree): Fix GNU style. |
| (process_constraint): Fix GNU style. |
| (get_constraint_for_component_ref): Fix GNU style. |
| (get_constraint_for_1): Fix GNU style. |
| (get_function_part_constraint): Fix GNU style. |
| (handle_lhs_call): Fix GNU style. |
| (find_func_aliases_for_builtin_call): Fix GNU style. |
| (find_func_aliases): Fix GNU style. |
| (find_func_clobbers): Fix GNU style. |
| (struct shared_bitmap_hasher): Fix GNU style. |
| (shared_bitmap_hasher::hash): Fix GNU style. |
| (pt_solution_includes_global): Fix GNU style. |
| (init_base_vars): Fix GNU style. |
| (visit_loadstore): Fix GNU style. |
| (compute_dependence_clique): Fix GNU style. |
| (struct pt_solution): Fix GNU style. |
| (ipa_pta_execute): Fix GNU style. |
| |
| 2025-07-17 Filip Kastl <fkastl@suse.cz> |
| |
| * pta-andersen.cc (struct constraint_graph): Fix GNU style. |
| (constraint_equal): Fix GNU style. |
| (set_union_with_increment): Fix GNU style. |
| (insert_into_complex): Fix GNU style. |
| (merge_node_constraints): Fix GNU style. |
| (unify_nodes): Fix GNU style. |
| (do_ds_constraint): Fix GNU style. |
| (scc_info::scc_info): Fix GNU style. |
| (find_indirect_cycles): Fix GNU style. |
| (equiv_class_lookup_or_add): Fix GNU style. |
| (label_visit): Fix GNU style. |
| (dump_pred_graph): Fix GNU style. |
| (perform_var_substitution): Fix GNU style. |
| (eliminate_indirect_cycles): Fix GNU style. |
| (solve_graph): Fix GNU style. |
| (solve_constraints): Fix GNU style. |
| * tree-ssa-structalias.cc (first_vi_for_offset): Fix GNU style. |
| (debug_constraint): Fix GNU style. |
| * tree-ssa-structalias.h (struct constraint_expr): Fix GNU |
| style. |
| (struct variable_info): Fix GNU style. |
| |
| 2025-07-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-expand.cc (ix86_expand_ternlog): Don't change |
| mode for XOR. |
| |
| 2025-07-17 Filip Kastl <fkastl@suse.cz> |
| |
| * Makefile.in: Add pta-andersen.o. |
| * tree-ssa-structalias.cc (create_variable_info_for): Just move |
| around. |
| (unify_nodes): Move to pta-andersen.cc. |
| (struct constraint): Move to tree-ssa-structalias.h. |
| (EXECUTE_IF_IN_NONNULL_BITMAP): Move to pta-andersen.cc. |
| (struct variable_info): Move to tree-ssa-structalias.h. |
| (struct constraint_stats): Move to tree-ssa-structalias.h. |
| (first_vi_for_offset): External linkage, move to namespace |
| pointer_analysis. |
| (first_or_preceding_vi_for_offset): External linkage, move to namespace |
| pointer_analysis. |
| (dump_constraint): External linkage, move to namespace |
| pointer_analysis. |
| (debug_constraint): External linkage, move to namespace |
| pointer_analysis. |
| (dump_constraints): External linkage, move to namespace |
| pointer_analysis. |
| (debug_constraints): External linkage, move to namespace |
| pointer_analysis. |
| (lookup_vi_for_tree): Move around inside tree-ssa-structalias.cc. |
| (type_can_have_subvars): Move around inside tree-ssa-structalias.cc. |
| (make_param_constraints): Move around inside tree-ssa-structalias.cc. |
| (dump_solution_for_var): External linkage, move to namespace |
| pointer_analysis. find (...) -> var_rep[...]. |
| (get_varinfo): Move to tree-ssa-structalias.h. |
| (debug_solution_for_var): External linkage, move to namespace |
| pointer_analysis. |
| (vi_next): Move to tree-ssa-structalias.h. |
| (dump_sa_stats): External linkage, move to namespace pointer_analysis. |
| (new_var_info): Just move around. |
| (dump_sa_points_to_info): External linkage, move to namespace |
| pointer_analysis. |
| (debug_sa_points_to_info): External linkage, move to namespace |
| pointer_analysis. |
| (get_call_vi): Just move around. |
| (dump_varinfo): External linkage, move to namespace pointer_analysis. |
| (lookup_call_use_vi): Just move around. |
| (lookup_call_clobber_vi): Just move around. |
| (get_call_use_vi): Just move around. |
| (get_call_clobber_vi): Just move around. |
| (enum constraint_expr_type): Move to tree-ssa-structalias.h. |
| (struct constraint_expr): Move to tree-ssa-structalias.h. |
| (UNKNOWN_OFFSET): Move to tree-ssa-structalias.h. |
| (get_constraint_for_1): Just move around. |
| (get_constraint_for): Just move around. |
| (get_constraint_for_rhs): Just move around. |
| (do_deref): Just move around. |
| (constraint_pool): Just move around. |
| (struct constraint_graph): Move to pta-andersen.h. |
| (FIRST_REF_NODE): Move to pta-andersen.cc. |
| (LAST_REF_NODE): Move to pta-andersen.cc. |
| (find): Move to pta-andersen.cc. |
| (unite): Move to pta-andersen.cc. |
| (new_constraint): Just move around. |
| (debug_constraint_graph): External linkage, move to namespace |
| pointer_analysis. |
| (debug_varinfo): External linkage, move to namespace pointer_analysis. |
| (debug_varmap): External linkage, move to namespace pointer_analysis. |
| (dump_constraint_graph): External linkage, move to namespace |
| pointer_analysis. |
| (constraint_expr_equal): Move to pta-andersen.cc. |
| (constraint_expr_less): Move to pta-andersen.cc. |
| (constraint_less): Move to pta-andersen.cc. |
| (constraint_equal): Move to pta-andersen.cc. |
| (constraint_vec_find): Move to pta-andersen.cc. |
| (constraint_set_union): Move to pta-andersen.cc. |
| (solution_set_expand): Move to pta-andersen.cc. |
| (set_union_with_increment): Move to pta-andersen.cc. |
| (insert_into_complex): Move to pta-andersen.cc. |
| (merge_node_constraints): Move to pta-andersen.cc. |
| (clear_edges_for_node): Move to pta-andersen.cc. |
| (merge_graph_nodes): Move to pta-andersen.cc. |
| (add_implicit_graph_edge): Move to pta-andersen.cc. |
| (add_pred_graph_edge): Move to pta-andersen.cc. |
| (add_graph_edge): Move to pta-andersen.cc. |
| (init_graph): Move to pta-andersen.cc. Initialize |
| predbitmap_obstack here. |
| (build_pred_graph): Move to pta-andersen.cc. |
| (build_succ_graph): Move to pta-andersen.cc. |
| (class scc_info): Move to pta-andersen.cc. |
| (scc_visit): Move to pta-andersen.cc. |
| (solve_add_graph_edge): Move to pta-andersen.cc. |
| (do_sd_constraint): Move to pta-andersen.cc. |
| (do_ds_constraint): Move to pta-andersen.cc. |
| (do_complex_constraint): Move to pta-andersen.cc. |
| (scc_info::scc_info): Move to pta-andersen.cc. |
| (scc_info::~scc_info): Move to pta-andersen.cc. |
| (find_indirect_cycles): Move to pta-andersen.cc. |
| (topo_visit): Move to pta-andersen.cc. |
| (compute_topo_order): Move to pta-andersen.cc. |
| (struct equiv_class_hasher): Move to pta-andersen.cc. |
| (equiv_class_hasher::hash): Move to pta-andersen.cc. |
| (equiv_class_hasher::equal): Move to pta-andersen.cc. |
| (equiv_class_lookup_or_add): Move to pta-andersen.cc. |
| (condense_visit): Move to pta-andersen.cc. |
| (label_visit): Move to pta-andersen.cc. |
| (dump_pred_graph): External linkage, move to namespace |
| pointer_analysis. |
| (dump_varmap): External linkage, move to namespace pointer_analysis. |
| (perform_var_substitution): Move to pta-andersen.cc. |
| (free_var_substitution_info): Move to pta-andersen.cc. |
| (find_equivalent_node): Move to pta-andersen.cc. |
| (unite_pointer_equivalences): Move to pta-andersen.cc. |
| (move_complex_constraints): Move to pta-andersen.cc. |
| (rewrite_constraints): Move to pta-andersen.cc. |
| (eliminate_indirect_cycles): Move to pta-andersen.cc. |
| (solve_graph): Move to pta-andersen.cc. |
| (set_uids_in_ptset): find (...) -> var_rep[...]. |
| (find_what_var_points_to): find (...) -> var_rep[...]. |
| (init_alias_vars): Don't initialize predbitmap_obstack here. |
| (remove_preds_and_fake_succs): Move to pta-andersen.cc. |
| (solve_constraints): Move to pta-andersen.cc. Call |
| delete_graph() at the end. |
| (delete_points_to_sets): Don't delete graph here. Delete var_rep here. |
| (visit_loadstore): find (...) -> var_rep[...]. |
| (compute_dependence_clique): find (...) -> var_rep[...]. |
| (ipa_pta_execute): find (...) -> var_rep[...]. |
| * pta-andersen.cc: New file. |
| * pta-andersen.h: New file. |
| * tree-ssa-structalias.h: New file. |
| |
| 2025-07-17 Richard Sandiford <richard.sandiford@arm.com> |
| Yury Khrustalev <yury.khrustalev@arm.com> |
| |
| * doc/sourcebuild.texi (aarch64_sme_hw): Document. |
| |
| 2025-07-17 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.md (signbit_tdc): Rename expander. |
| (signbit<mode>2): New expander. |
| (signbit<mode>2_z10): New expander. |
| |
| 2025-07-17 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc (s390_register_move_cost): Add costing for |
| vlvg/vlgv. |
| |
| 2025-07-17 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/vector.md (bhfgq): Add scalar modes. |
| (*movdi<mode>_zero_extend_A): New insn. |
| (*movsi<mode>_zero_extend_A): New insn. |
| (*movdi<mode>_zero_extend_B): New insn. |
| (*movsi<mode>_zero_extend_B): New insn. |
| |
| 2025-07-17 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/121064 |
| * config/loongarch/lsx.md (lsx_vshuf_<lsxfmt_f>): Add '@' to |
| generate a mode-aware helper. Use <VIMODE> as the mode of the |
| operand 1 (selector). |
| * config/loongarch/lasx.md (lasx_xvshuf_<lasxfmt_f>): Likewise. |
| * config/loongarch/loongarch.cc |
| (loongarch_try_expand_lsx_vshuf_const): Create a new pseudo for |
| the selector. Use the mode-aware helper to simplify the code. |
| (loongarch_expand_vec_perm_const): Likewise. |
| |
| 2025-07-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Reject |
| single-lane vector types. |
| |
| 2025-07-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121035 |
| * tree-ssa-pre.cc (find_or_generate_expression): Handle |
| values without expression. |
| |
| 2025-07-16 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-state-to-dot.cc (state_diagram::m_show_tags): Drop |
| unused field. |
| |
| 2025-07-16 Kwok Cheung Yeung <kcyeung@baylibre.com> |
| |
| * gimplify.cc (gimplify_omp_affinity): Use OMP_ITERATOR_DECL_P. |
| (compute_omp_iterator_count): New. |
| (build_omp_iterator_loop): New. |
| (gimplify_omp_depend): Use OMP_ITERATOR_DECL_P, |
| compute_omp_iterator_count and build_omp_iterator_loop. |
| * tree-inline.cc (copy_tree_body_r): Use OMP_ITERATOR_DECL_P. |
| * tree-pretty-print.cc (dump_omp_clause): Likewise. |
| * tree.h (OMP_ITERATOR_DECL_P): New macro. |
| |
| 2025-07-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/121062 |
| * config/i386/i386.cc (ix86_convert_const_vector_to_integer): |
| Handle E_V1SImode and E_V1DImode. |
| * config/i386/mmx.md (V_16_32_64): Add V1SI, V2BF and V1DI. |
| (mmxinsnmode): Add V1DI and V1SI. |
| Add V_16_32_64 splitter for constant vector loads from constant |
| vector pool. |
| (V_16_32_64:*mov<mode>_imm): Moved after V_16_32_64 splitter. |
| Replace lowpart_subreg with adjust_address. |
| |
| 2025-07-16 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120881 |
| PR testsuite/121078 |
| * config/i386/i386-options.cc (ix86_option_override_internal): |
| Warn -pg without -mfentry only on glibc targets. |
| |
| 2025-07-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-expand.cc (ix86_expand_move): |
| Use MEM_P predicate instead of open coding it. |
| (ix86_erase_embedded_rounding): |
| Use NONJUMP_INSN_P predicate instead of open coding it. |
| * config/i386/i386-features.cc (convertible_comparison_p): |
| Use REG_P predicate instead of open coding it. |
| * config/i386/i386.cc (ix86_rtx_costs): |
| Use SUBREG_P predicate instead of open coding it. |
| |
| 2025-07-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.cc (symbolic_reference_mentioned_p): |
| Use LABEL_REF_P predicate instead of open coding it. |
| (ix86_legitimate_constant_p): Ditto. |
| (legitimate_pic_address_disp_p): Ditto. |
| (ix86_legitimate_address_p): Ditto. |
| (legitimize_pic_address): Ditto. |
| (ix86_print_operand): Ditto. |
| (ix86_print_operand_address_as): Ditto. |
| (ix86_rip_relative_addr_p): Ditto. |
| * config/i386/i386.h (SYMBOLIC_CONST): Ditto. |
| * config/i386/i386.md (*anddi_1 to *andsi_1_zext splitter): Ditto. |
| * config/i386/predicates.md (symbolic_operand): Ditto. |
| (local_symbolic_operand): Ditto. |
| (vsib_address_operand): Ditto. |
| |
| 2025-07-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-expand.cc (ix86_expand_move): |
| Use SYMBOL_REF_P predicate instead of open coding it. |
| (ix86_split_long_move): Ditto. |
| (construct_plt_address): Ditto. |
| (ix86_expand_call): Ditto. |
| (ix86_notrack_prefixed_insn_p): Ditto. |
| * config/i386/i386-features.cc |
| (rest_of_insert_endbr_and_patchable_area): Ditto. |
| * config/i386/i386.cc (symbolic_reference_mentioned_p): Ditto. |
| (ix86_force_load_from_GOT_p): Ditto. |
| (ix86_legitimate_constant_p): Ditto. |
| (legitimate_pic_operand_p): Ditto. |
| (legitimate_pic_address_disp_p): Ditto. |
| (ix86_legitimate_address_p): Ditto. |
| (legitimize_pic_address): Ditto. |
| (ix86_legitimize_address): Ditto. |
| (ix86_delegitimize_tls_address): Ditto. |
| (ix86_print_operand): Ditto. |
| (ix86_print_operand_address_as): Ditto. |
| (ix86_rip_relative_addr_p): Ditto. |
| (symbolic_base_address_p): Ditto. |
| * config/i386/i386.h (SYMBOLIC_CONST): Ditto. |
| * config/i386/i386.md (*anddi_1 to *andsi_1_zext splitter): Ditto. |
| * config/i386/predicates.md (symbolic_operand): Ditto. |
| (local_symbolic_operand): Ditto. |
| (local_func_symbolic_operand): Ditto. |
| |
| 2025-07-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-expand.cc (ix86_expand_vector_logical_operator): |
| Use CONST_VECTOR_P instead of open coding it. |
| (ix86_expand_int_sse_cmp): Ditto. |
| (ix86_extract_perm_from_pool_constant): Ditto. |
| (ix86_split_to_parts): Ditto. |
| (const_vector_equal_evenodd_p): Ditto. |
| * config/i386/i386.cc (ix86_print_operand): Ditto. |
| * config/i386/predicates.md (zero_extended_scalar_load_operand): Ditto. |
| (float_vector_all_ones_operand): Ditto. |
| * config/i386/sse.md (avx512vl_vextractf128<mode>): Ditto. |
| |
| 2025-07-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121049 |
| * internal-fn.h (widening_evenodd_fn_p): Declare. |
| * internal-fn.cc (widening_evenodd_fn_p): New function. |
| * tree-vect-stmts.cc (vectorizable_conversion): When using |
| an even/odd widening function disable loop masking. |
| |
| 2025-07-16 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/119920 |
| PR tree-optimization/112324 |
| PR tree-optimization/110015 |
| * tree-if-conv.cc (find_different_opnum): New function. |
| (factor_out_operators): New function. |
| (predicate_scalar_phi): Call factor_out_operators when |
| there is only 2 elements of a phi. |
| |
| 2025-07-16 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-if-conv.cc (fold_build_cond_expr): Return early if lhs and rhs |
| are the same. |
| |
| 2025-07-16 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-if-conv.cc (combine_blocks): Remove predicated |
| dynamic array. |
| |
| 2025-07-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121116 |
| * tree-vect-loop.cc (vectorizable_induction): Use the |
| step vector element type for further processing. |
| |
| 2025-07-16 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-valu.md (add<mode>3_vcc_dup<exec_vcc>): Change |
| operand 2 to allow gcn_alu_operand. Swap the operands in the VCC |
| update RTL. |
| (add<mode>3_vcc_zext_dup): Likewise. |
| (add<mode>3_vcc_zext_dup_exec): Likewise. |
| (add<mode>3_vcc_zext_dup2): Likewise. |
| (add<mode>3_vcc_zext_dup2_exec): Likewise. |
| |
| 2025-07-16 Spencer Abson <spencer.abson@arm.com> |
| |
| PR target/117850 |
| * config/aarch64/aarch64-builtins.cc (LO_HI_PAIRINGS): New, group the |
| lo/hi pairs from aarch64-builtin-pairs.def. |
| (aarch64_get_highpart_builtin): New function. |
| (aarch64_v128_highpart_ref): New function, helper to look for vector |
| highparts. |
| (aarch64_build_vector_cst): New function, helper to build duplicated |
| VECTOR_CSTs. |
| (aarch64_fold_lo_call_to_hi): New function. |
| (aarch64_general_gimple_fold_builtin): Add cases for the lo builtins |
| in aarch64-builtin-pairs.def. |
| * config/aarch64/aarch64-builtin-pairs.def: New file, declare the |
| parirs of lowpart-operating and highpart-operating builtins. |
| |
| 2025-07-16 Alfie Richards <alfie.richards@arm.com> |
| |
| * tree.cc (get_clone_versions): New function. |
| (get_clone_attr_versions): New function. |
| (get_version): New function. |
| * tree.h (get_clone_versions): New function. |
| (get_clone_attr_versions): New function. |
| (get_target_version): New function. |
| |
| 2025-07-16 Alfie Richards <alfie.richards@arm.com> |
| |
| * attribs.cc (make_attribute): Change arguments. |
| * attribs.h (make_attribute): Change arguments. |
| |
| 2025-07-16 Alfie Richards <alfie.richards@arm.com> |
| |
| * pretty-print.cc (format_phase_2): Add support for string_slice. |
| * vec.cc (string_slice::tokenize): New static method. |
| (string_slice::strcmp): New static method. |
| (string_slice::strip): New method. |
| (test_string_slice_initializers): New test. |
| (test_string_slice_tokenize): Ditto. |
| (test_string_slice_strcmp): Ditto. |
| (test_string_slice_equality): Ditto. |
| (test_string_slice_inequality): Ditto. |
| (test_string_slice_invalid): Ditto. |
| (test_string_slice_strip): Ditto. |
| (vec_cc_tests): Add new tests. |
| * vec.h (class string_slice): New class. |
| |
| 2025-07-16 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR middle-end/121065 |
| * cfgexpand.cc (expand_debug_expr): Allow fixed-point modes for |
| RDIV_EXPR. |
| * optabs-tree.cc (optab_for_tree_code): Ditto. |
| |
| 2025-07-16 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/120297 |
| * config/riscv/riscv-vsetvl.def: Do not forget ratio demand of |
| previous vsetvl. |
| |
| 2025-07-16 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-sve2.md (*aarch64_sve2_bsl2n_eon<mode>): |
| New pattern. |
| (*aarch64_sve2_eon_bsl2n_unpred<mode>): Likewise. |
| |
| 2025-07-16 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-sve2.md (*aarch64_sve2_unpred_nor<mode>): |
| New define_insn. |
| (*aarch64_sve2_nand_unpred<mode>): Likewise. |
| |
| 2025-07-16 Jeremy Rifkin <jeremy@rifkin.dev> |
| |
| PR c/82134 |
| * gimplify.cc (gimplify_modify_expr): Add suppress_warning |
| * tree-cfg.cc (do_warn_unused_result): Check warning_suppressed_p |
| |
| 2025-07-16 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/i386-common.cc |
| (OPTION_MASK_ISA2_AMX_AVX512_SET): Do not set AVX10.2. |
| (OPTION_MASK_ISA2_AVX10_2_UNSET): Remove AMX-AVX512 unset. |
| (OPTION_MASK_ISA2_AVX512F_UNSET): Unset AMX-AVX512. |
| (ix86_handle_option): Imply AVX512F for AMX-AVX512. |
| |
| 2025-07-16 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec.md (avg<mode>3_floor): Add new |
| pattern of avg3_floor for rvv DImode. |
| |
| 2025-07-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * spellcheck.cc: Define INCLUDE_ALGORITHM. |
| (CASE_COST, BASE_COST): Convert to... |
| (case_cost, base_cost): ...these, in an anonymous namespace. |
| (get_edit_distance): Update for above. Use std::min rather than |
| MIN. |
| (get_edit_distance_cutoff): Likewise. Use std::max rather than |
| MAX. |
| (selftest::test_edit_distances): Update for BASE_COST renaming. |
| (selftest::get_old_cutoff): Likewise. Use std::max. |
| (selftest::assert_not_suggested_for): Use nullptr. |
| (selftest::test_find_closest_string): Likewise. |
| * spellcheck.h: Replace TYPE with StringLikeType in templates, |
| and use CamelCase. |
| |
| 2025-07-15 David Malcolm <dmalcolm@redhat.com> |
| |
| PR sarif-replay/120792 |
| * auto-obstack.h: New file, based on material taken from |
| pretty-print.cc. |
| * diagnostic-digraphs.h |
| (diagnostics::digraphs::digraph::set_description): New. |
| (diagnostics::digraphs::node::set_label): New. |
| * doc/libgdiagnostics/topics/compatibility.rst: Add |
| LIBGDIAGNOSTICS_ABI_4. |
| * doc/libgdiagnostics/topics/diagnostics.rst |
| (diagnostic_finish_via_msg_buf): Document new entrypoint. |
| * doc/libgdiagnostics/topics/execution-paths.rst |
| (diagnostic_execution_path_add_event_via_msg_buf): Document new |
| entrypoint. |
| * doc/libgdiagnostics/topics/index.rst: Add message-buffers.rst. |
| * doc/libgdiagnostics/topics/message-buffers.rst: New file. |
| * doc/libgdiagnostics/topics/message-formatting.rst: Add note |
| about message buffers. |
| * doc/libgdiagnostics/topics/physical-locations.rst |
| (diagnostic_add_location_with_label_via_msg_buf): Add. |
| * doc/libgdiagnostics/tutorial/07-execution-paths.rst: Link to |
| next section. |
| * doc/libgdiagnostics/tutorial/08-message-buffers.rst: New file. |
| * doc/libgdiagnostics/tutorial/index.rst: Add |
| 08-message-buffers.rst. |
| * libgdiagnostics++.h (libgdiagnostics::message_buffer): New |
| class. |
| (libgdiagnostics::execution_path::add_event_via_msg_buf): New. |
| (libgdiagnostics::diagnostic::add_location_with_label): New. |
| (libgdiagnostics::diagnostic::finish_via_msg_buf): New. |
| (libgdiagnostics::graph::set_description): New overload. |
| (libgdiagnostics::graph::add_edge): New overload. |
| (libgdiagnostics::node::set_label): New overload. |
| * libgdiagnostics-private.h |
| (private_diagnostic_execution_path_add_event_2): Drop decl. |
| (private_diagnostic_execution_path_add_event_3): New decl. |
| * libgdiagnostics.cc: Include "pretty-print-format-impl.h", |
| "pretty-print-markup.h", and "auto-obstack.h". |
| (class copying_token_printer): New. |
| (struct diagnostic_message_buffer): New. |
| (class pp_element_message_buffer): New. |
| (libgdiagnostics_path_event::libgdiagnostics_path_event): Replace |
| params "gmsgid" and "args" with "msg_buf". |
| (libgdiagnostics_path_event::print_desc): Reimplement using |
| pp_element_message_buffer to replay m_msg_buf into "pp". |
| (libgdiagnostics_path_event::m_desc_uncolored): Drop field. |
| (libgdiagnostics_path_event::m_desc_colored): Drop field. |
| (libgdiagnostics_path_event::msg_buf): New field. |
| (diagnostic_execution_path::add_event_va): Reimplement. |
| (diagnostic_execution_path::add_event_via_msg_buf): New. |
| (diagnostic::add_location_with_label): New overload, using |
| msg_buf. |
| (diagnostic_manager::emit): Reimplement with... |
| (diagnostic_manager::emit_va): ...this. |
| (diagnostic_manager::emit_msg_buf): New. |
| (FAIL_IF_NULL): Rename "p" to "ptr_arg". |
| (diagnostic_finish_va): Update to use diagnostic_manager::emit_va. |
| (diagnostic_graph::add_node_with_id): Rename "id" to "node_id". |
| (diagnostic_graph_add_node): Likewise. |
| (diagnostic_graph_add_edge): Rename "id" to "edge_id". |
| (diagnostic_graph_get_node_by_id): Rename "id" to "node_id". |
| (diagnostic_graph_get_edge_by_id): Rename "id" to "edge_id". |
| (private_diagnostic_execution_path_add_event_2): Delete. |
| (diagnostic_message_buffer_new): New public entrypoint. |
| (diagnostic_message_buffer_release): Likewise. |
| (diagnostic_message_buffer_append_str): Likewise. |
| (diagnostic_message_buffer_append_text): Likewise. |
| (diagnostic_message_buffer_append_byte): Likewise. |
| (diagnostic_message_buffer_append_printf): Likewise. |
| (diagnostic_message_buffer_append_event_id): Likewise. |
| (diagnostic_message_buffer_begin_url): Likewise. |
| (diagnostic_message_buffer_end_url): Likewise. |
| (diagnostic_message_buffer_begin_quote): Likewise. |
| (diagnostic_message_buffer_end_quote): Likewise. |
| (diagnostic_message_buffer_begin_color): Likewise. |
| (diagnostic_message_buffer_end_color): Likewise. |
| (diagnostic_message_buffer_dump): Likewise. |
| (diagnostic_finish_via_msg_buf): Likewise. |
| (diagnostic_add_location_with_label_via_msg_buf): Likewise. |
| (diagnostic_execution_path_add_event_via_msg_buf): Likewise. |
| (diagnostic_graph_set_description_via_msg_buf): Likewise. |
| (diagnostic_graph_add_edge_via_msg_buf): Likewise. |
| (diagnostic_node_set_label_via_msg_buf): Likewise. |
| (private_diagnostic_execution_path_add_event_3): New private |
| entrypoint. |
| * libgdiagnostics.h (LIBGDIAGNOSTICS_PARAM_FORMAT_STRING): New macro. |
| (LIBGDIAGNOSTICS_PARAM_PRINTF_FORMAT_STRING): New macro. |
| (diagnostic_message_buffer): New typedef. |
| (LIBDIAGNOSTICS_HAVE_diagnostic_message_buffer): New define. |
| (diagnostic_message_buffer_new): New decl. |
| (diagnostic_message_buffer_release): New decl. |
| (diagnostic_message_buffer_append_str): New decl. |
| (diagnostic_message_buffer_append_text): New decl. |
| (diagnostic_message_buffer_append_byte): New decl. |
| (diagnostic_message_buffer_append_printf): New decl. |
| (diagnostic_message_buffer_append_event_id): New decl. |
| (diagnostic_message_buffer_begin_url): New decl. |
| (diagnostic_message_buffer_end_url): New decl. |
| (diagnostic_message_buffer_begin_quote): New decl. |
| (diagnostic_message_buffer_end_quote): New decl. |
| (diagnostic_message_buffer_begin_color): New decl. |
| (diagnostic_message_buffer_end_color): New decl. |
| (diagnostic_message_buffer_dump): New decl. |
| (diagnostic_finish_via_msg_buf): New decl. |
| (diagnostic_add_location_with_label_via_msg_buf): New decl. |
| (diagnostic_execution_path_add_event_via_msg_buf): New decl. |
| (diagnostic_graph_set_description_via_msg_buf): New decl. |
| (diagnostic_graph_add_edge_via_msg_buf): New decl. |
| (diagnostic_node_set_label_via_msg_buf): New decl. |
| * libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_3): Drop |
| private_diagnostic_execution_path_add_event_2. |
| (LIBGDIAGNOSTICS_ABI_4): New. |
| * libsarifreplay.cc (class annotation): Use |
| libgdiagnostics::message_buffer rather than label_text. |
| (add_any_annotations): Likewise. |
| (sarif_replayer::handle_result_obj): Likewise. |
| (make_plain_text_within_result_message): Likewise. |
| (handle_thread_flow_location_object): Likewise. |
| (handle_location_object): Likewise. |
| (sarif_replayer::handle_graph_object): Likewise. |
| (sarif_replayer::handle_node_object): Likewise. |
| (sarif_replayer::handle_edge_object): Likewise. |
| * pretty-print-format-impl.h (pp_token_list::push_back_byte): New |
| decl. |
| * pretty-print-markup.h (pp_markup::context::begin_url): New decl. |
| (pp_markup::context::end_url): New decl. |
| (pp_markup::context::add_event_id): New decl. |
| * pretty-print.cc: Include "auto-obstack.h". |
| (pp_token_list::push_back_byte): New. |
| (struct auto_obstack): Move to auto-obstack.h. |
| (default_token_printer): Make non-static. |
| (pp_markup::context::begin_url): New. |
| (pp_markup::context::end_url): New. |
| (pp_markup::context::add_event_id): New. |
| |
| 2025-07-15 Umesh Kalappa <ukalappa.mips@gmail.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_CORE): Updated the supported march. |
| * config/riscv/riscv-ext-mips.def (DEFINE_RISCV_EXT): |
| New file added for mips conditional mov extension. |
| * config/riscv/riscv-ext.def: Likewise. |
| * config/riscv/t-riscv: Generates riscv-ext.opt |
| * config/riscv/riscv-ext.opt: Generated file. |
| * config/riscv/riscv.cc (riscv_expand_conditional_move): Updated for mips cmov |
| and outlined some code that handle arch cond move. |
| * config/riscv/riscv.md (mov<mode>cc): updated expand for MIPS CCMOV. |
| * config/riscv/mips-insn.md: New file for mips-p8700 ccmov insn. |
| * doc/riscv-ext.texi: Updated for mips cmov. |
| |
| 2025-07-15 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * avoid-store-forwarding.cc (generate_bit_insert_sequence): |
| Remove adjustment of bitfield insertion's starting position |
| when BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN. |
| (process_store_forwarding): Update offset check in base reg |
| initialization to take into account the target's endianness. |
| |
| 2025-07-15 Soumya AR <soumyaa@nvidia.com> |
| |
| * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION): |
| Add AVOID_LDAPUR tuning flag. |
| * config/aarch64/aarch64.cc (aarch64_adjust_generic_arch_tuning): |
| Set AVOID_LDAPUR for architectures before armv8.8-a. |
| (aarch64_override_options_internal): Apply generic tuning adjustments |
| to generic_armv8_a_tunings and generic_armv9_a_tunings. |
| * config/aarch64/aarch64.h (TARGET_ENABLE_LDAPUR): New macro to |
| control LDAPUR usage based on RCPC2 and tuning flags. |
| * config/aarch64/aarch64.md: Add enable_ldapur attribute. |
| * config/aarch64/atomics.md (aarch64_atomic_load<mode>_rcpc): Modify |
| to emit LDAPUR for cores with RCPC2. |
| (*aarch64_atomic_load<ALLX:mode>_rcpc_zext): Likewise. |
| (*aarch64_atomic_load<ALLX:mode>_rcpc_sext): Update constraint to Ust. |
| * config/aarch64/tuning_models/cortexx925.h: Add AVOID_LDAPUR flag. |
| * config/aarch64/tuning_models/neoversev2.h: Likewise. |
| * config/aarch64/tuning_models/neoversev3.h: Likewise. |
| * config/aarch64/tuning_models/neoversev3ae.h: Likewise. |
| |
| 2025-07-15 Richard Biener <rguenther@suse.de> |
| Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/121059 |
| * tree-vect-stmts.cc (vectorizable_operation): Query |
| scalar_cond_masked_set with the correct number of masks. |
| |
| 2025-07-15 Jakub Jelinek <jakub@redhat.com> |
| Jason Merrill <jason@redhat.com> |
| |
| PR c/44677 |
| * common.opt (Wunused-but-set-parameter=, Wunused-but-set-variable=): |
| New options. |
| (Wunused-but-set-parameter, Wunused-but-set-variable): Turn into |
| aliases. |
| * common.opt.urls: Regenerate. |
| * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Use |
| OPT_Wunused_but_set_variable_ instead of OPT_Wunused_but_set_variable |
| and OPT_Wunused_but_set_parameter_ instead of |
| OPT_Wunused_but_set_parameter. |
| * gimple-ssa-store-merging.cc (find_bswap_or_nop_1): Remove unused |
| but set variable tmp. |
| * ipa-strub.cc (pass_ipa_strub::execute): Cast named_args to |
| (void) if ATTR_FNSPEC_DECONST_WATERMARK is not defined. |
| * doc/invoke.texi (Wunused-but-set-parameter=, |
| Wunused-but-set-variable=): Document new options. |
| (Wunused-but-set-parameter, Wunused-but-set-variable): Adjust |
| documentation now that they are just aliases. |
| |
| 2025-07-15 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-sme.md (@aarch64_sme_<faminmax_uns_op><mode>): |
| Change gating and comment. |
| |
| 2025-07-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| Revert: |
| 2025-07-11 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (*eor3qdi4): New |
| define_insn_and_split. |
| |
| 2025-07-15 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*fcm<cmp_op><mode>_and_combine): |
| Extend from SVE_FULL_F to SVE_F. |
| (*fcmuo<mode>_and_combine): Likewise. |
| (*fcm<cmp_op><mode>_bic_combine): Likewise. |
| (*fcm<cmp_op><mode>_nor_combine): Likewise. |
| (*fcmuo<mode>_bic_combine): Likewise. |
| (*fcmuo<mode>_nor_combine): Likewise. Move the comment here to |
| above fcmuo<mode>_bic_combine, since it applies to both patterns. |
| |
| 2025-07-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * tree.cc: Include memmodel.h. |
| |
| 2025-07-14 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-valu.md (vec_cmpu<mode>di_exec): Call gen_vec_cmp*, |
| not gen_vec_cmpu*. |
| |
| 2025-07-14 Richard Biener <rguenther@suse.de> |
| |
| Revert: |
| 2025-07-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121059 |
| * tree-vect-stmts.cc (vectorizable_operation): Record a |
| loop mask for mask AND operations. |
| |
| 2025-07-14 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/vector.md (reduc_plus_scal_<mode>): Implement. |
| (reduc_plus_scal_v2df): Implement. |
| (reduc_plus_scal_v4sf): Implement. |
| (REDUC_FMINMAX): New int iterator. |
| (reduc_fminmax_name): New int attribute. |
| (reduc_minmax): New code iterator. |
| (reduc_minmax_name): New code attribute. |
| (reduc_<reduc_fminmax_name>_scal_v2df): Implement. |
| (reduc_<reduc_fminmax_name>_scal_v4sf): Implement. |
| (reduc_<reduc_minmax_name>_scal_v2df): Implement. |
| (reduc_<reduc_minmax_name>_scal_v4sf): Implement. |
| (REDUCBIN): New code iterator. |
| (reduc_bin_insn): New code attribute. |
| (reduc_<reduc_bin_insn>_scal_v2di): Implement. |
| (reduc_<reduc_bin_insn>_scal_v4si): Implement. |
| (reduc_<reduc_bin_insn>_scal_v8hi): Implement. |
| (reduc_<reduc_bin_insn>_scal_v16qi): Implement. |
| |
| 2025-07-14 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/s390.cc (s390_option_override_internal): Remove override. |
| |
| 2025-07-14 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-valu.md (add<mode>3<exec_clobber>): Rename ... |
| (add<mode>3<exec>): ... to this, remove the clobber, and change the |
| instruction from v_add_co_u32 to v_add_u32. |
| (add<mode>3_dup<exec_clobber>): Rename ... |
| (add<mode>3_dup<exec>): ... to this, and likewise. |
| (sub<mode>3<exec_clobber>): Rename ... |
| (sub<mode>3<exec>): ... to this, and likewise |
| * config/gcn/gcn.md (addsi3): Remove the DI clobber, and change the |
| instruction from v_add_co_u32 to v_add_u32. |
| (addsi3_scc): Likewise. |
| (subsi3): Likewise, but for v_sub_co_u32. |
| (muldi3): Likewise. |
| |
| 2025-07-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121059 |
| * tree-vect-stmts.cc (vectorizable_operation): Record a |
| loop mask for mask AND operations. |
| |
| 2025-07-14 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Make sure widen mul has twice bitsize |
| of the inputs in SAT_MUL pattern. |
| |
| 2025-07-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/121015 |
| * config/i386/i386-features.cc (ix86_broadcast_inner): Check all |
| 0s/1s vectors with standard_sse_constant_p. |
| |
| 2025-07-14 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120881 |
| * config.in: Regenerated. |
| * configure: Likewise. |
| * configure.ac: Add --enable-x86-64-mfentry. |
| * config/i386/i386-options.cc (ix86_option_override_internal): |
| Enable __fentry__ in 64-bit mode if ENABLE_X86_64_MFENTRY is set |
| to 1. Warn -pg without -mfentry with shrink wrapping enabled. |
| * doc/install.texi: Document --enable-x86-64-mfentry. |
| |
| 2025-07-14 François-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR target/120645 |
| * config/darwin-driver.cc: Account for latest macOS numbering |
| scheme. |
| |
| 2025-07-14 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR target/119100 |
| * config/riscv/autovec-opt.md (*vfwmacc_vf_<mode>): New pattern to |
| handle both vfwmacc and vfwmsac. |
| (*extend_vf_<mode>): New pattern that serves as an intermediate combine |
| step. |
| * config/riscv/vector-iterators.md (vsubel): New mode attribute. This is |
| just the lower-case version of VSUBEL. |
| * config/riscv/vector.md (@pred_widen_mul_<optab><mode>_scalar): Reorder |
| and swap operands to match the RTL emitted by expand, i.e. first |
| float_extend then vec_duplicate. |
| |
| 2025-07-14 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-sme.md (@aarch64_sme_<faminmax_uns_op><mode>): |
| New patterns. |
| * config/aarch64/aarch64-sve-builtins-sme.def (svamin): New intrinsics. |
| (svamax): New intrinsics. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc (class faminmaximpl): New |
| class. |
| (svamin): New function. |
| (svamax): New function. |
| |
| 2025-07-14 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/i386.h (PTA_PANTHERLAKE): Revmoe KL and WIDEKL. |
| (PTA_CLEARWATERFOREST): Ditto. |
| * doc/invoke.texi: Revise documentation. |
| |
| 2025-07-13 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/120866 |
| * tree.cc: Add include to tm_p.h. |
| |
| 2025-07-13 Benjamin Wu <bwu25@cs.washington.edu> |
| |
| * gimple.h (GTMA_DOES_GO_IRREVOCABLE): Fix typo. |
| |
| 2025-07-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (function_instance::~function_instance): |
| Move down in source. |
| (string_table::get_cgraph_node): New member function with |
| logic broken out from ... |
| (function_instance::get_cgraph_node): ... here. |
| (match_with_target): Fix formating. |
| (function_instance::match): Fix formating; do not use iterators |
| after modifying map; remove incorrect set of warned flag. |
| (autofdo_source_profile::offline_external_functions): Keep |
| seen set up to date. |
| (function_instance::read_function_instance): Fix formating. |
| |
| 2025-07-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (mov<V_32:mode>): |
| Use nonimm_or_0_operand predicate for operand 1. |
| (*mov<V_32:mode>_internal): Ditto. |
| (movv2qi): Ditto. |
| (*movv2qi_internal): Ditto. Use ix86_hardreg_mov_ok |
| in insn condition. |
| |
| 2025-07-12 Xi Ruoyao <xry111@xry111.site> |
| |
| PR rtl-optimization/120983 |
| * lra-constraints.cc (process_alt_operands): Allow reloading |
| user hard registers unless the insn is an asm. |
| |
| 2025-07-11 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-html.cc: Include "diagnostic-format-sarif.h", |
| Replace include of "diagnostic-state.h" with includes of |
| "diagnostic-digraphs.h" and "diagnostic-state-graphs.h". |
| (html_generation_options::html_generation_options): Update for |
| field renaming. |
| (html_builder::m_body_element): New field. |
| (html_builder::html_builder): Initialize m_body_element. |
| (html_builder::maybe_make_state_diagram): Port from XML |
| implementation to state graph implementation. |
| (html_builder::make_element_for_diagnostic): Add any |
| per-diagnostic graphs. |
| (html_builder::add_graph): New. |
| (html_builder::emit_global_graph): New. |
| (html_output_format::report_global_digraph): New. |
| * diagnostic-format-html.h |
| (html_generation_options::m_show_state_diagram_xml): Replace |
| with... |
| (html_generation_options::m_show_state_diagrams_sarif): ...this. |
| (html_generation_options::m_show_state_diagram_dot_src): Rename |
| to... |
| (html_generation_options::m_show_state_diagrams_dot_src): ...this. |
| * diagnostic-format-sarif.cc: Include "diagnostic-digraphs.h" and |
| "diagnostic-state-graphs.h". |
| (sarif_builder::m_run_graphs): New field. |
| (sarif_result::on_nested_diagnostic): Update call to |
| make_location_object to pass arg by pointer. |
| (sarif_builder::sarif_builder): Initialize m_run_graphs. |
| (sarif_builder::report_global_digraph): New. |
| (sarif_builder::make_result_object): Add any graphs to |
| the result object. |
| (sarif_builder::make_locations_arr): Update call to |
| make_location_object to pass arg by pointer. |
| (sarif_builder::make_location_object): Pass param "loc_mgr" by |
| pointer rather than by reference so that it can be null, and |
| handle this case. |
| (copy_any_property_bag): New. |
| (make_sarif_graph): New. |
| (make_sarif_node): New. |
| (make_sarif_edge): New. |
| (sarif_property_bag::set_graph): New. |
| (populate_thread_flow_location_object): Port from XML |
| implementation to state graph implementation. |
| (make_run_object): Store any graphs. |
| (sarif_output_format::report_global_digraph): New. |
| (sarif_generation_options::sarif_generation_options): Rename |
| m_xml_state to m_state_graph. |
| (selftest::test_make_location_object): Update for change to |
| make_location_object. |
| * diagnostic-format-sarif.h: |
| (sarif_generation_options::m_xml_state): Replace with... |
| (sarif_generation_options::m_state_graph): ...this. |
| (class sarif_location_manager): Add forward decl. |
| (diagnostics::digraphs::digraph): New forward decl. |
| (diagnostics::digraphs::node): New forward decl. |
| (diagnostics::digraphs::edge): New forward decl. |
| (sarif_property_bag::set_graph): New decl. |
| (class sarif_graph): New. |
| (class sarif_node): New. |
| (class sarif_edge): New. |
| (make_sarif_graph): New decl. |
| (make_sarif_node): New decl. |
| (make_sarif_edge): New decl. |
| * diagnostic-format-text.h |
| (diagnostic_text_output_format::report_global_digraph): New. |
| * diagnostic-format.h |
| (diagnostic_output_format::report_global_digraph): New vfunc. |
| * diagnostic-digraphs.cc: New file. |
| * diagnostic-digraphs.h: New file. |
| * diagnostic-metadata.h (diagnostics::digraphs::lazy_digraphs): |
| New forward decl. |
| (diagnostic_metadata::diagnostic_metadata): Initialize |
| m_lazy_digraphs. |
| (diagnostic_metadata::set_lazy_digraphs): New. |
| (diagnostic_metadata::get_lazy_digraphs): New. |
| (diagnostic_metadata::m_lazy_digraphs): New field. |
| * diagnostic-output-spec.cc (sarif_scheme_handler::make_sink): |
| Update for XML to state graph changes. |
| (sarif_scheme_handler::make_sarif_gen_opts): Likewise. |
| (html_scheme_handler::make_sink): Rename "show-state-diagram-xml" |
| to "show-state-diagrams-sarif" and use pluralization consistently. |
| * diagnostic-path.cc: Replace include of "xml.h" with |
| "diagnostic-state-graphs.h". |
| (diagnostic_event::maybe_make_xml_state): Replace with... |
| (diagnostic_event::maybe_make_diagnostic_state_graph): ...this. |
| * diagnostic-path.h (diagnostics::digraphs::digraph): New forward |
| decl. |
| (diagnostic_event::maybe_make_xml_state): Replace with... |
| (diagnostic_event::maybe_make_diagnostic_state_graph): ...this. |
| * diagnostic-state-graphs.cc: New file. |
| * diagnostic-state-graphs.h: New file. |
| * diagnostic-state-to-dot.cc: Port implementation from XML to |
| state graphs. |
| * diagnostic-state.h: Deleted file. |
| * diagnostic.cc (diagnostic_context::report_global_digraph): New. |
| * diagnostic.h (diagnostics::digraphs::lazy_digraph): New forward |
| decl. |
| (diagnostic_context::report_global_digraph): New decl. |
| * doc/analyzer.texi (Debugging the Analyzer): Update to reflect |
| change from XML to state graphs. |
| * doc/invoke.texi ("sarif" diagnostics sink): Replace "xml-state" |
| with "state-graphs". |
| ("experimental-html" diagnostics sink): Replace |
| "show-state-diagrams-xml" with "show-state-diagrams-sarif" |
| * doc/libgdiagnostics/topics/compatibility.rst |
| (LIBGDIAGNOSTICS_ABI_3): New. |
| * doc/libgdiagnostics/topics/graphs.rst: New file. |
| * doc/libgdiagnostics/topics/index.rst: Add graphs.rst. |
| * graphviz.h (node_id::operator=): New. |
| * json.h (json::value::dyn_cast_string): New. |
| (json::object::get_num_keys): New accessor. |
| (json::object::get_key): New accessor. |
| (json::string::dyn_cast_string): New. |
| * libgdiagnostics++.h (class libgdiagnostics::graph): New. |
| (class libgdiagnostics::node): New. |
| (class libgdiagnostics::edge): New. |
| (class libgdiagnostics::diagnostic::take_graph): New. |
| (class libgdiagnostics::manager::take_global_graph): New. |
| (class libgdiagnostics::graph::set_description): New. |
| (class libgdiagnostics::graph::get_node_by_id): New. |
| (class libgdiagnostics::graph::get_edge_by_id): New. |
| (class libgdiagnostics::graph::add_edge): New. |
| (class libgdiagnostics::node::set_label): New. |
| (class libgdiagnostics::node::set_location): New. |
| (class libgdiagnostics::node::set_logical_location): New. |
| * libgdiagnostics-private.h: New file. |
| * libgdiagnostics.cc: Define INCLUDE_STRING. Include |
| "diagnostic-digraphs.h", "diagnostic-state-graphs.h", and |
| "libgdiagnostics-private.h". |
| (struct diagnostic_graph): New. |
| (struct diagnostic_node): New. |
| (struct diagnostic_edge): New. |
| (libgdiagnostics_path_event::libgdiagnostics_path_event): Add |
| state_graph param. |
| (libgdiagnostics_path_event::maybe_make_diagnostic_state_graph): |
| New. |
| (libgdiagnostics_path_event::m_state_graph): New field. |
| (diagnostic_execution_path::add_event_va): Add state_graph param. |
| (class prebuilt_digraphs): New. |
| (diagnostic::diagnostic): Use m_graphs in m_metadata. |
| (diagnostic::take_graph): New. |
| (diagnostic::get_graphs): New accessor. |
| (diagnostic::m_graphs): New field. |
| (diagnostic_manager::take_global_graph): New. |
| (diagnostic_execution_path_add_event): Update for new param to |
| add_event_va. |
| (diagnostic_execution_path_add_event_va): Likewise. |
| (diagnostic_graph::add_node_with_id): New public entrypoint. |
| (diagnostic_graph::add_edge_with_label): New public entrypoint. |
| (diagnostic_manager_new_graph): New public entrypoint. |
| (diagnostic_manager_take_global_graph): New public entrypoint. |
| (diagnostic_take_graph): New public entrypoint. |
| (diagnostic_graph_release): New public entrypoint. |
| (diagnostic_graph_set_description): New public entrypoint. |
| (diagnostic_graph_add_node): New public entrypoint. |
| (diagnostic_graph_add_edge): New public entrypoint. |
| (diagnostic_graph_get_node_by_id): New public entrypoint. |
| (diagnostic_graph_get_edge_by_id): New public entrypoint. |
| (diagnostic_node_set_location): New public entrypoint. |
| (diagnostic_node_set_label): New public entrypoint. |
| (diagnostic_node_set_logical_location): New public entrypoint. |
| (private_diagnostic_execution_path_add_event_2): New private |
| entrypoint. |
| (private_diagnostic_graph_set_property_bag): New private |
| entrypoint. |
| (private_diagnostic_node_set_property_bag): New private |
| entrypoint. |
| (private_diagnostic_edge_set_property_bag): New private |
| entrypoint. |
| * libgdiagnostics.h (diagnostic_graph): New typedef. |
| (diagnostic_node): New typedef. |
| (diagnostic_edge): New typedef. |
| (diagnostic_manager_new_graph): New decl. |
| (diagnostic_manager_take_global_graph): New decl. |
| (diagnostic_take_graph): New decl. |
| (diagnostic_graph_release): New decl. |
| (diagnostic_graph_set_description): New decl. |
| (diagnostic_graph_add_node): New decl. |
| (diagnostic_graph_add_edge): New decl. |
| (diagnostic_graph_get_node_by_id): New decl. |
| (diagnostic_graph_get_edge_by_id): New decl. |
| (diagnostic_node_set_label): New decl. |
| (diagnostic_node_set_location): New decl. |
| (diagnostic_node_set_logical_location): New decl. |
| * libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_3): New. |
| * libsarifreplay.cc: Include "libgdiagnostics-private.h". |
| (id_map): New "using". |
| (sarif_replayer::report_invalid_sarif): Update for change to |
| report_problem params. |
| (sarif_replayer::report_unhandled_sarif): Likewise. |
| (sarif_replayer::report_note): New. |
| (sarif_replayer::report_problem): Pass param "ref" by |
| pointer rather than reference and handle it being null. |
| (sarif_replayer::maybe_get_property_bag): New. |
| (sarif_replayer::maybe_get_property_bag_value): New. |
| (sarif_replayer::handle_run_obj): Handle run-level "graphs" as per |
| §3.14.20. |
| (sarif_replayer::handle_result_obj): Handle result-level "graphs" |
| as per §3.27.19. |
| (handle_thread_flow_location_object): Optionally handle graphs |
| stored in property "gcc/diagnostic_event/state_graph" as state |
| graphs. |
| (sarif_replayer::handle_graph_object): New. |
| (sarif_replayer::handle_node_object): New. |
| (sarif_replayer::handle_edge_object): New. |
| (sarif_replayer::get_graph_node_by_id_property): New. |
| * selftest-run-tests.cc (selftest::run_tests): Call |
| selftest::diagnostic_graph_cc_tests and |
| selftest::diagnostic_state_graph_cc_tests. |
| * selftest.h (selftest::diagnostic_graph_cc_tests): New decl. |
| (selftest::diagnostic_state_graph_cc_tests): New decl. |
| |
| 2025-07-11 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add diagnostic-digraphs.o and |
| diagnostic-state-graphs.o. |
| |
| 2025-07-11 David Malcolm <dmalcolm@redhat.com> |
| |
| * json.cc (json::object::clone): New. |
| (json::object::clone_as_object): New. |
| (json::array::clone): New. |
| (json::float_number::clone): New. |
| (json::integer_number::clone): New. |
| (json::string::clone): New. |
| (json::literal::clone): New. |
| (selftest::test_cloning): New test. |
| (selftest::json_cc_tests): Call it. |
| * json.h (json::value::clone): New vfunc. |
| (json::object::clone): New decl. |
| (json::object::clone_as_object): New decl. |
| (json::array::clone): New decl. |
| (json::float_number::clone): New decl. |
| (json::integer_number::clone): New decl. |
| (json::string::clone): New decl. |
| (json::literal::clone): New decl. |
| |
| 2025-07-11 David Malcolm <dmalcolm@redhat.com> |
| |
| * json.cc (string::string): When constructing from pointer and |
| length, ensure the new buffer is null-terminated. |
| (selftest::test_strcmp): New. |
| (selftest::json_cc_tests): Likewise. |
| |
| 2025-07-11 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/libgdiagnostics/topics/compatibility.rst |
| (_LIBGDIAGNOSTICS_ABI_2): Add missing anchor. |
| * doc/libgdiagnostics/topics/diagnostic-manager.rst |
| (diagnostic_manager_add_sink_from_spec): Add links to GCC's |
| documentation of "-fdiagnostics-add-output=". Fix parameter |
| markup. |
| (diagnostic_manager_set_analysis_target): Fix parameter markup. |
| Add link to SARIF spec. |
| * doc/libgdiagnostics/topics/logical-locations.rst: Markup fix. |
| * doc/libgdiagnostics/tutorial/02-physical-locations.rst: Clarify |
| wording of what "the source file" means, and that a range can't |
| have multiple files. |
| |
| 2025-07-11 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * lra-constraints.cc (process_address_1): When changing base reg |
| on a reg of the base class, fall back to reload of whole inner address. |
| (process_address): Constrain the iteration number. |
| |
| 2025-07-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/119064 |
| * doc/invoke.texi (Wc++26-compat): Document. |
| |
| 2025-07-11 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/121027 |
| * config/aarch64/aarch64.cc (aarch64_evpc_sve_tbl): Punt on 2-input |
| operations that can be handled by vec_perm. |
| |
| 2025-07-11 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (*eor3qdi4): New |
| define_insn_and_split. |
| |
| 2025-07-11 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (*bcaxqdi4): New |
| define_insn_and_split. |
| |
| 2025-07-11 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (eor3q<mode>4): Use VDQ_I mode |
| iterator. |
| |
| 2025-07-11 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (bcaxq<mode>4): Use VDQ_I mode |
| iterator. |
| |
| 2025-07-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121034 |
| * tree-vect-loop.cc (vectorizable_reduction): Cleanup |
| reduction chain following code. |
| |
| 2025-07-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * opts.cc (finish_options): Enable debug_nonbind_markers_p for |
| auto-profile. |
| * tree-cfg.cc (struct locus_discrim_map): Remove. |
| (struct locus_discrim_hasher): Remove. |
| (locus_discrim_hasher::hash): Remove. |
| (locus_discrim_hasher::equal): Remove. |
| (first_non_label_nondebug_stmt): Remove. |
| (build_gimple_cfg): Do not allocate discriminator tables. |
| (next_discriminator_for_locus): Remove. |
| (same_line_p): Remove. |
| (struct discrim_entry): New structure. |
| (assign_discriminator): Rewrite. |
| (assign_discriminators): Rewrite. |
| |
| 2025-07-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/114790 |
| * cgraph.cc (cgraph_update_edges_for_call_stmt_node): Resolve devirtualization |
| if call statement was optimized out or turned to direct call. |
| |
| 2025-07-11 Jakub Jelinek <jakub@redhat.com> |
| Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/121023 |
| * ipa-fnsummary.cc (compute_fn_summary): Disallow signature changes |
| on cfun->has_musttail functions. |
| |
| 2025-07-11 Hu, Lin1 <lin1.hu@intel.com> |
| |
| PR target/91384 |
| * config/i386/i386.md: Add new peeophole2 for optimize *negsi_1 |
| followed by *cmpsi_ccno_1 with APX_F. |
| |
| 2025-07-11 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Use |
| the LHS of a scalar stmt to determine mode and whether it is FP. |
| |
| 2025-07-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost): |
| Guard VF-based costing with !m_costing_for_scalar. |
| |
| 2025-07-10 Qing Zhao <qing.zhao@oracle.com> |
| |
| * internal-fn.cc (expand_ACCESS_WITH_SIZE): Update comments. |
| * internal-fn.def (ACCESS_WITH_SIZE): Update comments. |
| * tree-object-size.cc (access_with_size_object_size): Update comments. |
| Adjust the arguments per the new design. |
| |
| 2025-07-10 Qing Zhao <qing.zhao@oracle.com> |
| |
| PR middle-end/121000 |
| * internal-fn.cc (expand_ACCESS_WITH_SIZE): Update comments. |
| * internal-fn.def (ACCESS_WITH_SIZE): Update comments. |
| * tree-object-size.cc (access_with_size_object_size): Update comments. |
| Get the element_size from the 6th argument directly. |
| |
| 2025-07-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve2.md (aarch64_gather_ld1q): Replace with... |
| (@aarch64_gather_ld1q<mode>): ...this, parameterizing based on mode. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc |
| (svld1q_gather_impl::expand): Update accordingly. |
| (svst1q_scatter_impl::expand): Use aarch64_sve_reinterpret |
| instead of force_lowpart_subreg. |
| |
| 2025-07-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc: Include output.h. |
| (function_instance::set_call_location): Also sanity check |
| that location is known. |
| (raw_symbol_name): Two new static functions. |
| (dump_inline_stack): Use it. |
| (string_table::get_index_by_decl): Likewise. |
| (function_instance::get_cgraph_node): Likewise. |
| (function_instance::get_function_instance_by_decl): Fix typo |
| in warning; use raw names; fix lineno decoding. |
| (match_with_target): Add containing funciton parameter; |
| correctly output function and call location in warning. |
| (function_instance::lookup_count): Fix warning locations. |
| (function_instance::match): Fix warning locations; avoid |
| crash with mismatched callee; do not warn about broken callsites |
| twice. |
| (autofdo_source_profile::offline_external_functions): Use |
| raw_assembler_name. |
| (walk_block): Use raw_assembler_name. |
| |
| 2025-07-10 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/121014 |
| * cfgexpand.cc (expand_debug_expr): Assert FLOAT_MODE_P. |
| * optabs-tree.cc (optab_for_tree_code): Assert FLOAT_TYPE_P. |
| * tree-vect-loop.cc (vect_get_loop_len): Use EXACT_DIV_EXPR. |
| |
| 2025-07-10 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/118734 |
| * config/riscv/constraints.md (Wdm): Use tunable for Wdm |
| constraint. |
| * config/riscv/riscv-protos.h (emit_avltype_insn): Declare. |
| (can_be_broadcasted_p): Rename to... |
| (can_be_broadcast_p): ...this. |
| * config/riscv/predicates.md: Use renamed function. |
| (strided_load_broadcast_p): Declare. |
| * config/riscv/riscv-selftests.cc (run_broadcast_selftests): |
| Only run broadcast selftest if strided broadcasts are OK. |
| * config/riscv/riscv-v.cc (emit_avltype_insn): New function. |
| (sew64_scalar_helper): Only emit a pred_broadcast if the new |
| tunable says so. |
| (can_be_broadcasted_p): Rename to... |
| (can_be_broadcast_p): ...this and use new tunable. |
| * config/riscv/riscv.cc (struct riscv_tune_param): Add strided |
| broad tunable. |
| (strided_load_broadcast_p): Implement. |
| * config/riscv/vector.md: Use strided_load_broadcast_p () and |
| work around 64-bit broadcast on rv32 targets. |
| |
| 2025-07-10 Co-authored-by: Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_fusion_pairs): Add new cases. |
| (riscv_set_is_add): New function. |
| (riscv_set_is_addi, riscv_set_is_adduw, riscv_set_is_shNadd): Likewise. |
| (riscv_set_is_shNadduw): Likewise. |
| (riscv_macro_fusion_pair_p): Add new fusion cases. |
| |
| 2025-07-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_analyze_slp): Fail for non-canonical |
| gconds. |
| |
| 2025-07-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_instance): Do not use |
| SLP_TREE_VECTYPE to determine the conversion back to the |
| reduction IV. |
| |
| 2025-07-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_reduction): Avoid |
| vect_is_simple_use and record a vector type if we come |
| up with one. |
| |
| 2025-07-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (get_load_store_type): Do not use |
| vect_is_simple_use to fill gather/scatter offset operand |
| vectype and dt. |
| |
| 2025-07-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_model_reduction_cost): Get SLP |
| node instead of stmt_info and use that when recording costs. |
| |
| 2025-07-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/120999 |
| * config/aarch64/aarch64-sve2.md (*aarch64_sve2_nor<mode>): |
| Adjust movprfx alternative. |
| |
| 2025-07-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/sourcebuild.texi (aarch64_sve2_hw, aarch64_sve2p1_hw): Document. |
| * config/aarch64/aarch64.cc (aarch64_evpc_hvla): Extend to |
| BYTES_BIG_ENDIAN. |
| |
| 2025-07-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_analyze_stmt): Remove stmt-info |
| and need_to_vectorize arguments. |
| * tree-vect-slp.cc (vect_slp_analyze_node_operations_1): |
| Adjust. |
| * tree-vect-stmts.cc (can_vectorize_live_stmts): Remove |
| stmt_info argument and remove non-SLP path. |
| (vect_analyze_stmt): Remove stmt_info and need_to_vectorize |
| argument and prune paths no longer reachable. |
| (vect_transform_stmt): Adjust. |
| |
| 2025-07-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/x86-tune.def: Change "Tunning the" to "tuning" in |
| comment and use semicolon instead of dot in comment. |
| * loop-unroll.cc (decide_unroll_stupid): Comment spelling fix, |
| tunning -> tuning. |
| |
| 2025-07-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-loop.cc (scale_profile_for_vect_loop): Comment |
| spelling fix: bellow -> below. |
| * ipa-polymorphic-call.cc (record_known_type): Likewise. |
| * config/i386/x86-tune.def: Likewise. |
| * config/riscv/vector.md (*vsetvldi_no_side_effects_si_extend): |
| Likewise. |
| * tree-scalar-evolution.cc (iv_can_overflow_p): Likewise. |
| * ipa-devirt.cc (add_type_duplicate): Likewise. |
| * tree-ssa-loop-niter.cc (maybe_lower_iteration_bound): Likewise. |
| * gimple-ssa-sccopy.cc: Likewise. |
| * cgraphunit.cc: Likewise. |
| * graphite.h (struct poly_dr): Likewise. |
| * ipa-reference.cc (ignore_edge_p): Likewise. |
| * tree-ssa-alias.cc (ao_compare::compare_ao_refs): Likewise. |
| * profile-count.h (profile_probability::probably_reliable_p): |
| Likewise. |
| * ipa-inline-transform.cc (inline_call): Likewise. |
| |
| 2025-07-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Remove. |
| (vect_analyze_loop_2): Do not call it. |
| |
| 2025-07-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_active_double_reduction_p): Remove. |
| (vect_analyze_loop_operations): Remove. |
| (vect_analyze_loop_2): Do not call it. |
| |
| 2025-07-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_determine_vf_for_stmt_1): Rename |
| to ... |
| (vect_determine_vectype_for_stmt_1): ... this and only set |
| STMT_VINFO_VECTYPE. Fail for single-element vector types. |
| (vect_determine_vf_for_stmt): Rename to ... |
| (vect_determine_vectype_for_stmt): ... this and only set |
| STMT_VINFO_VECTYPE. Fail for single-element vector types. |
| (vect_determine_vectorization_factor): Rename to ... |
| (vect_set_stmts_vectype): ... this and only set STMT_VINFO_VECTYPE. |
| (vect_update_vf_for_slp): Remove. |
| (vect_analyze_loop_operations): Remove walk over stmts. |
| (vect_analyze_loop_2): Call vect_set_stmts_vectype instead of |
| vect_determine_vectorization_factor. Set vectorization factor |
| from LOOP_VINFO_SLP_UNROLLING_FACTOR. Fail if vect_detect_hybrid_slp |
| detects hybrid stmts or when vect_make_slp_decision finds |
| nothing to SLP. |
| * tree-vect-slp.cc (vect_detect_hybrid_slp): Move check |
| whether we have any hybrid stmts here from vect_update_vf_for_slp |
| * tree-vect-stmts.cc (vect_analyze_stmt): Remove loop over |
| stmts. |
| * tree-vectorizer.h (vect_detect_hybrid_slp): Update. |
| |
| 2025-07-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_simd_valid_imm): Account |
| for FLOAT_WORDS_BIG_ENDIAN when building a floating-point value. |
| |
| 2025-07-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (afdo_adjust_guessed_profile): Add forgotten |
| if (dump_file) guard. |
| |
| 2025-07-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_sve_index_series_p): New |
| function, split out from... |
| (aarch64_simd_valid_imm): ...here. Account for the different |
| SVE and Advanced SIMD element orders on big-endian targets. |
| Check each vector in a structure mode. |
| |
| 2025-07-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * read-rtl-function.cc (function_reader::read_rtx_operand_r): Use |
| hard_regno_nregs to work out REG_NREGS for hard registers. |
| |
| 2025-07-09 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add |
| new case SS_MINUS. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op ss_minus. |
| |
| 2025-07-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ext-dce.cc (ext_dce_process_uses): Apply is_constant directly |
| to the subreg_lsb. |
| |
| 2025-07-09 Jan Dubiec <jdx@o2.pl> |
| |
| PR target/109286 |
| * config.gcc: Include elfos.h before h8300/h8300.h. |
| * config/h8300/h8300.h (INIT_SECTION_ASM_OP): Override |
| default version from elfos.h. |
| (FINI_SECTION_ASM_OP): Ditto. |
| (ASM_DECLARE_FUNCTION_NAME): Ditto. |
| (ASM_GENERATE_INTERNAL_LABEL): Macro removed because it was |
| being overridden in elfos.h anyway. |
| (ASM_OUTPUT_SKIP): Ditto. |
| |
| 2025-07-09 Icen Zeyada <Icen.Zeyada2@arm.com> |
| |
| PR tree-optimization/119196 |
| * match.pd: Allow scalar optimizations with bitwise AND/OR/XOR to apply to vectors. |
| |
| 2025-07-09 Icen Zeyada <Icen.Zeyada2@arm.com> |
| |
| PR tree-optimization/119196 |
| * match.pd: Merge multiple vec_cond_expr in a single one for |
| bit_and, bit_ior and bit_xor. |
| |
| 2025-07-09 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/120642 |
| * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Do not do |
| constant AVL propagation for xtheadvector. |
| |
| 2025-07-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_reduction): Get the |
| output vector type from slp_for_stmt_info. |
| * tree-vect-stmts.cc (vect_analyze_stmt): Bail out earlier |
| for PURE_SLP_STMT when doing loop stmt analysis. |
| |
| 2025-07-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (struct scale): New structure. |
| (add_scale): Also record weights. |
| (afdo_adjust_guessed_profile): Compute robust average |
| of scales and cap by max count in function. |
| |
| 2025-07-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-inline.cc (initialize_cfun): Use num and den for scaling. |
| |
| 2025-07-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (get_original_name): Fix loop walking the |
| suffixes. |
| |
| 2025-07-09 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm_neon.h: Remove useless push/pop pragmas. |
| |
| 2025-07-09 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/120922 |
| * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Support range |
| for partial vectors. |
| |
| 2025-07-09 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/120922 |
| * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Don't set range |
| for partial vectors. |
| |
| 2025-07-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_b4const_or_zero): |
| Remove. |
| (xtensa_b4const): Add a case where the value is 0, and rename |
| to xtensa_b4const_or_zero. |
| (xtensa_rtx_costs): Fix to also consider the result of |
| xtensa_b4constu(). |
| |
| 2025-07-08 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.md (stack_protect_get_tpsi): New insn. |
| (stack_protect_get_tpdi): New insn. |
| (stack_protect_set): Use new insn. |
| (stack_protect_test): Use new insn. |
| |
| 2025-07-08 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/120461 |
| * config/riscv/riscv-v.cc (emit_vlmax_insn_lra): Do not emit |
| vsetivli for XTHeadVector. |
| |
| 2025-07-08 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/113829 |
| * config/riscv/riscv-vector-builtins.cc (registered_function::overloaded_hash): |
| Skip non-type arguments. |
| |
| 2025-07-08 Andreas Schwab <schwab@suse.de> |
| |
| PR target/120995 |
| * config/riscv/sync.md (zacas_atomic_cas_value_strong<mode>): |
| Allow op3 to be zero. |
| |
| 2025-07-08 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/x86-tune.def (X86_TUNE_AVX512_MASKED_EPILOGUES): |
| New tunable, default on for m_ZNVER4 and m_ZNVER5. |
| * config/i386/i386.cc (ix86_vector_costs::finish_cost): With |
| X86_TUNE_AVX512_MASKED_EPILOGUES and when the main loop |
| had a vectorization factor > 2 use a masked epilogue when |
| possible and when not obviously problematic. |
| |
| 2025-07-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vector_costs::suggested_epilogue_mode): |
| Add masked output parameter and return m_masked_epilogue. |
| (vector_costs::m_masked_epilogue): New tristate flag. |
| (vector_costs::vector_costs): Initialize m_masked_epilogue. |
| * tree-vect-loop.cc (vect_analyze_loop_1): Pass in masked |
| flag to optionally initialize can_use_partial_vectors_p. |
| (vect_analyze_loop): For epilogues also get whether to use |
| a masked epilogue for this loop from the target and use |
| that for the first epilogue mode we try. |
| |
| 2025-07-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120358 |
| * tree-ssa-structalias.cc (get_constraint_for_1): Adjust |
| pruning of sub-variables according to the imprecise |
| known start offset. |
| |
| 2025-07-08 Alexandre Oliva <oliva@adacore.com> |
| |
| * config/vxworks-dummy.h (TARGET_VXWORKS_VAROFF): New. |
| (TARGET_VXWORKS_GOTTPIC): New. |
| * config/vxworks.h (TARGET_VXWORKS_VAROFF): Override. |
| (TARGET_VXWORKS_GOTTPIC): Likewise. |
| * config/i386/i386.cc (output_set_got): Disable VxWorks6 GOT |
| sequence on VxWorks7. |
| (legitimize_pic_address): Accept relative addressing of |
| labels on VxWorks7. |
| (ix86_delegitimize_address_1): Likewise. |
| (ix86_output_addr_diff_elt): Likewise. |
| * config/i386/i386.md (tablejump): Likewise. |
| (set_got, set_got_labelled): Set no-red-zone flag on VxWorks7. |
| * config/i386/predicates.md (gotoff_operand): Test |
| TARGET_VXWORKS_VAROFF. |
| |
| 2025-07-08 Alexandre Oliva <oliva@adacore.com> |
| |
| * config.gcc (vxworks-dummy.h): Add to aarch64-*-* as well. |
| |
| 2025-07-07 Qing Zhao <qing.zhao@oracle.com> |
| |
| Revert: |
| 2025-07-07 Qing Zhao <qing.zhao@oracle.com> |
| |
| * doc/extend.texi: Extend counted_by attribute to pointer fields in |
| structures. Add one more requirement to pointers with counted_by |
| attribute. |
| |
| 2025-07-07 Qing Zhao <qing.zhao@oracle.com> |
| |
| Revert: |
| 2025-07-01 Qing Zhao <qing.zhao@oracle.com> |
| |
| * tree-object-size.cc (access_with_size_object_size): Update comments |
| for pointers with .ACCESS_WITH_SIZE. |
| (collect_object_sizes_for): Propagate size info through GIMPLE_ASSIGN |
| for pointers with .ACCESS_WITH_SIZE. |
| |
| 2025-07-07 Martin Jambor <mjambor@suse.cz> |
| |
| * value-range.h (class irange): Mark member function verify_range |
| with override. |
| (class prange): Mark member function verify_range with final override. |
| (class frange): Mark member function verify_range with override. |
| |
| 2025-07-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120888 |
| * config/xtensa/xtensa.cc (xtensa_promote_function_mode): New. |
| (TARGET_PROMOTE_FUNCTION_MODE): Use. |
| (TARGET_PROMOTE_PROTOTYPES): Removed. |
| |
| 2025-07-07 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/s390.md: Update UNSPECs |
| * config/s390/vector.md (fmax<mode>3): New expander. |
| (fmin<mode>3): New expander. |
| * config/s390/vx-builtins.md (*fmin<mode>): New insn. |
| (vfmin<mode>): Redefined to use new insn. |
| (*fmax<mode>): New insn. |
| (vfmax<mode>): Redefined to use new insn. |
| |
| 2025-07-07 Jason Merrill <jason@redhat.com> |
| |
| PR c++/120917 |
| * doc/invoke.texi: Add -Wno-abbreviated-auto-in-template-arg. |
| |
| 2025-07-07 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64.md (popcountti2): Add TARGET_SVE path. |
| |
| 2025-07-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120817 |
| * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use |
| ao_ref_init_from_ptr_and_range with unknown size for |
| .MASK_STORE and .MASK_LEN_STORE. |
| |
| 2025-07-07 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-protos.h (riscv_expand_usmul): Add new func |
| decl. |
| * config/riscv/riscv.cc (riscv_expand_xmode_usmul): Add new func |
| to expand Xmode SAT_MUL. |
| (riscv_expand_non_xmode_usmul): Ditto but for non-Xmode. |
| (riscv_expand_usmul): Add new func to implment SAT_MUL. |
| * config/riscv/riscv.md (usmul<mode>3): Add new pattern to match |
| standard name usmul. |
| |
| 2025-07-07 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add new match pattern for unsigned SAT_MUL. |
| * tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_mul): |
| new decl for pattern match func. |
| (match_unsigned_saturation_mul): Add new func to match unsigned |
| SAT_MUL. |
| (math_opts_dom_walker::after_dom_children): Try to match |
| unsigned SAT_MUL on NOP. |
| |
| 2025-07-07 Pan Li <pan2.li@intel.com> |
| |
| * internal-fn.cc (commutative_binary_fn_p): Add new case |
| for SAT_MUL. |
| * internal-fn.def (SAT_MUL): Add new IFN_SAT_MUL. |
| * optabs.def (OPTAB_NL): Remove fixed point limitation. |
| |
| 2025-07-07 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/s390.md: Removed unused unspecs. |
| * config/s390/vector.md (avg<mode>3_ceil): New expander. |
| (uavg<mode>3_ceil): New expander. |
| (smul<mode>3_highpart): New expander. |
| (umul<mode>3_highpart): New expander. |
| * config/s390/vx-builtins.md (vec_umulh<mode>): Remove unspec. |
| (vec_smulh<mode>): Remove unspec. |
| |
| 2025-07-07 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (vec_cmp<mode><vpred>): Extend |
| to handle partial FP modes. |
| (@aarch64_pred_fcm<cmp_op><mode>): Likewise. |
| (@aarch64_pred_fcmuo<mode>): Likewise. |
| (*one_cmpl<mode>3): Rename to... |
| (@aarch64_pred_one_cmpl<mode>_z): ... this. |
| * config/aarch64/aarch64.cc (aarch64_emit_sve_fp_cond): Allow the |
| target and governing predicates to have different modes. |
| (aarch64_emit_sve_or_fp_conds): Likewise. |
| (aarch64_emit_sve_invert_fp_cond): Likewise. |
| (aarch64_expand_sve_vec_cmp_float): Likewise. |
| |
| 2025-07-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/118891 |
| * tree-vect-stmts.cc (supportable_widening_operation): Swap the |
| hi and lo internal functions on big-endian targets. |
| |
| 2025-07-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ext-dce.cc (ext_dce_process_uses): Apply is_constant directly |
| to the subreg_lsb. |
| |
| 2025-07-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@aarch64_sve_set_neonq_<mode>): |
| Use %Z instead of lowpart_subreg. Tweak formatting. |
| |
| 2025-07-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/118891 |
| * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Fix the |
| ZIP1 operand order for big-endian targets. |
| |
| 2025-07-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-live.cc (dump_scope_block): Print discriminators |
| of inlined functions. |
| |
| 2025-07-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120670 |
| PR target/120683 |
| * config/i386/i386-expand.cc (expand_set_or_cpymem_via_loop): |
| Don't generate the loop if the loop count is 1. |
| (expand_cpymem_epilogue): Use move_by_pieces. |
| (setmem_epilogue_gen_val): New. |
| (expand_setmem_epilogue): Use store_by_pieces. |
| (expand_small_cpymem_or_setmem): Choose cpymem mode from MOVE_MAX. |
| For memset with vector and the size is smaller than the vector |
| size, first try the narrower vector, otherwise, use the scalar |
| value. |
| (promote_duplicated_reg): Duplicate the scalar value for vector. |
| (ix86_expand_set_or_cpymem): Always expand vector-version of |
| memset for vector_loop. Use misaligned prologue if alignment |
| isn't needed and destination isn't aligned. Always initialize |
| vec_promoted_val from the promoted scalar value for vector_loop. |
| |
| 2025-07-07 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/120709 |
| * builtins.cc (expand_builtin_crc_table_based): Error out |
| instead of asserting the 3rd argument is an integer constant. |
| * internal-fn.cc (expand_crc_optab_fn): Likewise. |
| * doc/extend.texi (crc): Document requirement of the poly argument |
| being a constant. |
| |
| 2025-07-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-mcus.def: -mmcu= takes lower case MCU names. |
| * doc/avr-mmcu.texi: Rebuild. |
| |
| 2025-07-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-mcus.def (avr32da28S, avr32da32S, avr32da48S) |
| (avr64da28S, avr64da32S, avr64da48S avr64da64S) |
| (avr128da28S, avr128da32S, avr128da48S, avr128da64S): Add devices. |
| * doc/avr-mmcu.texi: Rebuild. |
| |
| 2025-07-06 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/120951 |
| * tree-call-cdce.cc (use_internal_fn): For non-call exceptions |
| with EQ_EXPR can throw for floating point types, then create |
| the EQ_EXPR seperately. |
| |
| 2025-07-06 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/120921 |
| * tree-cfg.cc (verify_gimple_assign_single): Reject constant and address expression LHS. |
| For non-empty vector constructors, make sure the LHS is an is_gimple_reg. |
| |
| 2025-07-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc |
| (autofdo_source_profile::read): Scale cutoff. |
| (read_autofdo_file): Initialize cutoff |
| * coverage.cc (read_counts_file): Initialize cutoff to 1. |
| * gcov-io.h (struct gcov_summary): Add cutoff field. |
| * ipa-inline.cc (inline_small_functions): mac_count can be non-zero |
| also with auto_profile. |
| * lto-cgraph.cc (output_profile_summary): Write cutoff |
| and sum_max. |
| (input_profile_summary): Read cutoff and sum max. |
| (merge_profile_summaries): Initialize and scale global cutoffs |
| and sum max. |
| * profile-count.cc: Include profile.h |
| (profile_count::force_nonzero): move here from ...; use cutoff. |
| * profile-count.h: (profile_count::force_nonzero): ... here. |
| |
| 2025-07-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile-count.cc (profile_count::operator*): fix overflow check. |
| |
| 2025-07-05 Alexandre Oliva <oliva@adacore.com> |
| |
| * config/rs6000/vxworks.h (SUBTARGET_DRIVER_SELF_SPECS): |
| Redefine to select word size matching TARGET_VXWORKS64. |
| (TARGET_VXWORKS64): Redefine in terms of TARGET_64BIT. |
| |
| 2025-07-04 Vineet Gupta <vineetg@rivosinc.com> |
| |
| PR target/118241 |
| * config/riscv/riscv.md (prefetch): Add alternative "r". |
| |
| 2025-07-04 Vineet Gupta <vineetg@rivosinc.com> |
| |
| * config/riscv/predicates.md (prefetch_operand): mack 5 bits. |
| |
| 2025-07-04 Raphael Moreira Zinsly <rzinsly@ventanamicro.com> |
| |
| * config/sh/predicates.md |
| (treg_set_expr_not_const01): call sh_recog_treg_set_expr_not_01 |
| * config/sh/sh-protos.h |
| (sh_recog_treg_set_expr_not_01): New function |
| * config/sh/sh.cc (sh_recog_treg_set_expr_not_01): Likewise |
| |
| 2025-07-04 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR c/118948 |
| * fold-const.cc (tree_expr_nonnegative_warnv_p): Use |
| error_operand_p instead of checking for error_mark_node directly. |
| |
| 2025-07-04 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add |
| new case SS_PLUS. |
| (expand_vx_binary_vec_vec_dup): Ditto. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op ss_plus. |
| |
| 2025-07-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120944 |
| * tree-ssa-sccvn.cc (vn_reference_lookup_3): Gate optimizations |
| invalid when volatile is involved. |
| |
| 2025-07-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * common.opt: Add period. |
| * common.opt.urls: Regenerate. |
| |
| 2025-07-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120927 |
| * tree-vect-data-refs.cc (vect_compute_data_ref_alignment): |
| Do not force a DRs base alignment when analyzing an |
| epilog loop. Check whether the step preserves alignment |
| for all VFs possibly involved sofar. |
| |
| 2025-07-04 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.md (crc_combine): Avoid nested |
| subreg. |
| |
| 2025-07-04 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Add basic |
| instrumentation to all cases where fusion is detected. Fix |
| minor formatting goofs found in the process. |
| |
| 2025-07-04 panciyan <panciyan@eswincomputing.com> |
| |
| * match.pd: Add signed scalar SAT_ADD IMM form2 matching. |
| |
| 2025-07-03 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/s390.cc (expand_perm_with_merge): Add size change cases. |
| (expand_perm_with_pack): New function. |
| (vectorize_vec_perm_const_1): Wire up new function. |
| |
| 2025-07-03 Co-authored-by: Daniel Barboza <dbarboza@ventanamicro.com> |
| Co-authored-by: Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| PR target/118886 |
| * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Check |
| for fusion being disabled earlier. If PREV is already fused, |
| then it can't be fused again. Be more selective about fusing |
| when the destination registers do not match. Don't fuse into |
| loads that aren't scalar integer modes. Revamp store pair |
| commit support. |
| |
| 2025-07-03 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md (aarch64_cbz<optab><mode>1): Move |
| above rules for CBB<cond>/CBH<cond>/CB<cond>. |
| (*aarch64_tbz<optab><mode>1): Likewise. |
| |
| 2025-07-03 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_cb_rhs): New function. |
| * config/aarch64/aarch64.cc (aarch64_cb_rhs): Likewise. |
| * config/aarch64/aarch64.md (cbranch<mode>4): Rename to ... |
| (cbranch<GPI:mode>4): ...here, and emit CMPBR if possible. |
| (cbranch<SHORT:mode>4): New expand rule. |
| (aarch64_cb<INT_CMP:code><GPI:mode>): New insn rule. |
| (aarch64_cb<INT_CMP:code><SHORT:mode>): Likewise. |
| * config/aarch64/constraints.md (Uc0): New constraint. |
| (Uc1): Likewise. |
| (Uc2): Likewise. |
| * config/aarch64/iterators.md (cmpbr_suffix): New mode attr. |
| (INT_CMP): New code iterator. |
| (cmpbr_imm_constraint): New code attr. |
| |
| 2025-07-03 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (cmpbr): New |
| option. |
| * config/aarch64/aarch64.h (TARGET_CMPBR): New macro. |
| * doc/invoke.texi (cmpbr): New option. |
| |
| 2025-07-03 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md (far_branch): Replace 0/1 with |
| no/yes. |
| (aarch64_bcond): Handle rename. |
| (aarch64_cbz<optab><mode>1): Likewise. |
| (*aarch64_tbz<optab><mode>1): Likewise. |
| (@aarch64_tbz<optab><ALLI:mode><GPI:mode>): Likewise. |
| |
| 2025-07-03 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md (BRANCH_LEN_P_1MiB): New constant. |
| (BRANCH_LEN_N_1MiB): Likewise. |
| (BRANCH_LEN_P_32KiB): Likewise. |
| (BRANCH_LEN_N_32KiB): Likewise. |
| |
| 2025-07-03 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md (condjump): Rename to ... |
| (aarch64_bcond): ...here. |
| (*compare_condjump<GPI:mode>): Rename to ... |
| (*aarch64_bcond_wide_imm<GPI:mode>): ...here. |
| (aarch64_cb<optab><mode>): Rename to ... |
| (aarch64_cbz<optab><mode>1): ...here. |
| (*cb<optab><mode>1): Rename to ... |
| (*aarch64_tbz<optab><mode>1): ...here. |
| (@aarch64_tb<optab><ALLI:mode><GPI:mode>): Rename to ... |
| (@aarch64_tbz<optab><ALLI:mode><GPI:mode>): ...here. |
| (restore_stack_nonlocal): Handle rename. |
| (stack_protect_combined_test): Likewise. |
| * config/aarch64/aarch64-simd.md (cbranch<mode>4): Likewise. |
| * config/aarch64/aarch64-sme.md (aarch64_restore_za): Likewise. |
| * config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): Likewise. |
| |
| 2025-07-03 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md (cbranch<mode>4): Reformat. |
| (cbranchcc4): Likewise. |
| (condjump): Likewise. |
| (*compare_condjump<GPI:mode>): Likewise. |
| (aarch64_cb<optab><mode>1): Likewise. |
| (*cb<optab><mode>1): Likewise. |
| (tbranch_<code><mode>3): Likewise. |
| (@aarch64_tb<optab><ALLI:mode><GPI:mode>): Likewise. |
| |
| 2025-07-03 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md (condjump): Move. |
| (*compare_condjump<GPI:mode>): Likewise. |
| (aarch64_cb<optab><mode>1): Likewise. |
| (*cb<optab><mode>1): Likewise. |
| (tbranch_<code><mode>3): Likewise. |
| (@aarch64_tb<optab><ALLI:mode><GPI:mode>): Likewise. |
| |
| 2025-07-03 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| PR tree-optimization/120780 |
| * tree-object-size.cc (inner_at_offset, |
| get_wholesize_for_memref): New functions. |
| (addr_object_size): Call get_wholesize_for_memref. |
| |
| 2025-07-03 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120936 |
| * config/i386/i386.cc (x86_print_call_or_nop): Add a label |
| argument and use it to print label. |
| (x86_function_profiler): Emit label only when __mcount_loc |
| section is used. |
| |
| 2025-07-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (get_combined_location): Handle negative |
| offsets; output better diagnostics. |
| (get_relative_location_for_locus): Reutrn -1 for unknown location. |
| (function_instance::get_cgraph_node): New member function. |
| (match_with_target): New function. |
| (dump_stmt): New function. |
| (function_instance::lookup_count): New function. |
| (mark_expr_locations): New function. |
| (function_instance::match): New function. |
| (autofdo_source_profile::offline_external_functions): Do |
| not repeat renaming; manage two worklists and do matching. |
| (autofdo_source_profile::offline_unrealized_inlines): Simplify. |
| (afdo_set_bb_count): do not look for lost discriminators. |
| (auto_profile): Do not ICE when profile reading failed. |
| * common.opt (Wauto-profile): New warning flag |
| * doc/invoke.texi (-Wauto-profile): Document. |
| |
| 2025-07-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.cc (analyze_function_body): For loop |
| heuristics use header count instead of preheader count. |
| |
| 2025-07-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.cc (update_profiling_info): Watch for division by zero. |
| |
| 2025-07-03 Alex Coplan <alex.coplan@arm.com> |
| |
| * config/aarch64/aarch64-sve.md |
| (vec_load_lanes<mode><vsingle>): Expand else operand in |
| subvector mode, as per optab documentation. |
| (vec_mask_load_lanes<mode><vsingle>): Add missing mode for |
| operand 3. |
| * config/aarch64/predicates.md (aarch64_maskload_else_operand): |
| Remove const_int. |
| |
| 2025-07-03 Alex Coplan <alex.coplan@arm.com> |
| |
| * doc/md.texi (Standard Names): Clarify mode of else operand for |
| vec_mask_load_lanesmn optab. |
| |
| 2025-07-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.cc (cs_interesting_for_ipcp_p): Handle |
| correctly GLOBAL0 afdo counts. |
| (ipcp_cloning_candidate_p): Do not rule out nodes |
| !node->optimize_for_size_p (). |
| (good_cloning_opportunity_p): Handle afdo counts |
| as non-zero. |
| |
| 2025-07-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.cc (hint_time_bonus): Return sreal and avoid |
| conversions to integer. |
| (good_cloning_opportunity_p): Avoid sreal to integer |
| conversions |
| (perform_estimation_of_a_value): Update. |
| |
| 2025-07-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (afdo_hot_bb_threshod): New global |
| variable. |
| (maybe_hot_afdo_count_p): New function. |
| (autofdo_source_profile::read): Do not set up dump file; |
| set afdo_hot_bb_threshod. |
| (afdo_annotate_cfg): Handle partial training. |
| (afdo_callsite_hot_enough_for_early_inline): |
| Use maybe_hot_afdo_count_p. |
| (auto_profile_offline::execute): Read autofdo file. |
| * auto-profile.h (maybe_hot_afdo_count_p): Declare. |
| (afdo_hot_bb_threshold): Declare. |
| * coverage.cc (read_counts_file): Also set gcov_profile_info. |
| (coverage_init): Do not read autofdo file. |
| * opts.cc (enable_fdo_optimizations): Add autofdo parameter; |
| do not set flag_branch_probabilities and flag_profile_values |
| with it. |
| (common_handle_option): Update. |
| * passes.cc (finish_optimization_passes): Do not end branch |
| prob here. |
| (pass_manager::dump_profile_report): Also mark change after |
| autofdo pass. |
| * profile.cc: Include auto-profile.h |
| (gcov_profile_info): New global variable. |
| (struct afdo_fdo_record): New struture. |
| (compute_branch_probabilities): Record afdo profile. |
| (end_branch_prob): Dump afdo/fdo profile comparsion. |
| * profile.h (gcov_profile_info): Declarre. |
| * tree-profile.cc (tree_profiling): Call end_branch_prob |
| (pass_ipa_tree_profile::gate): Also enable with autoFDO |
| |
| 2025-07-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118669 |
| * tree-vect-stmts.cc (vectorizable_load): Emit loads |
| with proper (element) alignment. |
| (vectorizable_store): Likewise. |
| |
| 2025-07-03 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120908 |
| * config/i386/i386.cc (legitimize_tls_address): Pass RDI to |
| gen_tls_local_dynamic_64. |
| * config/i386/i386.md (*tls_global_dynamic_64_largepic): Add |
| RDI clobber and use it to generate LEA. |
| (*tls_local_dynamic_64_<mode>): Likewise. |
| (*tls_local_dynamic_base_64_largepic): Likewise. |
| (@tls_local_dynamic_64_<mode>): Add a clobber. |
| |
| 2025-07-02 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120908 |
| * config/i386/i386.cc (legitimize_tls_address): Pass RDI to |
| gen_tls_global_dynamic_64. |
| * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Add RDI |
| clobber and use it to generate LEA. |
| (@tls_global_dynamic_64_<mode>): Add a clobber. |
| |
| 2025-07-02 Alexey Merzlyakov <alexey.merzlyakov@samsung.com> |
| |
| PR target/120356 |
| * config/riscv/riscv-v.cc |
| (expand_const_vector_interleaved_stepped_npatterns): |
| Fix ASHIFT to LSHIFTRT insn. |
| |
| 2025-07-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120927 |
| * tree-vect-loop.cc (vect_analyze_loop): Stop querying |
| further epilogues after one with partial vectors. |
| |
| 2025-07-02 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/driver-i386.cc (host_detect_local_cpu): Change |
| to AMX-FP8 for Diamond Rapids. |
| |
| 2025-07-01 Qing Zhao <qing.zhao@oracle.com> |
| |
| * tree-object-size.cc (access_with_size_object_size): Update comments |
| for pointers with .ACCESS_WITH_SIZE. |
| (collect_object_sizes_for): Propagate size info through GIMPLE_ASSIGN |
| for pointers with .ACCESS_WITH_SIZE. |
| |
| 2025-07-01 Qing Zhao <qing.zhao@oracle.com> |
| |
| * doc/extend.texi: Extend counted_by attribute to pointer fields in |
| structures. Add one more requirement to pointers with counted_by |
| attribute. |
| |
| 2025-07-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/120471 |
| * tree.h (address_invariant_p): New function. |
| * tree.cc (address_invariant_p): New function. |
| (tree_invariant_p_1): Use it for ADDR_EXPR handling. Formatting |
| tweak. |
| |
| 2025-07-01 Remi Machet <rmachet@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (*shrn_to_subhn_<mode>): Add pattern |
| converting mvn+shrn into mvni+subhn. |
| |
| 2025-07-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120608 |
| * passes.def (pass_musttail): Move before pass_sanopt. |
| * tree-tailcall.cc (empty_eh_cleanup): Handle GIMPLE_RESX |
| which doesn't throw externally through recursion on single |
| eh edge (if any and cnt still allows that). |
| (find_tail_calls): Add ESUCC, IGNORED_EDGES and MUST_SEE_BBS |
| arguments. Handle GIMPLE_CONDs for non-simplified cleanups with |
| finally_tmp temporaries both on backward and forward walks, adjust |
| recursive call. |
| (tree_optimize_tail_calls_1): Adjust find_tail_calls callers. |
| |
| 2025-07-01 Ezra Sitorus <ezra.sitorus@arm.com> |
| |
| * config/aarch64/aarch64-sys-regs.def: Copy from Binutils. |
| |
| 2025-07-01 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR debug/120902 |
| * print-tree.cc (debug with const tree_node *): Call debug_tree |
| instead of debug. |
| |
| 2025-07-01 Yuao Ma <c8ef@outlook.com> |
| |
| * fold-const-call.cc (fold_const_call_ss): Constant fold for |
| single arg pi-based trigonometric builtins. |
| (fold_const_call_sss): Constant fold for double arg pi-based |
| trigonometric builtins. |
| * fold-const.cc (negate_mathfn_p): asinpi/atanpi is odd func. |
| (tree_call_nonnegative_warnv_p): acospi always non-neg, |
| asinpi/atanpi non-neg iff arg non-neg. |
| * tree-call-cdce.cc (can_test_argument_range): Add acospi/asinpi. |
| (edom_only_function): Add acospi/asinpi/cospi/sinpi. |
| (get_no_error_domain): Add acospi/asinpi. |
| |
| 2025-06-30 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/120242 |
| PR rtl-optimization/120627 |
| PR rtl-optimization/120736 |
| PR rtl-optimization/120813 |
| * ext-dce.cc (ext_dce_process_uses): Remove some cases where we |
| unnecessarily expanded live sets for promoted subregs. |
| (expand_changed_pseudos): New function. |
| (reset_subreg_promoted_p): Use it. |
| |
| 2025-06-30 Alexey Merzlyakov <alexey.merzlyakov@samsung.com> |
| |
| PR target/120714 |
| * config/riscv/riscv.cc (riscv_allocate_and_probe_stack_space): |
| Fix SP-addresses in REG_CFA_DEF_CFA notes for stack-clash case. |
| |
| 2025-06-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-color.cc: Use nullptr rather than NULL. |
| * diagnostic-format-sarif.cc: Likewise. |
| * diagnostic-format-text.cc: Likewise. |
| * diagnostic-macro-unwinding.cc: Likewise. |
| * diagnostic-path-output.cc: Likewise. |
| * diagnostic-path.cc: Likewise. |
| * diagnostic-show-locus.cc: Likewise. |
| * diagnostic-spec.cc: Likewise. |
| * diagnostic.cc: Likewise. |
| * lazy-diagnostic-path.cc: Likewise. |
| * simple-diagnostic-path.cc: Likewise. |
| * tree-diagnostic-client-data-hooks.cc: Likewise. |
| |
| 2025-06-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-sarif.cc |
| (sarif_builder::maybe_make_kinds_array): Convert |
| diagnostic_event::meaning enums to enum class. |
| * diagnostic-path-output.cc (path_label::get_text): Likewise. |
| * diagnostic-path.cc |
| (diagnostic_event::meaning::maybe_get_verb_str): Likewise. |
| (diagnostic_event::meaning::maybe_get_noun_str): Likewise. |
| (diagnostic_event::meaning::maybe_get_property_str): Likewise. |
| * diagnostic-path.h (diagnostic_event::verb): Likewise. |
| (diagnostic_event::noun): Likewise. |
| (diagnostic_event::property): Likewise. |
| (diagnostic_event::meaning): Likewise. |
| |
| 2025-06-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Drop diagnostic-format-json.o. |
| * common.opt (fdiagnostics-format=): Drop |
| "json|json-stderr|json-file". |
| (diagnostics_output_format): Drop values "json", "json-stderr", |
| and "json-file". |
| * diagnostic-format-json.cc: Delete file. |
| * diagnostic-format.h |
| (diagnostic_output_format_init_json_stderr): Delete. |
| (diagnostic_output_format_init_json_file): Delete. |
| * diagnostic.cc (diagnostic_output_format_init): Delete cases for |
| DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR and |
| DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE. |
| * diagnostic.h (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): Delete. |
| (DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE): Delete. |
| * doc/invoke.texi: Remove references to json output format. |
| * doc/ux.texi: Likewise. |
| * selftest-run-tests.cc (selftest::run_tests): Drop call to |
| deleted selftest::diagnostic_format_json_cc_tests. |
| * selftest.h (selftest::diagnostic_format_json_cc_tests): Delete. |
| |
| 2025-06-30 Mark Wielaard <mark@klomp.org> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2025-06-30 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add |
| new case US_MINUS. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op us_minus. |
| |
| 2025-06-30 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/109116 |
| * config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_EXTRACT. |
| (vsx_disassemble_pair): Expand into a vector register sized subreg. |
| (mma_disassemble_acc): Likewise. |
| (*vsx_disassemble_pair): Delete. |
| (*mma_disassemble_acc): Likewise. |
| |
| 2025-06-30 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/sifive-7.md: Add primary vector pipeline model |
| for SiFive 7 series. |
| |
| 2025-06-30 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/120659 |
| * config/riscv/sifive-7.md: Add B extension, fp16 and missing |
| scalar instruction type for sifive-7 pipeline model. |
| |
| 2025-06-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_2): Handle ternary |
| and call operators when swapping operands. |
| |
| 2025-06-30 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR target/119100 |
| * config/riscv/autovec-opt.md (*vfnmsub_<mode>,*vfnmadd_<mode>): Handle |
| both add and acc variants. |
| * config/riscv/vector.md (*pred_mul_neg_<optab><mode>_scalar_undef): New |
| pattern. |
| |
| 2025-06-30 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-cores.def (gb10): New entry. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi (AArch64 Options): Document the above. |
| |
| 2025-06-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/120520 |
| PR c/117023 |
| * builtin-attrs.def (DEF_LIST_INT_INT_INT): Define it and |
| use for 1,2,3. |
| (ATTR_NONNULL_IF123_LIST): New DEF_ATTR_TREE_LIST. |
| (ATTR_NONNULL_4_IF123_LIST): Likewise. |
| * builtins.def (BUILT_IN_FWRITE): Use ATTR_NONNULL_4_IF123_LIST |
| instead of ATTR_NONNULL_LIST. |
| (BUILT_IN_FWRITE_UNLOCKED): Likewise. |
| * gimple.h (infer_nonnull_range_by_attribute): Add another optional |
| tree * argument defaulted to NULL. |
| * gimple.cc (infer_nonnull_range_by_attribute): Add OP3 argument, |
| handle 3 argument nonnull_if_nonzero attribute. |
| * builtins.cc (validate_arglist): Handle 3 argument nonnull_if_nonzero |
| attribute. |
| * tree-ssa-ccp.cc (pass_post_ipa_warn::execute): Likewise. |
| * ubsan.cc (instrument_nonnull_arg): Adjust |
| infer_nonnull_range_by_attribute caller, handle 3 argument |
| nonnull_if_nonzero attribute. |
| * gimple-range-infer.cc (gimple_infer_range::gimple_infer_range): |
| Handle 3 argument nonnull_if_nonzero attribute. |
| * doc/extend.texi (nonnull_if_nonzero): Document 3 argument version |
| of the attribute. |
| |
| 2025-06-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/120733 |
| * lra-eliminations.cc (move_plus_up): Check whether lowpart_subreg |
| returns null. |
| |
| 2025-06-30 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (autofdo_source_profile::offline_external_functions): |
| Add missing newline in dump. |
| (afdo_propagate_edge): If annotated BB or edge has too small count |
| bump it up to mitigate profile imprecisions caused by vectorizer. |
| (afdo_propagate): Increase number of iteraitons and fix dump |
| |
| 2025-06-30 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (struct decl_lineno): Turn to structure; add |
| location. |
| (dump_inline_stack): Update. |
| (get_inline_stack): Update. |
| (get_relative_location_for_locus): Fixup formating. |
| (function_instance::get_function_instance_by_decl): Add |
| LOCATION parameter; improve dumping. |
| (autofdo_source_profile::get_callsite_total_count): Improve dumping; |
| update. |
| (walk_block): Update. |
| (autofdo_source_profile::offline_unrealized_inlines): Update. |
| (autofdo_source_profile::get_count_info): Update. |
| |
| 2025-06-30 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120840 |
| * config/i386/i386-expand.cc (ix86_expand_call): Don't mark |
| hard frame pointer as clobber. |
| * config/i386/i386-options.cc (ix86_set_func_type): Use |
| TYPE_NO_CALLEE_SAVED_REGISTERS instead of |
| TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP. |
| * config/i386/i386.cc (ix86_function_ok_for_sibcall): Remove the |
| TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP check. |
| (ix86_save_reg): Merge TYPE_NO_CALLEE_SAVED_REGISTERS and |
| TYPE_PRESERVE_NONE with TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP. |
| * config/i386/i386.h (call_saved_registers_type): Remove |
| TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP. |
| * doc/extend.texi: Update no_callee_saved_registers documentation. |
| |
| 2025-06-30 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv-vsetvl.cc (bitmap_union_of_preds_with_entry): |
| Refactor. |
| |
| 2025-06-30 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/pipeline-checker: New file. |
| |
| 2025-06-28 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR debug/120849 |
| * print-tree.cc (debug): New. |
| * print-tree.h (debug): Likewise. |
| |
| 2025-06-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/120856 |
| * config/avr/avr.cc (avr_hard_regno_mode_ok) [-mno-lra]: Deny |
| hard regs >= 4 bytes that overlap Y. |
| |
| 2025-06-28 Jan Hubicka <hubicka@ucw.cz> |
| Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * auto-profile.cc (get_original_name): Only strip suffixes introduced |
| after auto-fdo annotation. |
| (string_table::get_index_by_decl): Simplify. |
| (string_table::add_name): New member function. |
| (string_table::read): Micro-optimize allocation. |
| (function_instance::get_function_instance_by_decl): Dump reasons |
| for failure; try to compensate lost discriminators. |
| (function_instance::merge): Simplify sanity check; do not check |
| for realized flag; fix merging of targets. |
| (function_instance::offline_if_in_set): Simplify. |
| (function_instance::dump): Sanity check that names are consistent. |
| (autofdo_source_profile::offline_external_functions): Also handle |
| stripping suffixes. |
| (walk_block): Move up in source. |
| (autofdo_source_profile::offline_unrealized_inlines): Also compute |
| realized functions. |
| (autofdo_source_profile::get_function_instance_by_name_index): Simplify. |
| (autofdo_source_profile::add_function_instance): Simplify. |
| (autofdo_source_profile::read): Do not strip suffxies; error on duplicates. |
| (mark_realized_functions): Remove. |
| (auto_profile): Do not call mark_realized_functions. |
| * passes.def: Move auto_profile_offline before free_lang_data. |
| |
| 2025-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple-fold.cc (fold_const_aggregate_ref_1) <COMPONENT_REF>: |
| Bail out immediately if the reference has reverse storage order. |
| * tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Likewise. |
| |
| 2025-06-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/120777 |
| * gimple-fold.cc (gimple_get_virt_method_for_vtable): Revert |
| 2018-09-18 changes. |
| |
| 2025-06-27 Nathaniel Shead <nathanieloshead@gmail.com> |
| |
| PR c++/98735 |
| PR c++/118904 |
| * tree.cc (struct identifier_hash): New type. |
| (struct identifier_count_traits): New traits. |
| (internal_label_nums): New hash map. |
| (generate_internal_label): New function. |
| (prefix_for_internal_label): New function. |
| * tree.h (IDENTIFIER_INTERNAL_P): New macro. |
| (generate_internal_label): Declare. |
| (prefix_for_internal_label): Declare. |
| * ubsan.cc (ubsan_ids): Remove. |
| (ubsan_type_descriptor): Use generate_internal_label. |
| (ubsan_create_data): Likewise. |
| |
| 2025-06-27 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (function_instance::set_name, |
| function_instance::set_realized, function_instnace::realized_p, |
| function_instance::set_in_worklist, |
| function_instance::clear_in_worklist, |
| function_instance::in_worklist_p): New member functions. |
| (function_instance::in_worklist, function_instance::realized_): |
| new. |
| (get_relative_location_for_locus): Break out from .... |
| (get_relative_location_for_stmt): ... here. |
| (function_instance::~function_instance): Sanity check that |
| removed function is not in worklist. |
| (function_instance::merge): Do not offline realized instances. |
| (function_instance::offline): Make private; add duplicate functions |
| to worklist rather then merging immediately. |
| (function_instance::offline_if_in_set): Cleanup. |
| (function_instance::remove_external_functions): Likewise. |
| (function_instance::offline_if_not_realized): New member function. |
| (autofdo_source_profile::offline_external_functions): Handle delayed |
| functions. |
| (autofdo_source_profile::offline_unrealized_inlines): New member function. |
| (walk_block): New function. |
| (mark_realized_functions): New function. |
| (afdo_annotate_cfg): Fix dump. |
| (auto_profile): Mark realized functions and offline rest; do not compute |
| fn summary. |
| |
| 2025-06-27 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/113934 |
| * config/avr/avr.opt (-mlra): Turn on per default. |
| |
| 2025-06-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120808 |
| * tree-vect-slp-patterns.cc (vect_match_expression_p): |
| Take a code_helper and also match calls. |
| (addsub_pattern::recognize): Handle .FMA/.FMS pairs |
| in addition to PLUS/MINUS. |
| (addsub_pattern::build): Adjust. |
| |
| 2025-06-27 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_chooses_same_modes_p): New |
| overload. |
| * tree-vect-stmts.cc (vect_chooses_same_modes_p): Likewise. |
| * tree-vect-loop.cc (vect_analyze_loop): Prune epilogue |
| analysis further when not using partial vectors. |
| |
| 2025-06-27 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_analyze_loop): Consider AVX512 |
| style masking when computing supports_partial_vectors. |
| |
| 2025-06-27 Tamar Christina <tamar.christina@arm.com> |
| |
| * doc/extend.texi: Fix typo in unsed attribute docs. |
| |
| 2025-06-27 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120830 |
| * config/i386/i386-features.cc (ix86_get_vector_cse_mode): Handle |
| vector broadcast source. |
| |
| 2025-06-27 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/120424 |
| * lra-eliminations.cc (elimination_2sp_occurred_p): Rename |
| from... |
| (elimination_fp2sp_occured_p): ... this. Adjust all uses. |
| (lra_eliminate_regs_1): Don't require a from-frame-pointer |
| elimination to set it. |
| (update_reg_eliminate): Likewise to test it. |
| |
| 2025-06-27 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/120424 |
| * lra-eliminations.cc (lra_eliminate_regs_1): Adjust autoinc |
| addresses that are MEMs. |
| |
| 2025-06-27 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/120424 |
| * lra-eliminations.cc (lra_update_fp2sp_elimination): Reorder |
| and regroup related statements. |
| |
| 2025-06-27 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/120424 |
| * lra-eliminations.cc (lra_update_fp2sp_elimination): |
| Avoid sp offsets in further fp2sp eliminations... |
| (update_reg_eliminate): ... and restore to_rtx before assert |
| checking. |
| |
| 2025-06-27 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/120424 |
| * lra-eliminations.cc (lra_update_fp2sp_elimination): |
| Compute complete live ranges and recompute slots' live ranges |
| if needed. |
| * lra-lives.cc (lra_reset_live_range_list): New. |
| (lra_complete_live_ranges): New. |
| * lra-spills.cc (assign_spill_hard_regs): Reject empty live |
| ranges. |
| (add_pseudo_to_slot): Likewise. |
| (lra_recompute_slots_live_ranges): New. |
| * lra-int.h (lra_reset_live_range_list): Declare. |
| (lra_complete_live_ranges): Declare. |
| (lra_recompute_slots_live_ranges): Declare. |
| |
| 2025-06-27 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/120424 |
| * genoutput.cc (scan_operands): Make MATCH_SCRATCHes eliminable. |
| |
| 2025-06-27 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/120424 |
| * lra-eliminations.cc (lra_update_fp2sp_elimination): |
| Inactivate the unused fp2sp elimination right away. |
| |
| 2025-06-26 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/pru/pru.md (reg move splitter): New splitter for 64-bit |
| register moves into two 32-bit moves. |
| (const_int move splitter): New splitter for 64-bit constant |
| integer moves into two 32-bit moves. |
| |
| 2025-06-26 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h (diagnostic_context::set_permissive_option): New. |
| (diagnostic_context::set_fatal_errors): New. |
| (diagnostic_context::set_internal_error_callback): New. |
| (diagnostic_context::set_adjust_diagnostic_info_callback): New. |
| (diagnostic_context::inhibit_notes): New. |
| (diagnostic_context::m_opt_permissive): Make private. |
| (diagnostic_context::m_fatal_errors): Likewise. |
| (diagnostic_context::m_internal_error): Likewise. |
| (diagnostic_context::m_adjust_diagnostic_info): Likewise. |
| (diagnostic_context::m_inhibit_notes_p): Likewise. |
| (diagnostic_inhibit_notes): Delete. |
| * opts.cc (common_handle_option): Use |
| diagnostic_context::set_fatal_errors. |
| * toplev.cc (internal_error_function): Use |
| diagnostic_context::set_internal_error_callback. |
| (general_init): Likewise. |
| (process_options): Use diagnostic_context::inhibit_notes. |
| |
| 2025-06-26 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/120809 |
| * diagnostic-format-html.cc |
| (html_builder::maybe_make_state_diagram): Bulletproof against the |
| SVG generation failing. |
| * xml.cc (xml::printer::push_element): Assert that the ptr is |
| nonnull. |
| (xml::printer::append): Likewise. |
| |
| 2025-06-26 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-output-spec.cc (sarif_scheme_handler::make_sink): |
| Split out creation of sarif_generation_options and |
| sarif_serialization_format into... |
| (sarif_scheme_handler::make_sarif_gen_opts): ...this... |
| (sarif_scheme_handler::make_sarif_serialization_object): ...and |
| this. |
| |
| 2025-06-26 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR target/120828 |
| * config/riscv/riscv-v.cc (prepare_ternary_operands): Handle the |
| vector-scalar case. |
| |
| 2025-06-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/120719 |
| * config/i386/i386.md (crc_rev<SWI124:mode>si4): New expander. |
| |
| 2025-06-26 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.md: Fix build issue. |
| |
| 2025-06-26 Martin Jambor <mjambor@suse.cz> |
| |
| * lto-ltrans-cache.h (class ltrans_file_cache): Remove member prefix. |
| * lto-ltrans-cache.cc (ltrans_file_cache::ltrans_file_cache): Do |
| not initialize member prefix. |
| |
| 2025-06-26 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.md: Add comment and reorder include |
| files. |
| |
| 2025-06-26 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-vect-stmts.cc (supportable_indirect_convert_operation): |
| Remove an unused shadowed variable. |
| |
| 2025-06-26 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-vect-slp.cc (cond_expr_maps): Remove. |
| |
| 2025-06-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (function_instance::merge): Add TODO. |
| (autofdo_source_profile::offline_external_functions): |
| Do not use range for on the worklist. |
| * timevar.def (TV_IPA_AUTOFDO_OFFLINE): New timevar. |
| |
| 2025-06-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (name_index_set, name_index_map): New types. |
| (dump_afdo_loc): New function. |
| (dump_inline_stack): Simplify. |
| (function_instance::merge): Merge recursively inlined functions; |
| offline if necessary; collect new fnctions. |
| (function_instance::offline): New member function. |
| (function_instance::offline_if_in_set): New member function. |
| (function_instance::remove_external_functions): New member function. |
| (function_instance::dump): New member function. |
| (function_instance::debug): New member function. |
| (function_instance::dump_inline_stack): New member function. |
| (function_instance::find_icall_target_map): Use removed_icall_target. |
| (function_instance::remove_icall_target): Only mark icall target removed. |
| (autofdo_source_profile::offline_external_functions): New function. |
| (function_instance::read_function_instance): Record inlined_to pointers; |
| use -1 for unknown head counts. |
| (autofdo_source_profile::get_function_instance_by_name_index): New |
| function. |
| (autofdo_source_profile::add_function_instance): New member function. |
| (autofdo_source_profile::read): Do not leak memory; fix formatting. |
| (read_profile): Fix formatting. |
| (afdo_annotate_cfg): LIkewise. |
| (class pass_ipa_auto_profile_offline): New pass. |
| (make_pass_ipa_auto_profile_offline): New function. |
| * passes.def (pass_ipa_auto_profile_offline): Add |
| * tree-pass.h (make_pass_ipa_auto_profile): Declare |
| |
| 2025-06-26 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120819 |
| * config/i386/i386-features.cc (ix86_broadcast_inner): Also handle |
| all 1s float vector constant. |
| |
| 2025-06-26 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120816 |
| * config/i386/i386-features.cc (remove_redundant_vector_load): |
| Handle REG_EH_REGION note in DEF_INSN. |
| |
| 2025-06-26 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/119628 |
| * config/i386/i386-expand.cc (ix86_expand_call): Call |
| ix86_type_no_callee_saved_registers_p instead of looking up |
| no_callee_saved_registers attribute. |
| * config/i386/i386-options.cc (ix86_set_func_type): Look up |
| preserve_none attribute. Check preserve_none attribute for |
| interrupt attribute. Don't check no_caller_saved_registers nor |
| no_callee_saved_registers conflicts here. |
| (ix86_set_func_type): Check no_callee_saved_registers before |
| checking no_caller_saved_registers attribute. |
| (ix86_set_current_function): Allow SSE with |
| no_caller_saved_registers attribute. |
| (ix86_handle_call_saved_registers_attribute): Check preserve_none, |
| no_callee_saved_registers and no_caller_saved_registers conflicts. |
| (ix86_gnu_attributes): Add preserve_none attribute. |
| * config/i386/i386-protos.h (ix86_type_no_callee_saved_registers_p): |
| New. |
| * config/i386/i386.cc |
| (x86_64_preserve_none_int_parameter_registers): New. |
| (ix86_using_red_zone): Don't use red-zone when there are no |
| caller-saved registers with SSE. |
| (ix86_type_no_callee_saved_registers_p): New. |
| (ix86_function_ok_for_sibcall): Also check TYPE_PRESERVE_NONE |
| and call ix86_type_no_callee_saved_registers_p instead of looking |
| up no_callee_saved_registers attribute. |
| (ix86_comp_type_attributes): Call |
| ix86_type_no_callee_saved_registers_p instead of looking up |
| no_callee_saved_registers attribute. Return 0 if preserve_none |
| attribute doesn't match in 64-bit mode. |
| (ix86_function_arg_regno_p): For cfun with TYPE_PRESERVE_NONE, |
| use x86_64_preserve_none_int_parameter_registers. |
| (init_cumulative_args): Set preserve_none_abi. |
| (function_arg_64): Use x86_64_preserve_none_int_parameter_registers |
| with preserve_none attribute. |
| (setup_incoming_varargs_64): Use |
| x86_64_preserve_none_int_parameter_registers with preserve_none |
| attribute. |
| (ix86_save_reg): Treat TYPE_PRESERVE_NONE like |
| TYPE_NO_CALLEE_SAVED_REGISTERS. |
| (ix86_nsaved_sseregs): Allow saving XMM registers for |
| no_caller_saved_registers attribute. |
| (ix86_compute_frame_layout): Likewise. |
| (x86_this_parameter): Use |
| x86_64_preserve_none_int_parameter_registers with preserve_none |
| attribute. |
| * config/i386/i386.h (ix86_args): Add preserve_none_abi. |
| (call_saved_registers_type): Add TYPE_PRESERVE_NONE. |
| (machine_function): Change call_saved_registers to 3 bits. |
| * doc/extend.texi: Add preserve_none attribute. Update |
| no_caller_saved_registers attribute to remove -mgeneral-regs-only |
| restriction. |
| |
| 2025-06-25 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-features.cc (ix86_place_single_vector_set): |
| Add debug dump. |
| (replace_vector_const): Likewise. |
| (remove_redundant_vector_load): Likewise. |
| |
| 2025-06-25 Luis Silva <luiss@synopsys.com> |
| |
| * config/arc/arc.md (<su_optab>mulvsi4): New define_expand. |
| (<su_optab>mulsi3_Vcmp): New define_insn. |
| |
| 2025-06-25 Luis Silva <luiss@synopsys.com> |
| |
| * config/arc/arc.cc (arc_select_cc_mode): Handle multiplication |
| results compared against zero, selecting CC_Zmode. |
| * config/arc/arc.md (*mulsi3_cmp0): New define_insn. |
| (*mulsi3_cmp0_noout): New define_insn. |
| |
| 2025-06-25 Shahab Vahedi <shahab@synopsys.com> |
| |
| * config/arc/arc.md (subsi3_v, subvsi4, subsi3_c): New patterns. |
| |
| 2025-06-25 Shahab Vahedi <shahab@synopsys.com> |
| |
| * config/arc/arc-modes.def (CC_V): New mode. |
| * config/arc/arc-protos.h (arc_gen_unlikely_cbranch): New |
| function declaration. |
| * config/arc/arc.cc (arc_gen_unlikely_cbranch): New |
| function. |
| (get_arc_condition_code): Handle new mode. |
| * config/arc/arc.md (addvsi3_v, addvsi4, addsi3_c, uaddvsi4): New |
| patterns. |
| * config/arc/predicates.md (proper_comparison_operator): Handel |
| the new V_mode. |
| (equality_comparison_operator): Likewise. |
| |
| 2025-06-25 Martin Jambor <mjambor@suse.cz> |
| |
| * diagnostic-path-output.cc (path_label::get_effects): Mark as |
| final override. |
| * diagnostic-format-html.cc |
| (html_output_format::after_diagnostic): Likewise. |
| |
| 2025-06-25 Martin Jambor <mjambor@suse.cz> |
| |
| * gimple-range-op.cc |
| (gimple_range_op_handler::maybe_builtin_call): Use |
| CFN_BUILT_IN_ISINF instead of BUILT_IN_ISINF. |
| |
| 2025-06-25 Martin Jambor <mjambor@suse.cz> |
| |
| * value-relation.h (class dom_oracle): Mark member function |
| next_relation as override. |
| |
| 2025-06-25 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-ssa-propagate.h (class substitute_and_fold_engine): Mark |
| member functions value_of_expr and range_of_expr as override. |
| |
| 2025-06-25 Martin Jambor <mjambor@suse.cz> |
| |
| * range-op-mixed.h (class operator_plus): Mark member function |
| overflow_free_p as final override. |
| (class operator_minus): Likewise. |
| (class operator_mult): Likewise. |
| * range-op-ptr.cc (class pointer_plus_operator): Mark member |
| function lhs_op1_relation as final override. |
| * range-op.cc (class operator_div::): Mark member functions |
| op2_range and update_bitmask as final override. |
| (class operator_logical_and): Mark member functions fold_range, |
| op1_range and op2_range as final override. Remove unnecessary |
| virtual. |
| (class operator_logical_or): Likewise. |
| (class operator_logical_not): Mark member functions fold_range and |
| op1_range as final override. Remove unnecessary virtual. |
| formatting easier. |
| (class operator_absu): Mark member functions wi_fold as final |
| override. |
| |
| 2025-06-25 Martin Jambor <mjambor@suse.cz> |
| |
| * gimple-ssa-sccopy.cc (class pass_sccopy): Mark member functions |
| gate and execute as final override. |
| |
| 2025-06-25 Martin Jambor <mjambor@suse.cz> |
| |
| * avoid-store-forwarding.cc (class |
| pass_rtl_avoid_store_forwarding): Mark member function gate as |
| final override. |
| |
| 2025-06-25 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (relation_to_code): Remove. |
| |
| 2025-06-25 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.cc (frange::verify_range): Constify. |
| (irange::verify_range): Constify. |
| * value-range.h (vrange::verify_range): New. |
| (irange::verify_range): Make public. |
| (prange::verify_range): Make public. |
| (prange::verify_range): Make public. |
| (value_range::verify_range): New. |
| |
| 2025-06-25 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.cc (irange::get_bitmask): Return original mask if |
| result is unknown. |
| (assert_snap_result): New. |
| (test_irange_snap_bounds): New. |
| (range_tests_misc): Call test_irange_snap_bounds. |
| |
| 2025-06-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/109892 |
| * tree-vect-loop.cc (check_reduction_path): Handle fma. |
| (vectorizable_reduction): Apply FOLD_LEFT_REDUCTION code |
| generation constraints. |
| |
| 2025-06-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120808 |
| * tree-vectorizer.h (compatible_calls_p): Add flag to |
| indicate a FMA/FMS pair is allowed. |
| * tree-vect-slp.cc (compatible_calls_p): Likewise. |
| (vect_build_slp_tree_1): Allow mixed .FMA/.FMS as two-operator. |
| (vect_build_slp_tree_2): Handle calls in two-operator SLP build. |
| * tree-vect-slp-patterns.cc (compatible_complex_nodes_p): |
| Adjust. |
| |
| 2025-06-25 Alfie Richards <alfie.richards@arm.com> |
| |
| * tree-ssa-loop-ivopts.cc (constant_multiple_of): Change |
| tree_to_aff_combination to tree_to_aff_combination_expand and add |
| parameter to take ivopts_data. |
| (get_computation_aff_1): Change parameters and calls to include |
| ivopts_data. |
| (get_computation_aff): Ditto. |
| (get_computation_at) Ditto.: |
| (get_debug_computation_at) Ditto.: |
| (get_computation_cost) Ditto.: |
| (rewrite_use_nonlinear_expr) Ditto.: |
| (rewrite_use_address) Ditto.: |
| (rewrite_use_compare) Ditto.: |
| (remove_unused_ivs) Ditto.: |
| |
| 2025-06-25 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/120745 |
| * rtl-ssa/changes.cc (process_uses_of_deleted_def): Rewrite to |
| handle deletions of non-degenerate phis. |
| |
| 2025-06-25 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120815 |
| * common/config/i386/i386-common.cc (processor_alias_table): |
| Replace CPU_SLM/PTA_NEHALEM with CPU_HASWELL/PTA_HASWELL for |
| PROCESSOR_INTEL. |
| * config/i386/i386-options.cc (processor_cost_table): Replace |
| intel_cost with alderlake_cost. |
| * config/i386/x86-tune-costs.h (intel_cost): Removed. |
| * config/i386/x86-tune-sched.cc (ix86_issue_rate): Treat |
| PROCESSOR_INTEL like PROCESSOR_ALDERLAKE. |
| (ix86_adjust_cost): Likewise. |
| * doc/invoke.texi: Update -mtune=intel for Diamond Rapids and |
| Clearwater Forest. |
| |
| 2025-06-25 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/i386.h (PTA_ALDERLAKE): Use PTA_GOLDMONT_PLUS |
| as base to remove PTA_CLDEMOTE. |
| (PTA_SIERRAFOREST): Add PTA_CLDEMOTE since PTA_ALDERLAKE |
| does not include that anymore. |
| * doc/invoke.texi: Update texi file. |
| |
| 2025-06-25 Jiawei <jiawei@iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc: New Profiles. |
| |
| 2025-06-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * common.opt: (fauto-profile-inlining): New |
| * doc/invoke.texi (-fauto-profile-inlining): Document. |
| * ipa-inline.cc (inline_functions_by_afdo): Check |
| flag_auto_profile. |
| (early_inliner): Also do inline_functions_by_afdo with |
| !flag_early_inlining. |
| |
| 2025-06-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc: Update toplevel comment. |
| (early_inline): Remove. |
| (auto_profile): Don't do early inlining. |
| |
| 2025-06-24 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn-opts.h (TARGET_GLC_NAME): Fix and extend the |
| description in the comment. |
| * config/gcn/gcn.cc (print_operand): Extend the comment about |
| 'G' and 'g'. |
| * config/gcn/gcn.md: Use 'glc' instead of %G where appropriate. |
| |
| 2025-06-24 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR target/119100 |
| * config/riscv/autovec-opt.md (*<optab>_vf_<mode>): Handle both add and |
| acc FMA variants. |
| * config/riscv/vector.md (*pred_mul_<optab><mode>_scalar_undef): New. |
| |
| 2025-06-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md |
| (@pro_epilogue_adjust_stack_add_nocc<mode>): Add type attribute. |
| (pro_epilogue_adjust_stack_add_nocc peephole2 pattern): |
| Convert pro_epilogue_adjust_stack_add_nocc variant to |
| pro_epilogue_adjust_stack_add when FLAGS_REG is dead. |
| |
| 2025-06-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_load): Remove non-SLP |
| paths and propagate out ncopies == 1. |
| |
| 2025-06-24 Marc Poulhiès <poulhies@adacore.com> |
| |
| * diagnostic-state-to-dot.cc (get_color_for_dynalloc_state): |
| Rename argument dynalloc_state to dynalloc_st. |
| (add_title_tr): Rename argument style to styl. |
| (on_xml_node): Rename local variable dynalloc_state to dynalloc_st. |
| |
| 2025-06-24 Yuao Ma <c8ef@outlook.com> |
| |
| * tree-call-cdce.cc (edom_only_function): Remove atan. |
| |
| 2025-06-24 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/vector.md (VF): Don't restrict modes. |
| (VEC_SET_SINGLEFLOAT): Ditto. |
| |
| 2025-06-24 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_override_options_internal): Set |
| value of parameter based on option. |
| * config/aarch64/aarch64.opt (autovec-preference): New. |
| * doc/invoke.texi (autovec-preference): Document it. |
| |
| 2025-06-24 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.opt (max-vectorization): New. |
| * config/aarch64/aarch64.cc (aarch64_override_options_internal): Save |
| and restore option. |
| Implement it through vect-scalar-cost-multiplier. |
| (aarch64_attributes): Default to off. |
| * common/config/aarch64/aarch64-common.cc (aarch64_handle_option): |
| Initialize option. |
| * doc/extend.texi (max-vectorization): Document attribute. |
| * doc/invoke.texi (max-vectorization): Document flag. |
| |
| 2025-06-24 hongtao.liu <hongtao.liu@intel.com> |
| |
| PR target/115842 |
| * tree-ssa-loop-ivopts.cc (determine_group_iv_cost_address): |
| Don't recalculate inv_expr when group-candidate cost |
| calucalution. |
| |
| 2025-06-24 Tamar Christina <tamar.christina@arm.com> |
| |
| * doc/extend.texi: Document pragma unroll interaction with vectorizer. |
| * tree-vectorizer.h (LOOP_VINFO_USER_UNROLL): New. |
| (class _loop_vec_info): Add user_unroll. |
| * tree-vect-loop.cc (vect_analyze_loop_1): Set |
| suggested_unroll_factor and retry. |
| (_loop_vec_info::_loop_vec_info): Initialize user_unroll. |
| (vect_transform_loop): Clear the loop->unroll value if the pragma was |
| used. |
| |
| 2025-06-24 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters, |
| vect_gen_vector_loop_niters_mult_vf): Remove uses of log_vf. |
| |
| 2025-06-24 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/92080 |
| * config/i386/i386-expand.cc (ix86_expand_call): Set |
| recursive_function to true for recursive call. |
| * config/i386/i386-features.cc (ix86_place_single_vector_set): |
| Add an argument for inner scalar, default to nullptr. Set the |
| source from inner scalar if not nullptr. |
| (ix86_get_vector_load_mode): Renamed to ... |
| (ix86_get_vector_cse_mode): This. Add an argument for scalar mode |
| and handle integer and float scalar modes. |
| (replace_vector_const): Add an argument for scalar mode and pass |
| it to ix86_get_vector_load_mode. |
| (x86_cse_kind): New. |
| (redundant_load): Likewise. |
| (ix86_broadcast_inner): Likewise. |
| (remove_redundant_vector_load): Also support const0_rtx and |
| constm1_rtx broadcasts. Handle vector broadcasts from constant |
| and variable scalars. |
| * config/i386/i386.h (machine_function): Add recursive_function. |
| |
| 2025-06-24 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/70308 |
| PR target/101366 |
| PR target/102294 |
| PR target/108585 |
| PR target/118276 |
| PR target/119596 |
| PR target/119703 |
| PR target/119704 |
| * config/i386/x86-tune-costs.h (generic_memcpy): Updated. |
| (generic_memset): Likewise. |
| (generic_cost): Change CLEAR_RATIO to 10. |
| |
| 2025-06-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-inline.cc (expand_call_inline): Preserve discriminator. |
| |
| 2025-06-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (afdo_set_bb_count): Dump also 0 count stmts. |
| (afdo_annotate_cfg): Fix conditional for block having non-zero static |
| profile. |
| |
| 2025-06-24 Lili Cui <lili.cui@intel.com> |
| |
| PR target/120741 |
| * config/i386/i386.cc (ix86_expand_prologue): |
| Remove 1 assertion. |
| |
| 2025-06-24 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/118241 |
| * config/riscv/predicates.md: Fix comment typo in recent change. |
| |
| 2025-06-23 Sam James <sam@gentoo.org> |
| Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/120795 |
| * ext-dce.cc (ext_dce_try_optimize_insn): Enable rescan in |
| remove_reg_equal_equiv_notes call. |
| |
| 2025-06-23 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| PR testsuite/116163 |
| PR sarif-replay/120792 |
| * Makefile.in (OBJS-libcommon): Add diagnostic-output-spec.o. |
| * diagnostic-format-html.cc (html_builder::html_builder): Ensure |
| title is non-empty. |
| * diagnostic-output-spec.cc: New file, taken from material in |
| opts-diagnostic.cc. |
| * diagnostic-output-spec.h: New file. |
| * diagnostic.cc (diagnostic_context::set_main_input_filename): |
| New. |
| * diagnostic.h (diagnostic_context::set_main_input_filename): New |
| decl. |
| * doc/libgdiagnostics/topics/compatibility.rst |
| (LIBGDIAGNOSTICS_ABI_2): New. |
| * doc/libgdiagnostics/topics/diagnostic-manager.rst |
| (diagnostic_manager_add_sink_from_spec): New. |
| (diagnostic_manager_set_analysis_target): New. |
| * libgdiagnostics++.h (manager::add_sink_from_spec): New. |
| (manager::set_analysis_target): New. |
| * libgdiagnostics.cc: Include "diagnostic-output-spec.h". |
| (struct spec_context): New. |
| (diagnostic_manager_add_sink_from_spec): New. |
| (diagnostic_manager_set_analysis_target): New. |
| * libgdiagnostics.h |
| (LIBDIAGNOSTICS_HAVE_diagnostic_manager_add_sink_from_spec): New |
| define. |
| (diagnostic_manager_add_sink_from_spec): New decl. |
| (LIBDIAGNOSTICS_HAVE_diagnostic_manager_set_analysis_target): New |
| define. |
| (diagnostic_manager_set_analysis_target): New decl. |
| * libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_2): New. |
| * libsarifreplay.cc (sarif_replayer::handle_artifact_obj): Looks |
| for "analysisTarget" in roles and call set_analysis_target using |
| the artifact if found. |
| * opts-diagnostic.cc: Refactor, moving material to |
| diagnostic-output-spec.cc. |
| (struct opt_spec_context): New. |
| (handle_OPT_fdiagnostics_add_output_): Use opt_spec_context. |
| (handle_OPT_fdiagnostics_set_output_): Likewise. |
| * sarif-replay.cc: Define INCLUDE_STRING. |
| (struct options): Add m_extra_output_specs. |
| (usage_msg): Add -fdiagnostics-add-output=SCHEME. |
| (str_starts_with): New. |
| (parse_options): Add -fdiagnostics-add-output=SCHEME. |
| (main): Likewise. |
| * selftest-run-tests.cc (selftest::run_tests): Call |
| diagnostic_output_spec_cc_tests rather than |
| opts_diagnostic_cc_tests. |
| * selftest.h (selftest::diagnostic_output_spec_cc_tests): |
| Replace... |
| (selftest::opts_diagnostic_cc_tests): ...this. |
| |
| 2025-06-23 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| * Makefile.in (ANALYZER_OBJS): Add |
| analyzer/ana-state-to-diagnostic-state.o. |
| (OBJS): Move graphviz.o to... |
| (OBJS-libcommon): ...here. Add diagnostic-state-to-dot.o and pex.o. |
| * diagnostic-format-html.cc: Include "diagnostic-state.h" and |
| "graphviz.h". |
| (html_generation_options::html_generation_options): Initialize the |
| new flags. |
| (HTML_SCRIPT): Add function "get_any_state_diagram". Use it |
| when changing current focus id to update the visibility of the |
| pertinent diagram, if any. |
| (print_pre_source): New. |
| (html_builder::maybe_make_state_diagram): New. |
| (html_path_label_writer::html_path_label_writer): Add "path" param. |
| Initialize m_path and m_curr_event_id. |
| (html_path_label_writer::begin_label): Store current event id. |
| (html_path_label_writer::end_label): Attempt to make a state |
| diagram and add it if successful. |
| (html_path_label_writer::get_element_id): New. |
| (html_path_label_writer::m_path): New field. |
| (html_path_label_writer::m_curr_event_id): New field. |
| (html_builder::make_element_for_diagnostic): Pass path to label |
| writer. |
| * diagnostic-format-html.h |
| (html_generation_options::m_show_state_diagrams): New field. |
| (html_generation_options::m_show_state_diagram_xml): New field. |
| (html_generation_options::m_show_state_diagram_dot_src): New field. |
| * diagnostic-format-sarif.cc: Include "xml.h". |
| (populate_thread_flow_location_object): If requested, attempt to |
| generate xml state and add it to the proeprty bag as |
| "gcc/diagnostic_event/xml_state" in xml source form. |
| (sarif_generation_options::sarif_generation_options): Initialize |
| m_xml_state. |
| * diagnostic-format-sarif.h |
| (sarif_generation_options::m_xml_state): New field. |
| * diagnostic-path.cc: Define INCLUDE_MAP. Include "xml.h". |
| (diagnostic_event::maybe_make_xml_state): New. |
| * diagnostic-path.h (class xml::document): New forward decl. |
| (diagnostic_event::maybe_make_xml_state): New vfunc decl. |
| * diagnostic-state-to-dot.cc: New file. |
| * diagnostic-state.h: New file. |
| * digraph.cc: Define INCLUDE_STRING and INCLUDE_VECTOR. |
| * doc/analyzer.texi: Document state diagrams in html output. |
| (__analyzer_dump_dot): New. |
| (__analyzer_dump_xml): New. |
| * doc/invoke.texi (sarif): Add "xml-state" key. |
| (experimental-html): Add keys "show-state-diagrams", |
| "show-state-diagrams-dot-src" and "show-state-diagrams-xml". |
| * graphviz.cc: Define INCLUDE_MAP, INCLUDE_STRING, and |
| INCLUDE_VECTOR. Include "xml.h", "xml-printer.h", "pex.h" and |
| "selftest.h". |
| (graphviz_out::graphviz_out): Extract... |
| (dot::writer::writer): ...this. |
| (graphviz_out::write_indent): Convert to... |
| (dot::writer::write_indent): ...this. |
| (graphviz_out::print): Use get_pp. |
| (graphviz_out::println): Likewise. |
| (graphviz_out::begin_tr): Likewise. |
| (graphviz_out::end_tr): Likewise. |
| (graphviz_out::begin_td): Likewise. |
| (graphviz_out::end_td): Likewise. |
| (graphviz_out::begin_trtd): Likewise. |
| (graphviz_out::end_tdtr): Likewise. |
| (dot::ast_node::dump): New. |
| (dot::id::id): New. |
| (dot::id::print): New. |
| (dot::id::is_identifier_p): New. |
| (dot::kv_pair::print): New. |
| (dot::attr_list::print): New. |
| (dot::stmt_list::print): New. |
| (dot::stmt_list::add_edge): New. |
| (dot::stmt_list::add_attr): New. |
| (dot::graph::print): New. |
| (dot::stmt_with_attr_list::set_label): New. |
| (dot::node_stmt::print): New. |
| (dot::attr_stmt::print): New. |
| (dot::kv_stmt::print): New. |
| (dot::node_id::print): New. |
| (dot::port::print): New. |
| (dot::edge_stmt::print): New. |
| (dot::subgraph::print): New. |
| (dot::make_svg_document_buffer_from_graph): New. |
| (dot::make_svg_from_graph): New. |
| (selftest:test_ids): New. |
| (selftest:test_trivial_graph): New. |
| (selftest:test_layout_example): New. |
| (selftest:graphviz_cc_tests): New. |
| * graphviz.h (xml::node): New forward decl. |
| (class graphviz_out): Split out into... |
| (class dot::writer): ...this new class |
| (struct dot::ast_node): New. |
| (struct dot::id): New. |
| (struct dot::kv_pair): New. |
| (struct dot::attr_list): New. |
| (struct dot::stmt_list): New. |
| (struct dot::graph): New. |
| (struct dot::stmt): New. |
| (struct dot::stmt_with_attr_list): New. |
| (struct dot::node_stmt): New. |
| (struct dot::attr_stmt): New. |
| (struct dot::kv_stmt): New. |
| (enum class dot::compass_pt): New. |
| (struct dot::port): New. |
| (struct dot::node_id): New. |
| (struct dot::edge_stmt): New. |
| (struct dot::subgraph): New. |
| (dot::make_svg_from_graph): New. |
| * opts-diagnostic.cc (sarif_scheme_handler::make_sink): Add |
| "xml-state" flag. |
| (html_scheme_handler::make_sink): Add flags "show-state-diagrams", |
| "show-state-diagram-dot-src", and "show-state-diagram-xml". |
| * pex.cc: New file. |
| * pex.h: New file. |
| * selftest-run-tests.cc (selftest::run_tests): Call |
| graphviz_cc_tests. |
| * selftest.h (selftest::graphviz_cc_tests): New decl. |
| * xml.cc (xml::node_with_children::add_comment): New. |
| (xml::node_with_children::find_child_element): New. |
| (xml::element::get_attr): New. |
| (xml::comment::write_as_xml): New. |
| (selftest::test_printer): Add coverage of find_child_element and |
| get_attr. |
| (selftest::test_comment): New. |
| (selftest::xml_cc_tests): Call test_comment. |
| * xml.h: New forward decls. |
| (xml::node::dyn_cast_text): Use nullptr. |
| (xml::node::dyn_cast_element): New vfunc. |
| (xml::node_with_children::add_comment): New decl. |
| (xml::node_with_children::find_child_element): New decl. |
| (xml::element::dyn_cast_element): New vfunc impl. |
| (xml::element::get_attr): New decl. |
| (struct xml::comment): New xml::node subclass. |
| |
| 2025-06-23 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| * diagnostic-format-html.cc (html_token_printer::print_tokens): |
| Handle pp_token::kind::event_id. |
| (selftest::test_token_printer): Add coverage of printing an event |
| id. |
| |
| 2025-06-23 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add |
| new case US_PLUS. |
| (expand_vx_binary_vec_vec_dup): Ditto. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op us_plus. |
| |
| 2025-06-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120608 |
| * tree-tailcall.cc (empty_eh_cleanup): Ignore .ASAN_MARK (POISON) |
| internal calls for the cfun->has_musttail case and diag_musttail. |
| (find_tail_calls): Likewise. |
| |
| 2025-06-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120608 |
| * cfgexpand.cc: Include rtl-iter.h. |
| (expand_gimple_tailcall): Add ASAN_EPILOG_SEQ argument, if non-NULL |
| and expand_gimple_stmt emitted a tail call, emit a copy of that |
| insn sequence before the call sequence. |
| (expand_gimple_basic_block): Remove DISABLE_TAIL_CALLS argument, add |
| ASAN_EPILOG_SEQ argument. Disable tail call flag only on non-musttail |
| calls if that flag is set, pass it to expand_gimple_tailcall. |
| (pass_expand::execute): Pass VAR_RET_SEQ directly as last |
| expand_gimple_basic_block argument rather than its comparison with |
| NULL. |
| |
| 2025-06-23 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| * tree-vect-data-refs.cc (vect_peeling_supportable): Return new |
| enum values to indicate if combined peeling and versioning can |
| potentially support vectorization. |
| (vect_enhance_data_refs_alignment): Support combined peeling and |
| versioning in vectorization analysis. |
| * tree-vect-loop-manip.cc (vect_create_cond_for_align_checks): |
| Add a new type of runtime check for mutually aligned DRs. |
| * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Set |
| default value of allow_mutual_alignment in the initializer list. |
| * tree-vectorizer.h (enum peeling_support): Define type of |
| peeling support for function vect_peeling_supportable. |
| (LOOP_VINFO_ALLOW_MUTUAL_ALIGNMENT): New access macro. |
| |
| 2025-06-23 Mikael Morin <morin-mikael@orange.fr> |
| |
| * match.pd (`-(-X)`, `~(~X)`, `conj(conj(X))`): Add a |
| NON_LVALUE_EXPR wrapper to the simplification of doubled unary |
| operators NEGATE_EXPR, BIT_NOT_EXPR and CONJ_EXPR. |
| |
| 2025-06-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120729 |
| * gimple-predicate-analysis.h (uninit_analysis::prune_phi_opnds): |
| Add argument of work budget remaining. |
| * gimple-predicate-analysis.cc (uninit_analysis::prune_phi_opnds): |
| Likewise. Maintain and honor it throughout the recursion. |
| * params.opt (uninit-max-prune-work): New. |
| * doc/invoke.texi (uninit-max-prune-work): Document. |
| |
| 2025-06-23 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/120721 |
| * function.cc (instantiate_virtual_regs_in_insn): Use force_subreg |
| instead of simplify_gen_subreg when instantiating an rvalue SUBREG. |
| |
| 2025-06-23 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120728 |
| * config/i386/i386.cc (ix86_get_ssemov): Use vmovdqu16/vmovdqu8 |
| only with EVEX register operands. |
| |
| 2025-06-23 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-options.cc (processor_cost_table): Add a |
| PROCESSOR_XXX comment to each entry. |
| |
| 2025-06-22 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR target/119830 |
| * config/riscv/riscv.cc (riscv_build_integer_1): Make arithmetic in bclr case |
| clean for 32 bit hosts. |
| |
| 2025-06-22 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/120550 |
| * ext-dce.cc (ext_dce_try_optimize_insn): Drop REG_EQUAL/REG_EQUIV |
| notes on modified insns. |
| |
| 2025-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.h (TARGET_DEPBITS): New macro. |
| * config/xtensa/xtensa.md (insvsi): New insn pattern. |
| |
| 2025-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_zero_call_used_regs): |
| New prototype and function. |
| (TARGET_ZERO_CALL_USED_REGS): Define macro. |
| |
| 2025-06-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (update_count_by_afdo_count): Make static; |
| add variant accepting profile_count. |
| (afdo_find_equiv_class): Use update_count_by_afdo_count. |
| (afdo_propagate_edge): Likewise. |
| (afdo_propagate): Likewise. |
| (afdo_calculate_branch_prob): Fix handling of all_known. |
| (afdo_annotate_cfg): Annotate by 0 where both afdo and static |
| profile agrees. |
| |
| 2025-06-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (afdo_set_bb_count): Dump inline stacks |
| and reasons when lookup failed. |
| (afdo_set_bb_count): Record info about BBs with zero AFDO count. |
| (afdo_annotate_cfg): Set profile to global0_afdo if there are |
| no samples in profile. |
| |
| 2025-06-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-profile.cc (ipa_profile): Use widest_int to avoid |
| possible overflows. |
| |
| 2025-06-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (autofdo::afdo_count_scale): New. |
| (autofdo_source_profile::update_inlined_ind_target): Scale |
| counts. |
| (autofdo_source_profile::read): Set scale and dump |
| statistics. |
| (afdo_indirect_call): Scale. |
| (afdo_set_bb_count): Scale. |
| (afdo_find_equiv_class): Fix dumps. |
| (afdo_annotate_cfg): Scale. |
| |
| 2025-06-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.cc (cgraph_node::make_profile_global0): Support |
| GUESSED_GLOBAL0_AFDO |
| * ipa-cp.cc (update_profiling_info): Use |
| GUESSED_GLOBAL0_AFDO. |
| * profile-count.cc (profile_probability::dump): Use |
| quality (). |
| (profile_probability::stream_in): Use m_adjusted_quality. |
| (profile_probability::stream_out): Use m_adjusted_quality. |
| (profile_count::combine_with_ipa_count): Use quality (). |
| (profile_probability::sqrt): Likewise. |
| * profile-count.h (enum profile_quality): Add |
| GUESSED_GLOBAL0_AFDO; reoder GUESSED_GLOBAL0_ADJUSTED and |
| GUESSED_GLOBAL0. |
| (profile_probability): Add min_quality; replase m_quality |
| by m_adjused_quality; add set_quality; update all users |
| of quality. |
| (profile_count): Set n_bits to 60; make m_quality 4 bits; |
| update uses of quality. |
| (profile_count::afdo_zero, profile_count::globa0afdo): New. |
| |
| 2025-06-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-inline.cc (copy_cfg_body): Fix profile of split functions. |
| |
| 2025-06-21 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/118241 |
| * config/riscv/predicates.md (prefetch_operand): New predicate. |
| * config/riscv/constraints.md (Q): New constraint. |
| * config/riscv/riscv.md (prefetch): Use new predicate and constraint. |
| (riscv_prefetchi_<mode>): Similarly. |
| |
| 2025-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120746 |
| * value-range.cc (irange::snap): Use int type instead of uint. |
| |
| 2025-06-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (dump_inline_stack): New function. |
| (get_inline_stack_in_node): New function. |
| (get_relative_location_for_stmt): Add FN parameter. |
| (has_indirect_call): Remove. |
| (function_instance::find_icall_target_map): Add FN parameter. |
| (function_instance::remove_icall_target): New function. |
| (function_instance::read_function_instance): Set sum_max. |
| (autofdo_source_profile::get_count_info): Add NODE parameter. |
| (autofdo_source_profile::update_inlined_ind_target): Add NODE parameter. |
| (autofdo_source_profile::remove_icall_target): New function. |
| (afdo_indirect_call): Add INDIRECT_EDGE parameter; dump reason |
| for failure; do not check for recursion; do not inline call. |
| (afdo_vpt): Add INDIRECT_EDGE parameter. |
| (afdo_set_bb_count): Do not take PROMOTED set. |
| (afdo_vpt_for_early_inline): Remove. |
| (afdo_annotate_cfg): Do not take PROMOTED set. |
| (auto_profile): Do not call afdo_vpt_for_early_inline. |
| (afdo_callsite_hot_enough_for_early_inline): Dump count. |
| (remove_afdo_speculative_target): New function. |
| * auto-profile.h (afdo_vpt_for_early_inline): Declare. |
| (remove_afdo_speculative_target): Declare. |
| * ipa-inline.cc (inline_functions_by_afdo): Do VPT. |
| (early_inliner): Redirecct edges if inlining happened. |
| * tree-inline.cc (expand_call_inline): Add sanity check. |
| |
| 2025-06-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (get_inline_stack): Add fn parameter. |
| * ipa-inline.cc (want_early_inline_function_p): Do not care |
| about AFDO. |
| (inline_functions_by_afdo): New function. |
| (early_inliner): Use it. |
| |
| 2025-06-21 Pan Li <pan2.li@intel.com> |
| |
| PR target/120652 |
| * config/riscv/autovec.md: Add immediate_operand for |
| select_vl operand 2. |
| |
| 2025-06-20 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/120701 |
| * value-range.cc (irange::verify_range): Verify range pairs are |
| sorted properly. |
| (irange::snap): Check for over/underflow properly. |
| |
| 2025-06-20 Andrew Stubbs <ams@baylibre.com> |
| |
| PR target/120722 |
| * config/gcn/gcn.cc (gcn_hard_regno_mode_ok): Allow SImode in VCC_HI. |
| |
| 2025-06-20 Jørgen Kvalsvik <j@lambda.is> |
| |
| PR gcov-profile/120634 |
| * prime-paths.cc (struct auto_vec_vec): Add constructor from |
| vec. |
| (test_split_components): Use auto_vec_vec. |
| (test_scc_internal_prime_paths): Ditto. |
| (test_scc_entry_exit_paths): Ditto. |
| (test_complete_prime_paths): Ditto. |
| (test_entry_prime_paths): Ditto. |
| (test_singleton_path): Ditto. |
| |
| 2025-06-20 Jørgen Kvalsvik <j@lambda.is> |
| |
| PR gcov-profile/120634 |
| * prime-paths.cc (trie::paths): Use auto_vec. |
| |
| 2025-06-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120654 |
| * vr-values.cc (range_fits_type_p): Check for undefined_p () |
| before accessing type (). |
| |
| 2025-06-20 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120708 |
| * config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Use |
| MOVE_MAX to get the widest vector mode in vector loop. |
| |
| 2025-06-20 Stafford Horne <shorne@gmail.com> |
| |
| * config/or1k/or1k.cc (or1k_noce_conversion_profitable_p): New |
| function. |
| (or1k_is_cmov_insn): New function. |
| (TARGET_NOCE_CONVERSION_PROFITABLE_P): Define macro. |
| * config/or1k/or1k.md (cbranchsi4): Convert to insn_and_split. |
| (cbranch<mode>4): Convert to insn_and_split. |
| |
| 2025-06-20 Stafford Horne <shorne@gmail.com> |
| |
| PR target/120587 |
| * config/or1k/or1k.md (zero_extendbisi2_sr_f): New expand. |
| (extendbisi2_sr_f): New expand. |
| * config/or1k/predicates.md (sr_f_reg_operand): New predicate. |
| |
| 2025-06-20 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add |
| new case UMIN. |
| (expand_vx_binary_vec_vec_dup): Ditto. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op umin. |
| |
| 2025-06-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/120689 |
| * function.cc (assign_parm_setup_block): Align parm to at least |
| word alignment even on !STRICT_ALIGNMENT targets, as long as |
| BITS_PER_WORD is not larger than MAX_SUPPORTED_STACK_ALIGNMENT. |
| |
| 2025-06-19 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120427 |
| * config/i386/i386.md (*mov<mode>_and): Changed to |
| define_insn_and_split. Split it to "mov $0,mem" if not -Oz. |
| (*mov<mode>_or): Changed to define_insn_and_split. Split it |
| to "mov $-1,mem" if not -Oz. |
| (peephole2): Don't transform "mov $-1,reg" to "push $-1; pop reg" |
| for -Oz since it will be transformed to "or $-1,reg". |
| |
| 2025-06-19 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR other/115893 |
| * doc/install.texi (Prerequisites): Note that Texinfo older |
| than v7.1 may throw incorrect build warnings, cf. |
| https://lists.nongnu.org/archive/html/help-texinfo/2023-11/msg00004.html |
| |
| 2025-06-19 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add "generic" tune. |
| * config/riscv/riscv.cc: Add generic_tune_info. |
| * config/riscv/riscv.h (RISCV_TUNE_STRING_DEFAULT): Change default tune. |
| |
| 2025-06-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120631 |
| * dfp.cc (decimal_real_to_integer): Use result multiplication not just |
| when precision > 128 and dn.exponent > 19, but when precision > 64 |
| and dn.exponent > 0. |
| |
| 2025-06-19 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.cc (riscv_legitimize_move): Use |
| riscv_2x_xlen_mode_p. |
| (riscv_binary_cost): Ditto. |
| (riscv_hard_regno_mode_ok): Ditto. |
| |
| 2025-06-19 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.cc (riscv_cost_model): Add cost model for |
| zilsd. |
| |
| 2025-06-19 Lili Cui <lili.cui@intel.com> |
| |
| PR target/120697 |
| * config/i386/i386.cc (ix86_expand_prologue): |
| Remove 3 assertions and associated code. |
| |
| 2025-06-18 Dimitar Dimitrov <dimitar@dinux.eu> |
| Richard Sandiford <richard.sandiford@arm.com> |
| Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR target/119966 |
| * emit-rtl.cc (validate_subreg): Call simplify_subreg_regno |
| instead of checking info.representable_p.. |
| * rtl.h (simplify_subreg_regno): Add new argument |
| allow_stack_regs. |
| * rtlanal.cc (simplify_subreg_regno): Do not reject |
| stack-related registers if allow_stack_regs is true. |
| |
| 2025-06-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.cc (irange::intersect_bitmask): Always update the |
| stored mask to reflect the current calculated mask. |
| |
| 2025-06-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/119039 |
| * value-range.cc (irange::contains_p): Call wide_int version of |
| contains_p for singleton ranges. |
| (irange::intersect): If either range is a singleton, use |
| contains_p. |
| |
| 2025-06-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/119039 |
| * vr-values.cc (simplify_using_ranges::legacy_fold_cond): Remove. |
| (simplify_using_ranges::simplify_switch_using_ranges): Adjust. |
| |
| 2025-06-18 Richard Biener <rguenther@suse.de> |
| |
| * tree-cfg.cc (dump_function_to_file): Use flags, not dump_flags. |
| |
| 2025-06-18 Jan Beulich <jbeulich@suse.com> |
| |
| * doc/gcov.texi: Drop blank after @anchor. |
| |
| 2025-06-18 Jan Beulich <jbeulich@suse.com> |
| |
| * doc/extend.texi: Fill first argument of @xref{}. |
| |
| 2025-06-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120631 |
| * real.cc (decimal_from_integer): Add digits argument, if larger than |
| 256, use XALLOCAVEC allocated buffer. |
| (real_from_integer): Pass val_in's precision divided by 3 to |
| decimal_from_integer. |
| * dfp.cc (decimal_real_to_integer): For precision > 128 if finite |
| and exponent is large, decrease exponent and multiply resulting |
| wide_int by powers of 10^19. |
| |
| 2025-06-18 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add |
| new case SMIN. |
| (expand_vx_binary_vec_vec_dup): Ditto. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op smin. |
| |
| 2025-06-18 Lili Cui <lili.cui@intel.com> |
| Michael Matz <matz@suse.de> |
| |
| * config/i386/i386-protos.h (ix86_get_separate_components): |
| New function. |
| (ix86_components_for_bb): Likewise. |
| (ix86_disqualify_components): Likewise. |
| (ix86_emit_prologue_components): Likewise. |
| (ix86_emit_epilogue_components): Likewise. |
| (ix86_set_handled_components): Likewise. |
| * config/i386/i386.cc (save_regs_using_push_pop): |
| Split from ix86_compute_frame_layout. |
| (ix86_compute_frame_layout): |
| Use save_regs_using_push_pop. |
| (pro_epilogue_adjust_stack): |
| Use gen_pro_epilogue_adjust_stack_add_nocc. |
| (ix86_expand_prologue): Add some assertions and adjust |
| the stack frame at the beginning of the prolog for shrink |
| wrapping separate. |
| (ix86_emit_save_regs_using_mov): |
| Skip registers that are wrapped separately. |
| (ix86_emit_restore_regs_using_mov): Likewise. |
| (ix86_expand_epilogue): Add some assertions and set |
| restore_regs_via_mov to true for shrink wrapping separate. |
| (ix86_get_separate_components): New function. |
| (ix86_components_for_bb): Likewise. |
| (ix86_disqualify_components): Likewise. |
| (ix86_emit_prologue_components): Likewise. |
| (ix86_emit_epilogue_components): Likewise. |
| (ix86_set_handled_components): Likewise. |
| (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define. |
| (TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise. |
| (TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise. |
| (TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise. |
| (TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise. |
| (TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise. |
| * config/i386/i386.h (struct machine_function):Add |
| reg_is_wrapped_separately array for register wrapping |
| information. |
| * config/i386/i386.md |
| (@pro_epilogue_adjust_stack_add_nocc<mode>): New. |
| |
| 2025-06-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/120661 |
| * value-range.cc (irange::snap): New. |
| (irange::snap_subranges): New. |
| (irange::set_range_from_bitmask): Call snap_subranges. |
| * value-range.h (snap, snap_subranges): New prototypes. |
| |
| 2025-06-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (afdo_indirect_call): Compute speculative edge |
| probability. |
| (add_scale): Break out from ... |
| (scale_bbs): Break out from ... |
| (afdo_adjust_guessed_profile): ... here; use componet array instead of |
| current_component hash_map; handle components with only 0 profile; |
| be more agressive on finding scales along the boundary. |
| |
| 2025-06-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.cc (cgraph_node::apply_scale): Special case scaling |
| to profile_count::zero (). |
| (cgraph_node::verify_node): Add extra compatibility check. |
| |
| 2025-06-17 Umesh Kalappa <ukalappa.mips@gmail.com> |
| |
| * config/riscv/sync.md (lrsc_atomic_exchange<mode>): Use scratch |
| register for loop control rather than lr output. |
| |
| 2025-06-17 Jason Merrill <jason@redhat.com> |
| |
| * diagnostic.h (diagnostic_option_classifier): Friend |
| diagnostic_context. |
| (diagnostic_context::get_classification_history): New. |
| |
| 2025-06-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/120677 |
| * gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop): |
| Insert before gsi_after_labels instead of gsi_start_bb. Use |
| gimple_bb (output_crc) instead of output_crc->bb. Formatting fix. |
| |
| 2025-06-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/113027 |
| * config/aarch64/aarch64-protos.h (aarch64_decompose_vec_struct_index): |
| Declare. |
| * config/aarch64/aarch64.cc (aarch64_decompose_vec_struct_index): New |
| function. |
| * config/aarch64/iterators.md (VEL, Vel): Add Advanced SIMD |
| structure modes. |
| * config/aarch64/aarch64-simd.md (vec_set<VSTRUCT_QD:mode>) |
| (vec_extract<VSTRUCT_QD:mode>): New patterns. |
| |
| 2025-06-17 Tobias Burnus <tburnus@baylibre.com> |
| |
| * omp-offload.cc (omp_discover_declare_target_tgt_fn_r): Also |
| walk external functions that are declare inline (and have a |
| DECL_SAVED_TREE). |
| |
| 2025-06-16 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_sve_valid_pred_p): |
| Declare helper for aarch64_predicate_operand. |
| (aarch64_sve_packed_pred): Declare helper for new expanders. |
| (aarch64_sve_fp_pred): Likewise. |
| * config/aarch64/aarch64-sve.md (<optab><mode><v_int_equiv>2): |
| Extend into... |
| (<optab><SVE_HSF:mode><SVE_HSDI:mode>2): New expander for converting |
| vectors of HF,SF to vectors of HI,SI,DI. |
| (<optab><VNx2DF_ONLY:mode><SVE_2SDI:mode>2): New expander for converting |
| vectors of SI,DI to vectors of DF. |
| (*aarch64_sve_<optab>_nontrunc<SVE_PARTIAL_F:mode><SVE_HSDI:mode>): |
| New pattern to match those we've added here. |
| (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Extend |
| into... |
| (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><SVE_SI:mode>): Match both |
| VNx2SI<-VNx2DF and VNx4SI<-VNx4DF. |
| (<optab><v_int_equiv><mode>2): Extend into... |
| (<optab><SVE_HSDI:mode><SVE_F:mode>2): New expander for converting vectors |
| of HI,SI,DI to vectors of HF,SF,DF. |
| (*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_PARTIAL_F:mode>): New |
| pattern to match those we've added here. |
| (trunc<SVE_SDF:mode><SVE_PARTIAL_HSF:mode>2): New expander to handle |
| narrowing ('truncating') FP<-FP conversions. |
| (*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_PARTIAL_HSF:mode>): New |
| pattern to handle those we've added here. |
| (extend<SVE_PARTIAL_HSF:mode><SVE_SDF:mode>2): New expander to handle |
| widening ('extending') FP<-FP conversions. |
| (*aarch64_sve_<optab>_nontrunc<SVE_PARTIAL_HSF:mode><SVE_SDF:mode>): New |
| pattern to handle those we've added here. |
| * config/aarch64/aarch64.cc (aarch64_sve_packed_pred): New function. |
| (aarch64_sve_fp_pred): Likewise. |
| (aarch64_sve_valid_pred_p): Likewise. |
| * config/aarch64/iterators.md (SVE_PARTIAL_HSF): New mode iterator. |
| (SVE_HSF): Likewise. |
| (SVE_SDF): Likewise. |
| (SVE_SI): Likewise. |
| (SVE_2SDI) Likewise. |
| (self_mask): Extend to all integer/FP vector modes. |
| (narrower_mask): Likewise (excluding QI). |
| * config/aarch64/predicates.md (aarch64_predicate_operand): New special |
| predicate to handle narrower predicate modes. |
| |
| 2025-06-16 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64-sve.md: Replace uses of SVE_FULL_F_BF |
| with SVE_FULL_F_B16B16. |
| Replace use of SVE_F with SVE_F_BF. |
| * config/aarch64/iterators.md (SVE_PARTIAL_F): New iterator for |
| partial SVE FP modes. |
| (SVE_FULL_F_BF): Rename to SVE_FULL_F_B16B16. |
| (SVE_PARTIAL_F_B16B16): New iterator (BF16 included) for partial |
| SVE FP modes. |
| (SVE_F_B16B16): New iterator for all SVE FP modes. |
| (SVE_BF): New iterator for all SVE BF16 modes. |
| (SVE_F): Redefine to exclude BF16 modes. |
| (SVE_F_BF): New iterator to replace the previous SVE_F. |
| (VPRED): Describe the VPRED mapping for partial vector modes. |
| (b): Cover partial FP modes. |
| (is_bf16): Likewise. |
| |
| 2025-06-16 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi: Document -Wsfinae-incomplete. |
| |
| 2025-06-16 Matthieu Longo <matthieu.longo@arm.com> |
| Srinath Parvathaneni <srinath.parvathaneni@arm.com> |
| |
| * config.in: Regenerate. |
| * config/aarch64/aarch64-elf-metadata.h |
| (class aeabi_subsection): New class for BAs. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_pacret_enabled): New function. |
| * config/aarch64/aarch64.cc |
| (HAVE_AS_AEABI_BUILD_ATTRIBUTES): New definition. |
| (aarch64_file_end_indicate_exec_stack): Emit BAss. |
| (aarch64_pacret_enabled): New function. |
| (aarch64_start_file): Indent. |
| * configure: Regenerate. |
| * configure.ac: New configure check for BAs support in binutils. |
| |
| 2025-06-16 Matthieu Longo <matthieu.longo@arm.com> |
| |
| * Makefile.in: Add missing declaration of BACKEND_H. |
| * config.gcc: Add aarch64-elf-metadata.o to extra_objs. |
| * config/aarch64/aarch64-elf-metadata.h: New file |
| * config/aarch64/aarch64-elf-metadata.cc: New file. |
| * config/aarch64/aarch64.cc |
| (GNU_PROPERTY_AARCH64_FEATURE_1_AND): Removed. |
| (GNU_PROPERTY_AARCH64_FEATURE_1_BTI): Likewise. |
| (GNU_PROPERTY_AARCH64_FEATURE_1_PAC): Likewise. |
| (GNU_PROPERTY_AARCH64_FEATURE_1_GCS): Likewise. |
| (aarch64_file_end_indicate_exec_stack): Move GNU properties code to |
| aarch64-elf-metadata.cc |
| * config/aarch64/t-aarch64: Declare target aarch64-elf-metadata.o |
| |
| 2025-06-16 Matthieu Longo <matthieu.longo@arm.com> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_file_end_indicate_exec_stack): Emit assembly comments. |
| |
| 2025-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (edge_set): Remove unused typedef. |
| (is_bb_annotated): Sanity check that annotated BBs has |
| quality AFDO and non-anntoated non-AFDO. Exceptions are |
| zeros. |
| (set_bb_annotated): Verify that BB set annotated has |
| AFDO profile. |
| (afdo_set_bb_count): Do not return true for 0 counts. |
| (afdo_find_equiv_class): Fix formating; |
| do not combine profile of annoated and non-annotated BBs. |
| (afdo_propagate_edge): Fix variable names; dump info |
| about changes; do not change non-annoated BB profiles; |
| if all flow out of BB was decided on, annotate remaining |
| edges with 0. |
| (afdo_propagate): Dump info about copied BB counts |
| and number of iteraitons used. |
| (cmp): New function. |
| (afdo_adjust_guessed_profile): New function. |
| (afdo_calculate_branch_prob): Do not initialize loop |
| optimizer here; call afdo_adjust_guessed_profile. |
| (afdo_annotate_cfg): Initialize profile here; |
| anotate entry/exit blocks only of profile is non-0. |
| * profile-count.h: (profile_count::force_guessed): New. |
| * tree-cfg.cc (gimple_verify_flow_info): Fix typo. |
| |
| 2025-06-16 Jiawei <jiawei@iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc: Add b-ext and supm. |
| |
| 2025-06-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/predicates.md (reload_operand): |
| Remove. |
| * config/xtensa/xtensa.md: |
| Remove the peephole2 pattern that was previously added. |
| |
| 2025-06-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md: |
| Remove the peephole2 pattern that was previously added. |
| |
| 2025-06-16 Jiawei <jiawei@iscas.ac.cn> |
| |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Handle |
| more logical simplifications. |
| |
| 2025-06-15 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new |
| case UMAX. |
| (expand_vx_binary_vec_vec_dup): Ditto. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op umax. |
| |
| 2025-06-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| Backported from master: |
| 2025-06-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR rtl-optimization/120423 |
| PR rtl-optimization/116389 |
| * config/avr/avr.md [-mno-lra]: Add pre-reload split to transform |
| (left shift of) a paradoxical subreg to a (left shift of) zero-extend. |
| |
| 2025-06-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120629 |
| * cfgexpand.cc (expand_split_edge): New function. |
| (expand_gimple_cond, construct_init_block): Use it. |
| |
| 2025-06-13 Spencer Abson <spencer.abson@arm.com> |
| |
| PR target/118150 |
| * config/aarch64/aarch64-sve.md (*one_cmpl<mode>3_cc): New |
| combiner pattern. |
| (*one_cmpl<mode>3_ptest): Likewise. |
| |
| 2025-06-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120629 |
| * cfgexpand.cc (construct_init_block): If first_block isn't BB_RTL, |
| has any PHI nodes and false_edge->dest_idx before redirection is |
| different from make_single_succ_edge result's dest_idx, swap the |
| latter with the former last pred edge and their dest_idx members. |
| |
| 2025-06-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| * gcc.cc (driver::set_up_specs): Use gcc_exec_prefix to |
| read the spec file rather than standard_exec_prefix. |
| |
| 2025-06-13 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120589 |
| * config/mcore/mcore.cc (mcore_mark_dllimport): Don't use |
| gen_rtx_MEM. |
| |
| 2025-06-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/120638 |
| * tree-ssa-math-opts.cc (pass_cse_reciprocals::execute): Call |
| reset_flow_sensitive_info on arg1. |
| |
| 2025-06-12 Stafford Horne <shorne@gmail.com> |
| |
| PR target/120587 |
| * config/or1k/or1k.cc (or1k_can_change_mode_class): Allow |
| changing flags mode from BI to SI to allow for paradoxical |
| subregs. |
| |
| 2025-06-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/120604 |
| * config/i386/i386-expand.cc (ix86_expand_int_movcc): Make sure |
| we can represent the difference between two 64-bit DImode |
| immediate values in 64-bit HOST_WIDE_INT. |
| |
| 2025-06-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120629 |
| * cfgexpand.cc (expand_gimple_cond): If dest bb isn't BB_RTL, |
| has any PHI nodes and false_edge->dest_idx before redirection is |
| different from make_single_succ_edge result's dest_idx, swap the |
| latter with the former last pred edge and their dest_idx members. |
| |
| 2025-06-12 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new |
| case SMAX. |
| (expand_vx_binary_vec_vec_dup): Ditto. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op smax. |
| |
| 2025-06-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/120624 |
| * config/aarch64/aarch64.md (SME_STATE_REGNUM): Expand on comments. |
| * config/aarch64/aarch64-sme.md (aarch64_restore_za): Also set |
| SME_STATE_REGNUM |
| |
| 2025-06-12 Alfie Richards <alfie.richards@arm.com> |
| |
| * cgraph.cc (cgraph_node::record_function_versions): Refactor and |
| rename to... |
| (cgraph_node::add_function_version): new function. |
| * cgraph.h (cgraph_node::record_function_versions): Refactor and |
| rename to... |
| (cgraph_node::add_function_version): new function. |
| * config/aarch64/aarch64.cc (aarch64_get_function_versions_dispatcher): |
| Remove reordering. |
| * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher): |
| Remove reordering. |
| * config/riscv/riscv.cc (riscv_get_function_versions_dispatcher): |
| Remove reordering. |
| * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher): |
| Remove reordering. |
| |
| 2025-06-12 Alfie Richards <alfie.richards@arm.com> |
| |
| * attribs.cc (is_function_default_version): Add target_version logic. |
| |
| 2025-06-12 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/x86-tune-sched.cc (ix86_issue_rate): Set 4 for SRF, |
| 6 for GRR, GNR, CWF, DMR, ARL, PTL. |
| |
| 2025-06-11 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| * diagnostic-format-html.cc: Include "selftest-xml.h". |
| (html_builder::make_element_for_diagnostic): Move... |
| (class html_token_printer): ...from local to the function |
| to the global namespace. |
| (struct selftest::token_printer_test): New. |
| (selftest::test_token_printer): New. |
| (selftest::test_simple_log): Simplify using ASSERT_XML_PRINT_EQ. |
| (selftest::test_metadata): Likewise. |
| (selftest::diagnostic_format_html_cc_tests): Run the new test. |
| * selftest-xml.h: New file. |
| * xml.cc: Include "selftest-xml.h". |
| (selftest::assert_xml_print_eq): New. |
| (selftest::test_no_dtd): Simplify using ASSERT_XML_PRINT_EQ. |
| (selftest::test_printer): Likewise. |
| (selftest::test_attribute_ordering): Likewise. |
| |
| 2025-06-11 Edwin Lu <ewlu@rivosinc.com> |
| |
| * config/riscv/riscv.cc (struct riscv_tune_param): Add tune |
| param. |
| (riscv_sched_can_speculate_insn): Implement. |
| (TARGET_SCHED_CAN_SPECULATE_INSN): Ditto. |
| |
| 2025-06-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/120604 |
| * config/i386/i386-expand.cc (ix86_expand_int_movcc): Cast operands of |
| signed 64-bit HOST_WIDE_INT subtractions to (unsigned HOST_WIDE_INT). |
| |
| 2025-06-11 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR target/119100 |
| * config/riscv/autovec-opt.md (*<optab>_vf_<mode>): Only handle vfmadd |
| and vfmsub. |
| (*vfnmsub_<mode>): New pattern. |
| (*vfnmadd_<mode>): New pattern. |
| * config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add cost model for |
| NEG and VEC_DUPLICATE. |
| |
| 2025-06-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120434 |
| * gimple-range-fold.cc: Include rtl.h. |
| (fold_using_range::range_of_range_op): Handle bb ending with |
| GIMPLE_COND during RTL expansion where there is only one succ |
| edge instead of two. |
| |
| 2025-06-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * internal-fn.cc (expand_POPCOUNT): Use |
| expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE) instead of |
| expand_normal (lhs). |
| |
| 2025-06-11 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| * diagnostic-format-html.cc: Include "diagnostic-path.h" and |
| "diagnostic-client-data-hooks.h". |
| (html_builder::m_logical_loc_mgr): New field. |
| (html_builder::m_cur_nesting_levels): New field. |
| (html_builder::m_last_logical_location): New field. |
| (html_builder::m_last_location): New field. |
| (html_builder::m_last_expanded_location): New field. |
| (HTML_STYLE): Add "white-space: pre;" to .source and .annotation. |
| Add "gcc-quoted-text" CSS class. |
| (html_builder::html_builder): Initialize the new fields. If CSS |
| is enabled, add CDN links to PatternFly 3 stylesheets. |
| (html_builder::add_stylesheet): New. |
| (html_builder::on_report_diagnostic): Add "alert" param to |
| make_element_for_diagnostic, setting it by default, but unsetting |
| it for nested diagnostics below the top level. Use |
| add_at_nesting_level for nested diagnostics. |
| (add_nesting_level_attr): New. |
| (html_builder::add_at_nesting_level): New. |
| (get_pf_class_for_alert_div): New. |
| (get_pf_class_for_alert_icon): New. |
| (get_label_for_logical_location_kind): New. |
| (add_labelled_value): New. |
| (html_builder::make_element_for_diagnostic): Add leading comment. |
| Add "alert" param. Drop class="gcc-diagnostic" from <div> tag, |
| instead adding the class for a PatternFly 3 alert if "alert" is |
| true, and adding a <span> with an alert icon, both according to |
| the diagnostic severity. Add a severity prefix to the message for |
| alerts. Add any metadata/option text as suffixes to the message. |
| Show any logical location. Show any physical location. Don't |
| show the locus if the last location is unchanged within the |
| diagnostic_group. Wrap any execution path element in a |
| <div id="execution-path"> and add a label to it. Wrap any |
| generated patch in a <div id="suggested-fix"> and add a label |
| to it. |
| (selftest::test_simple_log): Update expected HTML. |
| |
| 2025-06-11 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-path-output.cc: Use xml::printer::add_text_from_pp. |
| * diagnostic-show-locus.cc: Likewise. |
| * xml-printer.h (xml::printer::add_text_from_pp): New decl. |
| * xml.cc (xml::node_with_children::add_text_from_pp): New. |
| (xml::printer::add_text_from_pp): New. |
| * xml.h (xml::node_with_children::add_text_from_pp): New decl. |
| |
| 2025-06-11 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/120610 |
| * diagnostic-format-html.cc (html_builder::html_builder): Update |
| for new param of xml::printer::pop_tag. |
| (html_path_label_writer::end_label): Likewise. |
| (html_builder::make_element_for_diagnostic::html_token_printer): |
| Give the instance its own xml::printer. Update for new param of |
| xml::printer::pop_tag. |
| (html_builder::make_element_for_diagnostic): Give the instance its |
| own xml::printer. |
| (html_builder::make_metadata_element): Update for new param of |
| xml::printer::pop_tag. |
| (html_builder::flush_to_file): Likewise. |
| * diagnostic-path-output.cc (begin_html_stack_frame): Likewise. |
| (begin_html_stack_frame): Likewise. |
| (end_html_stack_frame): Likewise. |
| (print_path_summary_as_html): Likewise. |
| * diagnostic-show-locus.cc |
| (struct to_text::auto_check_tag_nesting): New. |
| (struct to_html:: auto_check_tag_nesting): New. |
| (to_text::pop_html_tag): Change param to const char *. |
| (to_html::pop_html_tag): Likewise; rename param to |
| "expected_name". |
| (default_diagnostic_start_span_fn<to_html>): Update for new param |
| of xml::printer::pop_tag. |
| (layout_printer<to_html>::end_label): Likewise. |
| (layout_printer<Sink>::print_trailing_fixits): Add RAII sentinel |
| to check tag nesting for the HTML case. Delete stray popping |
| of "td" in the presence of fix-it hints. |
| (layout_printer<Sink>::print_line): Add RAII sentinel |
| to check tag nesting for the HTML case. |
| (diagnostic_source_print_policy::print_as_html): Likewise. |
| (layout_printer<Sink>::print): Likewise. |
| * xml-printer.h (xml::printer::printer): Add optional |
| "check_popped_tags" param. |
| (xml::printer::pop_tag): Add "expected_name" param. |
| (xml::printer::get_num_open_tags): New accessor. |
| (xml::printer::dump): New decl. |
| (xml::printer::m_check_popped_tags): New field. |
| (class xml::auto_check_tag_nesting): New. |
| (class xml::auto_print_element): Update for new param of pop_tag. |
| * xml.cc: Move pragma pop so that the pragma also covers |
| xml::printer's member functions, "dump" in particular. |
| (xml::printer::printer): Add param "check_popped_tags". |
| (xml::printer::pop_tag): Add param "expected_name" and use it to assert |
| that the popped tag is as expected. Assert that we have a tag to |
| pop. |
| (xml::printer::dump): New. |
| (selftest::test_printer): Update for new param of pop_tag. |
| (selftest::test_attribute_ordering): Likewise. |
| |
| 2025-06-11 David Malcolm <dmalcolm@redhat.com> |
| |
| * gimple-ssa-warn-access.cc |
| (pass_waccess::maybe_check_dealloc_call): Add missing |
| auto_diagnostic_group to nest the "returned from %qD" |
| note within the warning. |
| |
| 2025-06-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.cc (cgraph_node::make_profile_local): New member function. |
| (cgraph_node::make_profile_global0): New member function. |
| (cgraph_node::apply_scale): Do not call adjust_for_ipa_scalling. |
| (cgraph_node::scale_profile_to): New member function. |
| * cgraph.h (cgraph_node::make_profile_local, |
| cgraph_node::make_profile_global0, cgraph_node::scale_profile_to): |
| Declare. |
| * ipa-cp.cc (lenient_count_portion_handling): Fix logic dropping count |
| to local. |
| (update_counts_for_self_gen_clones): Use scale_profile_to. |
| (update_profiling_info): Use make_profile_local, make_profile_global0 |
| and scale_profile_to. |
| (update_specialized_profile): Likewise. |
| * ipa-inline-transform.cc (clone_inlined_nodes): Call |
| adjust_for_ipa_scalling. |
| |
| 2025-06-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120434 |
| * expr.cc (expand_expr_real_2) <CASE_CONVERT>: If get_range_pos_neg |
| at -O2 for scalar integer extension suggests the most significant |
| bit of op0 is not set, try both unsigned and signed conversion and |
| choose the cheaper one. If both are the same cost, choose one |
| based on TYPE_UNSIGNED (TREE_TYPE (treeop0)). |
| |
| 2025-06-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120434 |
| * config/i386/i386.md (*bsr_rex64_2): Rename to ... |
| (*bsr_rex64<u>_2): ... this. Use any_extend instead of sign_extend. |
| (*bsr_2): Rename to ... |
| (*bsr<u>_2): ... this. Use any_extend instead of sign_extend. |
| (bsr splitters after those): Use any_extend instead of sign_extend. |
| |
| 2025-06-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120434 |
| * cfgrtl.h (update_bb_for_insn_chain): Declare. |
| * cfgrtl.cc (update_bb_for_insn_chain): No longer static. |
| * cfgexpand.h (expand_remove_edge): Declare. |
| * cfgexpand.cc: Include "gimple-range.h". |
| (head_end_for_bb): New variable. |
| (label_rtx_for_bb): Drop ATTRIBUTE_UNUSED from bb argument. |
| Use head_end_for_bb if possible for non-BB_RTL bbs. |
| (expand_remove_edge): New function. |
| (maybe_cleanup_end_of_block): Use it instead of remove_edge. |
| (expand_gimple_cond): Don't clear EDGE_TRUE_VALUE and |
| EDGE_FALSE_VALUE just yet. Use head_end_for_bb elts instead |
| of BB_END and update_bb_for_insn_chain instead of update_bb_for_insn. |
| (expand_gimple_tailcall): Use expand_remove_edge instead of |
| remove_edge. Use head_end_for_bb elts instead of BB_END and |
| update_bb_for_insn_chain instead of update_bb_for_insn. |
| (expand_gimple_basic_block): Don't change bb to BB_RTL here, instead |
| use head_end_for_bb elts instead of BB_HEAD and BB_END. Use |
| update_bb_for_insn_chain instead of update_bb_for_insn. |
| (pass_expand::execute): Enable ranger before expand_gimple_basic_block |
| calls and create head_end_for_bb vector. Disable ranger after |
| those calls, turn still non-BB_RTL blocks into BB_RTL and set their |
| BB_HEAD and BB_END from head_end_for_bb elts, and clear EDGE_TRUE_VALUE |
| and EDGE_FALSE_VALUE flags on edges. Release head_end_for_bb |
| vector. |
| * tree-outof-ssa.cc (expand_phi_nodes): Don't clear phi nodes here. |
| * tree.h (get_range_pos_neg): Add gimple * argument defaulted to NULL. |
| * tree.cc (get_range_pos_neg): Add stmt argument. Use |
| get_range_query (cfun) instead of get_global_range_query () and pass |
| stmt as third argument to range_of_expr. |
| * expr.cc (expand_expr_divmod): Pass currently_expanding_gimple_stmt |
| to get_range_pos_neg. |
| (expand_expr_real_1) <case SSA_NAME>: Change internal fn handling |
| to avoid temporarily overwriting gimple_call_lhs of ifn, instead |
| temporarily overwrite SSA_NAME_VAR of its lhs. |
| (maybe_optimize_pow2p_mod_cmp): Pass currently_expanding_gimple_stmt |
| to get_range_pos_neg. |
| (maybe_optimize_mod_cmp): Likewise. |
| * internal-fn.cc (get_min_precision): Likewise. Use |
| get_range_query (cfun) instead of get_global_range_query () and pass |
| currently_expanding_gimple_stmt as third argument to range_of_expr. |
| Pass g to get_range_pos_neg. |
| (expand_addsub_overflow): Pass currently_expanding_gimple_stmt |
| to get_range_pos_neg. |
| (expand_mul_overflow): Likewise. |
| (expand_arith_overflow): Pass stmt to get_range_pos_neg. |
| * gimple-range-edge.cc: Include rtl.h. |
| (gimple_outgoing_range_stmt_p): Return NULL for BB_RTL bbs. |
| (gimple_outgoing_range::calc_switch_range): If default_edge is NULL, |
| assert currently_expanding_to_rtl and return before trying to |
| set range on that edge. |
| * builtins.cc (expand_builtin_strnlen): Use get_range_query (cfun) |
| instead of get_global_range_query () and pass |
| currently_expanding_gimple_stmt as third argument to range_of_expr. |
| (determine_block_size): Likewise. |
| * gimple-range.cc (gimple_ranger::range_on_exit): Set s to NULL |
| instead of last_nondebug_stmt for BB_RTL bbs. |
| * stmt.cc: Include cfgexpand.h. |
| (expand_case): Use expand_remove_edge instead of remove_edge. |
| |
| 2025-06-10 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.cc (irange::set_range_from_bitmask): When the bitmask |
| result is a singleton, check if it is contained in the range. |
| |
| 2025-06-10 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn-devices.def: Add gfx942, gfx950 and gfx9-4-generic. |
| * config/gcn/gcn-opts.h (TARGET_CDNA3, TARGET_CDNA3_PLUS, |
| TARGET_GLC_NAME, TARGET_TARGET_SC_CACHE): Define. |
| (TARGET_ARCHITECTED_FLAT_SCRATCH): Use also for CDNA3. |
| * config/gcn/gcn.h (gcn_isa): Add ISA_CDNA3 to the enum. |
| * config/gcn/gcn.cc (print_operand): Update 'g' to use |
| TARGET_GLC_NAME; add 'G' to print TARGET_GLC_NAME unconditionally. |
| * config/gcn/gcn-valu.md (scatter, gather): Use TARGET_GLC_NAME. |
| * config/gcn/gcn.md: Use %G<num> instead of glc; use 'buffer_inv sc1' |
| for TARGET_TARGET_SC_CACHE. |
| * doc/invoke.texi (march): Add gfx942, gfx950 and gfx9-4-generic. |
| * doc/install.texi (amdgcn*-*-*): Add gfx942, gfx950 and gfx9-4-generic. |
| * config/gcn/gcn-tables.opt: Regenerate. |
| |
| 2025-06-10 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.md (lui-constraint<X:mode>and_to_or): Do not use |
| the RTL template for split code. Emit it directly taking care to avoid |
| emitting a constant load that needed synthesis. Fix formatting. |
| |
| 2025-06-10 Kito Cheng <kito.cheng@sifive.com> |
| |
| * doc/riscv-ext.texi: Regen. |
| |
| 2025-06-10 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new |
| case UMOD. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op umod. |
| |
| 2025-06-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-sarif.cc (maybe_get_sarif_kind): Update for |
| conversion of enum logical_location_kind to enum class. |
| * diagnostic.cc (logical_location_manager::function_p): Likewise. |
| * libgdiagnostics.cc (html-output/missing-semicolon.py::get_kind): |
| Likewise. |
| * logical-location.h (enum logical_location_kind): Convert to... |
| (enum class logical_location_kind): ...this. |
| * selftest-logical-location.cc |
| (test_logical_location_manager::item_from_funcname): Update for |
| conversion of enum logical_location_kind to enum class. |
| * tree-logical-location.cc |
| (tree_logical_location_manager::get_kind): Likewise. |
| |
| 2025-06-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.cc (cgraph_node::apply_scale): New member function. |
| * cgraph.h (struct cgraph_node): declare. |
| * ipa-cp.cc (update_counts_for_self_gen_clones): |
| Use cgraph_node::apply_scale. |
| (update_profiling_info): Do not overwrite local |
| profile when dropping to 0 global profile. |
| (update_specialized_profile): Likewise. |
| * ipa-inline-transform.cc (update_noncloned_counts): Remove. |
| (can_remove_node_now_p_1): Fix formating. |
| (clone_inlined_nodes): Use cgraph_node::apply_scale. |
| * profile-count.cc (profile_count::dump): Do not ICE |
| when count is not compatible with entry block count. |
| * tree-cfg.cc (gimple_verify_flow_info): Check |
| compatibility of count and entry block count. |
| |
| 2025-06-09 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| * diagnostic-format-html.cc (html_builder::m_title_element): New |
| field. |
| (html_builder::html_builder): Initialize it. Don't add |
| placeholder text. |
| (html_builder::set_main_input_filename): New. |
| (html_output_format::set_main_input_filename): New. |
| (test_html_diagnostic_context::test_html_diagnostic_context): Call |
| set_main_input_filename on the new sink. |
| (seldtest::test_simple_log): Update expected <title> text. |
| * diagnostic-format-json.cc (diagnostic_output_format_init_json): |
| Return a reference to the new sink. |
| (diagnostic_output_format_init_json_stderr): Likewise. |
| (diagnostic_output_format_init_json_file): Likewise. |
| * diagnostic-format-sarif.cc (sarif_builder::sarif_builder): Drop |
| "main_input_filename_" param, and move adding an artifact for it |
| with diagnostic_artifact_role::analysis_target to... |
| (sarif_builder::set_main_input_filename): ...this new function. |
| (sarif_output_format::set_main_input_filename): New. |
| (sarif_output_format::sarif_output_format): Drop |
| "main_input_filename_" param. |
| (sarif_stream_output_format::sarif_stream_output_format): |
| Likewise. |
| (sarif_file_output_format::sarif_file_output_format): Likewise. |
| (diagnostic_output_format_init_sarif): Return a reference to *FMT. |
| (diagnostic_output_format_init_sarif_stderr): Return a refererence |
| to the new sink. Drop "main_input_filename_" param. |
| (diagnostic_output_format_init_sarif_file): Likewise. |
| (diagnostic_output_format_init_sarif_stream): Likewise. |
| (make_sarif_sink): Drop "main_input_filename_" param. |
| (selftest::test_sarif_diagnostic_context::test_sarif_diagnostic_context): |
| Likewise. Call set_main_input_filename on the new format. |
| (selftest::test_sarif_diagnostic_context::buffered_output_format::buffered_output_format): |
| Drop "main_input_filename_" param. |
| (selftest::test_make_location_object): Likewise. |
| * diagnostic-format-sarif.h |
| (diagnostic_output_format_init_sarif_stderr): Return a refererence |
| to the new sink. Drop "main_input_filename_" param. |
| (diagnostic_output_format_init_sarif_file): Likewise. |
| (diagnostic_output_format_init_sarif_stream): Likewise. |
| (make_sarif_sink): Drop "main_input_filename_" param. |
| * diagnostic-format.h |
| (diagnostic_output_format::set_main_input_filename): New vfunc. |
| (diagnostic_output_format_init_json_stderr): Return a refererence |
| to the new sink. |
| (diagnostic_output_format_init_json_file): Likewise. |
| * diagnostic.cc (diagnostic_output_format_init): Likewise. Call |
| set_main_input_filename on the new sink. |
| * libgdiagnostics.cc (sarif_sink::sarif_sink): Update for above |
| changes. |
| * opts-diagnostic.cc (sarif_scheme_handler::make_sink): Likewise. |
| (handle_OPT_fdiagnostics_add_output_): Likewise. |
| (handle_OPT_fdiagnostics_set_output_): Likewise. |
| |
| 2025-06-09 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): Relax |
| condition for adjustments due to copies from promoted SUBREGs. |
| |
| 2025-06-09 Tamar Christina <tamar.christina@arm.com> |
| |
| * doc/extend.texi (outline-atomics): Document the inverse -mno flag. |
| |
| 2025-06-09 Tamar Christina <tamar.christina@arm.com> |
| |
| * params.opt (vect-scalar-cost-multiplier): New. |
| * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Use it. |
| * doc/invoke.texi (vect-scalar-cost-multiplier): Document it. |
| |
| 2025-06-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/103750 |
| * config/i386/i386.cc (ix86_rtx_costs): Adjust rtx_cost for |
| maskload. |
| * config/i386/sse.md (*<avx512>_load<mode>mask_and15): New |
| define_insn_and_split. |
| (*<avx512>_load<mode>mask_and3): Ditto. |
| |
| 2025-06-09 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new |
| case MOD. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op mod. |
| |
| 2025-06-08 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * auto-profile.cc (function_instance::merge): Fix typo. |
| |
| 2025-06-08 Vineet Gupta <vineetg@rivosinc.com> |
| |
| PR target/120203 |
| * config/riscv/riscv.cc (CFUN_IN_CALL): New macro. |
| (struct mode_switching_info): Add new field. |
| (riscv_frm_adjust_mode_after_call): Remove. |
| (riscv_frm_mode_needed): Track call_insn. |
| |
| 2025-06-08 Vineet Gupta <vineetg@rivosinc.com> |
| |
| PR target/119164 |
| * config/riscv/riscv.cc (riscv_emit_frm_mode_set): check |
| STATIC_FRM_P for transition to DYN. |
| |
| 2025-06-08 Vineet Gupta <vineetg@rivosinc.com> |
| |
| * config/riscv/riscv.cc (riscv_frm_emit_after_bb_end): Delete. |
| (riscv_frm_mode_needed): Remove call riscv_frm_emit_after_bb_end. |
| |
| 2025-06-08 Vineet Gupta <vineetg@rivosinc.com> |
| |
| * config/riscv/riscv.cc (riscv_dynamic_frm_mode_p): Remove. |
| (riscv_mode_confluence): Ditto. |
| (TARGET_MODE_CONFLUENCE): Ditto. |
| |
| 2025-06-08 Vineet Gupta <vineetg@rivosinc.com> |
| |
| * emit-rtl.cc (next_nonnote_nondebug_insn): Update comments. |
| |
| 2025-06-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-phiopt.cc (cond_if_else_store_replacement): Move |
| definitin of else_vdef to right before the usage. Reformat |
| slightly. |
| |
| 2025-06-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/120533 |
| * tree-ssa-phiopt.cc (cond_if_else_store_replacement_limited): New function. |
| (pass_phiopt::execute): Call cond_if_else_store_replacement_limited |
| for diamand case. |
| |
| 2025-06-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-phiopt.cc (single_trailing_store_in_bb): Add vphi argument. |
| Check for single use of the vdef of the store instead of a loop |
| and check vdef's single use statement is the same as vphi. |
| (cond_if_else_store_replacement): Update call to single_trailing_store_in_bb. |
| |
| 2025-06-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-phiopt.cc (cond_if_else_store_replacement): Use get_virtual_phi |
| instead of inlining it. |
| |
| 2025-06-08 Co-authored-by: Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_expand_conditional_move): Use |
| riscv_extend_comparands to extend sub-word comparison arguments. |
| |
| 2025-06-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (printx, print_operand): |
| Add two instruction operand format codes 'U' and 'V', |
| whose represent scale factors of 0 to 15th positive/negative |
| power of two. |
| * config/xtensa/xtensa.md (c_enum "unspec"): |
| Add UNSPEC_CEIL and UNSPEC_FLOOR. |
| (int_iterator ANY_ROUND, int_attr m_round): |
| New integer iterator and its attribute. |
| (fix<s_fix>_truncsfsi2, *fix<s_fix>_truncsfsi2_2x, |
| *fix<s_fix>_truncsfsi2_scaled, float<s_float>sisf2, |
| *float<s_float>sisf2_scaled): |
| Use output templates with the operand formats added above, |
| instead of individual output statements. |
| (l<m_round>sfsi2, *l<m_round>sfsi2_2x, *l<m_round>sfsi2_scaled): |
| New insn patterns. |
| |
| 2025-06-07 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_expand_conditional_move): Use |
| riscv_extend_comparands to extend sub-word comparison arguments. |
| |
| 2025-06-07 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/120572 |
| * doc/invoke.texi (Wmusttail-local-addr, |
| Wno-maybe-musttail-local-addr): Fix opindex. |
| * common.opt.urls: Regenerate. |
| |
| 2025-06-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-html.cc (struct html_doctypedecl): New. |
| (html_builder::html_builder): Use it to populate the document's |
| m_doctypedecl. |
| * xml.cc (xml::document::write_as_xml): Replace hardcoded HTML DTD |
| with use of m_doctypedecl field. |
| (selftest::test_no_dtd): New. |
| (selftest::xml_cc_tests): New. |
| * xml.h (struct doctypedecl): New decl. |
| |
| 2025-06-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add xml.o. |
| * diagnostic-format-html.cc (namespace xml): Move implementation |
| to xml.cc |
| (selftest::test_printer): Likewise. |
| (selftest::test_attribute_ordering): Likewise. |
| (selftest::diagnostic_format_html_cc_tests): Don't call the moved |
| tests here; they will be called from xml_cc_tests in xml.cc. |
| * selftest-run-tests.cc (selftest::run_tests): Call xml_cc_tests. |
| * selftest.h (selftest::xml_cc_tests): New decl. |
| * xml.cc: New file, based on material from |
| diagnostic-format-html.cc. |
| |
| 2025-06-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * selftest.h: Fix the sorting of the various *_cc_tests decls. |
| |
| 2025-06-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * text-art/widget.cc (selftest::test_empty_wrapper_widget): New. |
| (selftest::text_art_widget_cc_tests): Call it. |
| * text-art/widget.h (text_art::wrapper_widget::calc_req_size): |
| Gracefully handle m_child being null. |
| (text_art::wrapper_widget::update_child_alloc_rects): Likewise. |
| (text_art::wrapper_widget::paint_to_canvas): Likewise. |
| |
| 2025-06-06 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Add vphi argument. |
| Manually update the vphi and new_stmt vdef/lhs. |
| (cond_if_else_store_replacement): Update call to cond_if_else_store_replacement_1. |
| |
| 2025-06-06 Tobias Burnus <tburnus@baylibre.com> |
| Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * gimple-fold.cc (gimple_fold_builtin_omp_get_initial_device, |
| gimple_fold_builtin_omp_get_num_devices): New. |
| (gimple_fold_builtin): Call them. |
| * omp-builtins.def (BUILT_IN_OMP_GET_INITIAL_DEVICE): Add |
| (BUILT_IN_OMP_GET_NUM_DEVICES): Make uservisible + pure. |
| |
| 2025-06-06 Tobias Burnus <tburnus@baylibre.com> |
| |
| * builtins.def (DEF_GOACC_BUILTIN_COMPILER, DEF_GOMP_BUILTIN_COMPILER): |
| Set NONANSI_P = false to enable those also with -fno-nonansi-builtins. |
| |
| 2025-06-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (get_group_load_store_type): Remove |
| non-SLP path. |
| (get_load_store_type): Likewise. |
| |
| 2025-06-06 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new |
| case UDIV. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op divu. |
| |
| 2025-06-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_store): Remove non-SLP |
| paths. |
| |
| 2025-06-06 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.h (create_tmp_reg_or_ssa_name): Remove. |
| * gimple-fold.cc (create_tmp_reg_or_ssa_name): Likewise. |
| (gimple_fold_builtin_memory_op): Use make_ssa_name. |
| (gimple_fold_builtin_strchr): Likewise. |
| (gimple_fold_builtin_strcat): Likewise. |
| (gimple_load_first_char): Likewise. |
| (gimple_fold_builtin_string_compare): Likewise. |
| (gimple_build): Likewise. |
| * tree-inline.cc (copy_bb): Likewise. |
| * config/rs6000/rs6000-builtin.cc (fold_build_vec_cmp): Likewise. |
| (rs6000_gimple_fold_mma_builtin): Likewise. |
| (rs6000_gimple_fold_builtin): Likewise. |
| |
| 2025-06-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * expr.cc (store_constructor) <ARRAY_TYPE>: Perform the arithmetics |
| on offsets in (unsigned) sizetype. |
| |
| 2025-06-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * coverage.cc (coverage_init): Return early when in LTO |
| |
| 2025-06-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile-count.cc (profile_count::to_sreal_scale): Special case 0 of autofdo. |
| (profile_count::combine_with_ipa_count): If outer function has GLOBAL0 profile |
| but innter counter has non-zero profile, force it to be 0. |
| |
| 2025-06-06 Jiawei <jiawei@iscas.ac.cn> |
| Jiawei Chen <jiawei@iscas.ac.cn> |
| Yangyu Chen <cyy@cyyself.name> |
| Tang Haojin <tanghaojin@outlook.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): New cpu tune. |
| (RISCV_CORE): New cpu. |
| * doc/invoke.texi: Ditto. |
| |
| 2025-06-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120032 |
| * tree-ssa-forwprop.cc (simplify_count_zeroes): When we cannot use |
| the IFN to determine the result at zero use a conditional move |
| to reproduce the correct result from the table-based |
| algorithm. |
| |
| 2025-06-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120032 |
| * match.pd (clz_table_index): New match. |
| * tree-ssa-forwprop.cc (check_table_array): Rename from |
| check_ctz_array. Split out actual verification to a functor. |
| (check_table_string): Rename from check_ctz_string and likewise. |
| (check_table): Rename from check_ctz_table and adjust. |
| (gimple_clz_table_index): Declare. |
| (simplify_count_zeroes): Rename from simplify_count_trailing_zeroes. |
| Extend to cover CLZ. |
| (pass_forwprop::execute): Adjust. |
| |
| 2025-06-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.cc (simplify_count_trailing_zeroes): |
| Use ranger instead of tree_expr_nonzero_p. |
| |
| 2025-06-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.cc (optimize_count_trailing_zeroes): |
| Inline into ... |
| (simplify_count_trailing_zeroes): ... this function. |
| Split out ... |
| (check_ctz_table): ... a wrapper for CONSTRUCTOR vs. STRING_CST |
| handling. |
| |
| 2025-06-05 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_expand_conditional_move): Avoid |
| zicond in some cases involving sign bit tests. |
| * config/riscv/riscv.md: Split a splat of the sign bit feeding a |
| masking off high bits into a pair of right shifts. |
| |
| 2025-06-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/120553 |
| * config/i386/i386.md (mov<mode>cc): Use "general_operand" |
| predicate for operands 2 and 3 for all modes. |
| |
| 2025-06-05 Marek Polacek <polacek@redhat.com> |
| |
| * doc/invoke.texi: Update a link to c99status.html. |
| * doc/standards.texi: Likewise. |
| |
| 2025-06-05 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Update the virtual |
| op on the inserted clobber and the stack restore function. |
| (do_ssa_ccp): Don't add TODO_update_ssa to the todo. |
| |
| 2025-06-05 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * config/aarch64/aarch64-sve-builtins.cc: Include value-range.h and tree-ssanames.h |
| (gimple_folder::convert_and_fold): Use make_ssa_name |
| instead of create_tmp_var for the temporary. Add comment about callback argument. |
| |
| 2025-06-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/120231 |
| * range-op.cc (range_op_table::range_op_table): Register op_cast |
| also for FLOAT_EXPR and FIX_TRUNC_EXPR. |
| (RO_III): Adjust comment. |
| (range_op_handler::op1_range): Handle RO_IFI rather than RO_IFF. |
| Don't handle RO_FII. |
| (range_operator::op1_range): Remove overload with |
| irange &, tree, const frange &, const frange &, relation_trio |
| and frange &, tree, const irange &, const irange &, relation_trio |
| arguments. Add overload with |
| irange &, tree, const frange &, const irange &, relation_trio |
| arguments. |
| * range-op-mixed.h (operator_cast::op1_range): Remove overload with |
| irange &, tree, const frange &, const frange &, relation_trio |
| and frange &, tree, const irange &, const irange &, relation_trio |
| arguments. Add overload with |
| irange &, tree, const frange &, const irange &, relation_trio and |
| frange &, tree, const irange &, const frange &, relation_trio |
| arguments. |
| * range-op.h (range_operator::op1_cast): Remove overload with |
| irange &, tree, const frange &, const frange &, relation_trio |
| and frange &, tree, const irange &, const irange &, relation_trio |
| arguments. Add overload with |
| irange &, tree, const frange &, const irange &, relation_trio |
| arguments. |
| * range-op-float.cc (operator_cast::fold_range): Implement |
| float to int and int to float casts. |
| (operator_cast::op1_range): Remove overload with |
| irange &, tree, const frange &, const frange &, relation_trio |
| and frange &, tree, const irange &, const irange &, relation_trio |
| arguments. Add overload with |
| irange &, tree, const frange &, const irange &, relation_trio and |
| frange &, tree, const irange &, const frange &, relation_trio |
| arguments and implement reverse op of float to int and int to float |
| cast there. |
| |
| 2025-06-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (afdo_calculate_branch_prob): Fix typo |
| in previous patch. |
| |
| 2025-06-05 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc: Remove structured binding |
| from the code. |
| |
| 2025-06-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/120547 |
| * real.cc (real_from_integer): Remove maxbitlen variable, use |
| len instead of that. When shifting right, or in 1 if any of the |
| shifted away bits are non-zero. Formatting fix. |
| |
| 2025-06-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (update_count_by_afdo_count): Fix handling |
| of GUESSED_LOCAL. |
| (afdo_calculate_branch_prob): Preserve static profile for |
| probabilities 0 and 1. |
| |
| 2025-06-05 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md: Leverage vdup_v and v_vdup |
| binary op for different patterns. |
| * config/riscv/vector-iterators.md: Add vdup_v and v_vdup |
| binary op iterators. |
| |
| 2025-06-05 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/zicond.md: Add new splitters to select |
| 1, -1 or -1, 1 based on a sign bit test. |
| |
| 2025-06-05 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension definition. |
| * config/riscv/riscv-ext.opt: New extension mask. |
| * doc/riscv-ext.texi: Document the new extension. |
| |
| 2025-06-05 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension definition. |
| * config/riscv/riscv-ext.opt: New extension mask. |
| * doc/riscv-ext.texi: Document the new extension. |
| |
| 2025-06-05 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension definition. |
| * config/riscv/riscv-ext.opt: New extension mask. |
| * doc/riscv-ext.texi: Document the new extension. |
| |
| 2025-06-05 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension definition. |
| * config/riscv/riscv-ext.opt: New extension mask. |
| * doc/riscv-ext.texi: Document the new extension. |
| |
| 2025-06-05 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension definition. |
| * config/riscv/riscv-ext.opt: New extension mask. |
| * doc/riscv-ext.texi: Document the new extension. |
| |
| 2025-06-05 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension definition. |
| * config/riscv/riscv-ext.opt: New extension mask. |
| * doc/riscv-ext.texi: Document the new extension. |
| |
| 2025-06-05 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension definition. |
| * config/riscv/riscv-ext.opt: New extension mask. |
| * doc/riscv-ext.texi: Document the new extension. |
| |
| 2025-06-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-vect-data-refs.cc (vect_can_force_dr_alignment_p): Return |
| false if the variable has no symtab node. |
| |
| 2025-06-05 Spencer Abson <spencer.abson@arm.com> |
| |
| * tree-eh.cc (operation_could_trap_helper_p): Cover FIX_TRUNC |
| expressions explicitly. |
| |
| 2025-06-05 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config.gcc (--with-{arch,tune}): Use .def file to validate gcn |
| processor names. |
| * doc/install.texi (amdgcn*-*-*): Update list of devices supported |
| by --with-arch/--with-tune. |
| |
| 2025-06-05 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR middle-end/112824 |
| * tree-sra.cc (sra_get_max_scalarization_size): Use MOVE_MAX |
| instead of UNITS_PER_WORD to define max_scalarization_size. |
| |
| 2025-06-05 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/sse.md |
| (avx512f_movddup512<mask_name>): Change sselog1 to ssemov. |
| (avx_movddup256<mask_name>): Ditto. |
| (*vec_dupv2di): Change alternative 4's type attribute from sselog1 |
| to ssemov. |
| |
| 2025-06-05 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: Update declaration. |
| |
| 2025-06-04 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * auto-profile.cc (autofdo_source_profile::read): Dump message |
| while merging profile. |
| * pass_manager.h (get_pass_auto_profile): New. |
| |
| 2025-06-04 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c++/120518 |
| * omp-general.cc (omp_device_num_check): Look inside a |
| CLEANUP_POINT_EXPR when trying to optimize special cases. |
| |
| 2025-06-04 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/mkoffload.cc (process): Use an 'auto_vec' for |
| 'file_idx'. |
| |
| 2025-06-04 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/14295 |
| PR tree-optimization/108358 |
| PR tree-optimization/114169 |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop): New function. |
| (pass_forwprop::execute): Call optimize_agr_copyprop for load/store statements. |
| |
| 2025-06-04 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| * match.pd: Add folding rule for vector average. |
| * tree-ssa-ccp.cc (get_default_value): Reject vector types. |
| (evaluate_stmt): Reject vector types. |
| * tree-ssanames.cc (get_nonzero_bits_1): Extend to handle |
| uniform vectors. |
| |
| 2025-06-04 Xi Ruoyao <xry111@xry111.site> |
| |
| PR rtl-optimization/120050 |
| * ext-dce.cc (ext_dce_process_uses): Break early if a SUBREG in |
| rhs is promoted and the truncation from the inner mode to the |
| outer mode is not a noop when handling SETs. |
| |
| 2025-06-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * range-op-float.cc (range_operator::fold_range, |
| range_operator::op1_range, range_operator::op2_range, |
| range_operator::lhs_op1_relation, range_operator::lhs_op2_relation, |
| operator_equal::op1_range, foperator_unordered_gt::op1_range): Fix |
| up parameter indentation. |
| * range-op.cc (range_operator::fold_range, range_operator::op1_range, |
| range_operator::op1_op2_relation_effect, |
| range_operator::update_bitmask, plus_minus_ranges, |
| operator_bitwise_and::lhs_op1_relation): Likewise. |
| |
| 2025-06-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/120231 |
| * range-op-mixed.h (operator_cast::fold_range): Add overload |
| with 3 {,const} frange & operands. Change parameter names and |
| add final override keywords for float <-> integer cast overloads. |
| (operator_cast::op1_range): Likewise. |
| * range-op-float.cc (operator_cast::fold_range): New overload |
| with 3 {,const} frange & operands. |
| (operator_cast::op1_range): Likewise. |
| |
| 2025-06-04 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: Imply zicsr. |
| |
| 2025-06-04 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension defs. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2025-06-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/120447 |
| * emit-rtl.cc (validate_subreg): Restrict ordered_p test |
| between osize and regsize to cases where the inner value |
| occupies multiple blocks. |
| |
| 2025-06-04 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv.cc (get_vector_binary_rtx_cost): Rename |
| the args to scalar2vr. |
| (riscv_rtx_costs): Leverage above func to avoid code dup. |
| |
| 2025-06-04 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR debug/120525 |
| * var-tracking.cc (prepare_call_arguments): Use MEM_EXPR only |
| if MEM_P is true. |
| |
| 2025-06-04 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension defs. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2025-06-04 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/i386.md (define_peephole2): Define some new peephole2 for |
| APX NDD. |
| |
| 2025-06-04 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/i386.md: Add 4 new peephole2 by swap the original |
| peephole2's operands' order to support new pattern. |
| |
| 2025-06-04 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR other/120494 |
| * calls.cc (expand_call): Always add REG_CALL_DECL note. |
| (emit_library_call_value_1): Likewise. |
| |
| 2025-06-03 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.cc (create_tmp_reg_or_ssa_name): Always |
| create a SSA name. |
| |
| 2025-06-03 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new |
| case for DIV op. |
| * config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add new func |
| to get the cost of vector binary. |
| (riscv_rtx_costs): Add div rtx match and leverage above wrap to |
| get cost. |
| * config/riscv/vector-iterators.md: Add new op div to no_shift_vx_op. |
| |
| 2025-06-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120517 |
| * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): |
| Fix math in dataref group split. |
| |
| 2025-06-03 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): Replace |
| FR2VR with get_fr2vr_cost (). |
| * config/riscv/riscv.cc (riscv_register_move_cost): Likewise. |
| (riscv_builtin_vectorization_cost): Likewise. |
| |
| 2025-06-03 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR target/119100 |
| * config/riscv/autovec-opt.md (*<optab>_vf_<mode>): Add new pattern to |
| combine vec_duplicate + vfm{add,sub}.vv into vfm{add,sub}.vf. |
| * config/riscv/riscv-opts.h (FPR2VR_COST_UNPROVIDED): Define. |
| * config/riscv/riscv-protos.h (get_fr2vr_cost): Declare function. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Add cost model for MULT with |
| VEC_DUPLICATE. |
| (get_fr2vr_cost): New function. |
| * config/riscv/riscv.opt: Add new option --param=fpr2vr-cost. |
| |
| 2025-06-03 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/120451 |
| * tree-switch-conversion.cc (switch_conversion::build_one_array): Mark |
| the newly created decl as mergable. |
| |
| 2025-06-02 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/120424 |
| PR middle-end/118939 |
| * lra-spills.cc (spill_pseudos): Update insn regno info. |
| * lra-eliminations.cc (update_reg_eliminate): Recognize |
| disabling of active elimination regardless of |
| prev_can_eliminate. |
| |
| 2025-06-02 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension defs. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2025-06-02 Stafford Horne <shorne@gmail.com> |
| |
| * config/or1k/predicates.md (call_insn_operand): Add condition |
| to not allow symbol_ref operands with TARGET_CMODEL_LARGE. |
| * config/or1k/or1k.opt: Document new -mcmodel=large |
| implications. |
| * doc/invoke.texi: Likewise. |
| |
| 2025-06-02 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * doc/sourcebuild.texi (tls_link): Add documentation. |
| |
| 2025-06-02 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/t-riscv: Adjust build rule for gen-riscv-ext-opt |
| and gen-riscv-ext-texi. |
| |
| 2025-06-02 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Use |
| range-based-for-loop. |
| * config/riscv/riscv-subset.h (riscv_subset_list::iterator): |
| New. |
| (riscv_subset_list::const_iterator): New. |
| |
| 2025-06-01 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR other/120493 |
| * final.cc (call_from_call_insn): Change the argument type to |
| const rtx_call_insn *. |
| (get_call_rtx_from): New. |
| * rtl.h (is_a_helper <const rtx_call_insn *>::test): New. |
| (get_call_rtx_from): Moved to the final.cc section. |
| * rtlanal.cc (get_call_rtx_from): Removed. |
| |
| 2025-06-01 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (optimize_vector_load): Set the vuse manually |
| on the new load statements. Also remove forward declaration since |
| the definition is before the first use. |
| (pass_forwprop::execute): Likewise for complex loads. |
| (pass_data_forwprop): Remove TODO_update_ssa. |
| |
| 2025-06-01 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec.md: Fix line too long for sorts |
| of pattern. |
| |
| 2025-06-01 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc: Remove include of reload.h. |
| |
| 2025-06-01 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (movsf_internal): |
| Remove destination side constraint modifier '^' in the third |
| alternative. |
| |
| 2025-06-01 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc |
| (xtensa_ira_change_pseudo_allocno_class): |
| New prototype and function. |
| (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro. |
| (xtensa_register_move_cost): |
| Change between integer and FP register move cost to a value |
| based on actual behavior, i.e. 2, the default and the same as |
| the move cost between integer registers. |
| |
| 2025-05-31 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * function.h (struct function): Remove last_verified. |
| * gimple-harden-conditionals.cc (pass_data_harden_compares): Remove |
| TODO_verify_il. |
| (pass_data_harden_conditional_branches): Likewise. |
| * gimple-harden-control-flow.cc (pass_harden_control_flow_redundancy::execute): |
| Don't return TODO_verify_il. |
| * ipa-strub.cc (pass_data_ipa_strub): Remove TODO_verify_il. |
| * passes.cc (TODO_verify_il): Define. |
| (execute_function_todo): Don't use or set last_verified. |
| (clear_last_verified): Remove. |
| (execute_one_ipa_transform_pass): Update comment before execute_todo. |
| Assert that none of the todos have TODO_verify_il set on it. |
| (execute_one_pass): Don't call clear_last_verified on all functions. |
| Assert that none of the todos have TODO_verify_il set on it. |
| * tree-inline.cc (initialize_cfun): Don't copy last_verified. |
| * tree-pass.h (TODO_verify_all): Remove. |
| * tree-vrp.cc (pass_data_early_vrp): Remove TODO_verify_all. |
| (pass_data_fast_vrp): Likewise. |
| |
| 2025-05-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120357 |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): Create |
| the conditional reduction induction IV increment before the |
| main IV exit. |
| |
| 2025-05-31 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/120389 |
| * doc/gm2.texi (-fm2-strict-type-reason): Document new flag. |
| |
| 2025-05-30 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| * diagnostic-format-html.cc (HTML_STYLE): Add ".highlight-a" and |
| ".highlight-b". |
| (html_builder::make_element_for_diagnostic): Handle begin_color |
| and end_color. |
| * diagnostic-show-locus.cc (to_html::to_html): Add "richloc" |
| param and use it to initialize m_richloc. |
| (to_html::colorize_text_for_range_idx): Drop. |
| (to_html::get_location_range_by_idx): New. |
| (to_html::get_highlight_color_for_range_idx): New. |
| (to_html::m_richloc): New field. |
| (print_html_span_start): Update for new param of to_html ctor. |
| (line_printer::m_was_in_range_p): New field. |
| (line_printer::m_last_range_idx): New field. |
| (layout_printer<Sink>::print_source_line): Use set_in_range |
| and set_outside_range rather than colorization calls. |
| (layout_printer<Sink>::set_in_range): New. |
| (layout_printer<Sink>::set_outside_range): New. |
| (layout_printer<Sink>::print_annotation_line): Use set_in_range |
| and set_outside_range rather than colorization calls. |
| (layout_printer<to_text>::begin_label): Convert param from label |
| to state_idx. Add "is_label_text" param and use it to guard logic |
| for turning off colorization within paths. |
| (layout_printer<to_html>::begin_label): Likewise. Push <span> |
| for any highlight color. |
| (layout_printer<to_text>::end_label): Likewise. |
| (layout_printer<to_text>::end_label): Likewise, popping the |
| <span>. |
| (layout_printer<Sink>::print_any_labels): Convert begin/end_label |
| calls to pass in state_idx rather than label. Use begin/end_label |
| rather than colorization calls. |
| (layout_printer<Sink>::layout_printer): Likewise. |
| (layout_printer<Sink>::layout_printer): Initialize new fields. |
| (diagnostic_source_print_policy::print_as_html): Update for new |
| param of to_html ctor. |
| |
| 2025-05-30 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * passes.cc (execute_all_ipa_transforms): Fix typo in |
| commenet. |
| |
| 2025-05-30 Joseph Myers <josmyers@redhat.com> |
| |
| * doc/standards.texi (C Language): Document library facilities |
| provided in terms of headers not declaring functions with external |
| linkage, not in terms of headers required of freestanding |
| implementations. |
| * doc/sourcebuild.texi (Subdirectories, Headers): Likewise. |
| * doc/trouble.texi (Standard Libraries): Likewise. |
| |
| 2025-05-30 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec.md (avg<v_double_trunc>3_ceil): Add insn |
| expand to leverage vaadd with rnu directly. |
| |
| 2025-05-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120341 |
| * tree-ssa-loop-im.cc (can_sm_ref_p): STRING_CSTs are readonly. |
| * tree-ssa-phiopt.cc (cond_store_replacement): Likewise. |
| |
| 2025-05-30 Thomas Schwinge <tschwinge@baylibre.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/119835 |
| * tree-nrv.cc (pass_nrv::execute): Defuse 'RESULT_DECL' check. |
| |
| 2025-05-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-show-locus.cc (colorizer::m_current_named_color): New |
| field. |
| (colorizer::set_named_color): Use it to consolidate repeated calls |
| to the same color. |
| |
| 2025-05-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120457 |
| * tree-vect-slp.cc (vect_lower_load_permutations): Implement |
| the same heuristics as load vectorization for single-element |
| interleaving that spans multiple vectors. |
| |
| 2025-05-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/120347 |
| * rtlanal.cc (rtx_properties::try_to_add_src): Don't drop the |
| IN_MEM_LOAD and IN_MEM_STORE flags for autoinc registers. |
| * rtl-ssa/changes.cc (recog_level2): Check whether an |
| RTX_AUTOINCed register also appears outside of an address. |
| |
| 2025-05-30 Julian Brown <julian@codesourcery.com> |
| Tobias Burnus <tburnus@baylibre.com> |
| |
| * gimplify.cc (gimplify_omp_ctx): Add IMPLICIT_MAPPERS field. |
| (new_omp_context): Initialise IMPLICIT_MAPPERS hash map. |
| (delete_omp_context): Delete IMPLICIT_MAPPERS hash map. |
| (instantiate_mapper_info): New structs. |
| (remap_mapper_decl_1, omp_mapper_copy_decl, omp_instantiate_mapper, |
| omp_instantiate_implicit_mappers): New functions. |
| (gimplify_scan_omp_clauses): Handle MAPPER_BINDING clauses. |
| (gimplify_adjust_omp_clauses): Instantiate implicit declared mappers. |
| (gimplify_omp_declare_mapper): New function. |
| (gimplify_expr): Call above function. |
| * langhooks-def.h (lhd_omp_mapper_lookup, |
| lhd_omp_extract_mapper_directive, lhd_omp_map_array_section): Add |
| prototypes. |
| (LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES, |
| LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE, |
| LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define macros. |
| (LANG_HOOK_DECLS): Add above macros. |
| * langhooks.cc (lhd_omp_mapper_lookup, |
| lhd_omp_extract_mapper_directive, lhd_omp_map_array_section): New |
| dummy functions. |
| * langhooks.h (lang_hooks_for_decls): Add OMP_FINISH_MAPPER_CLAUSES, |
| OMP_MAPPER_LOOKUP, OMP_EXTRACT_MAPPER_DIRECTIVE, OMP_MAP_ARRAY_SECTION |
| hooks. |
| * omp-general.h (omp_name_type<T>): Add templatized struct, hash type |
| traits (for omp_name_type<tree> specialization). |
| (omp_mapper_list<T>): Add struct. |
| * tree-core.h (omp_clause_code): Add OMP_CLAUSE__MAPPER_BINDING_. |
| * tree-pretty-print.cc (dump_omp_clause): Support GOMP_MAP_UNSET, |
| GOMP_MAP_PUSH_MAPPER_NAME, GOMP_MAP_POP_MAPPER_NAME artificial mapping |
| clauses. Support OMP_CLAUSE__MAPPER_BINDING_ and OMP_DECLARE_MAPPER. |
| * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add |
| OMP_CLAUSE__MAPPER_BINDING_. |
| * tree.def (OMP_DECLARE_MAPPER): New tree code. |
| * tree.h (OMP_DECLARE_MAPPER_ID, OMP_DECLARE_MAPPER_DECL, |
| OMP_DECLARE_MAPPER_CLAUSES): New defines. |
| (OMP_CLAUSE__MAPPER_BINDING__ID, OMP_CLAUSE__MAPPER_BINDING__DECL, |
| OMP_CLAUSE__MAPPER_BINDING__MAPPER): New defines. |
| |
| 2025-05-30 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * gimple-ssa-sccopy.cc (scc_copy_prop::replace_scc_by_value): Return true |
| if something was done. |
| (scc_copy_prop::propagate): Return true if something was changed. |
| (pass_sccopy::execute): Return TODO_cleanup_cfg if a prop happened. |
| |
| 2025-05-30 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * auto-profile.cc (function_instance::merge): New. |
| (autofdo_source_profile::read): Call merge. |
| |
| 2025-05-29 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * config/aarch64/gcc-auto-profile: Make script executable. |
| |
| 2025-05-29 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Adds |
| statistics when the statement changed. |
| |
| 2025-05-29 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Change check |
| from NULL/non-ssa name to default name. |
| |
| 2025-05-29 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-html.cc (HTML_STYLE): Fix PatternFly URL in |
| comment. |
| |
| 2025-05-29 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-html.cc |
| (html_builder::make_element_for_diagnostic::html_token_printer): |
| Reimplement in terms of xml::printer. |
| (html_builder::make_element_for_diagnostic): Create an |
| xml::printer and use it with the html_token_printer. |
| |
| 2025-05-29 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-html.cc (html_builder::make_metadata_element): |
| Gracefully handle the case where "url" is null. |
| |
| 2025-05-29 David Malcolm <dmalcolm@redhat.com> |
| |
| * pretty-print.cc (pretty_printer::pretty_printer): Use "nullptr" |
| rather than "NULL". Remove explicit delete of |
| m_format_postprocessor. |
| * pretty-print.h (format_postprocessor::clone): Use unique_ptr. |
| (pretty_printer::set_format_postprocessor): New. |
| (pretty_printer::m_format_postprocessor): Use unique_ptr. |
| (pp_format_postprocessor): Update for use of unique_ptr, removing |
| reference from return type. |
| |
| 2025-05-29 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/120295 |
| * ipa-prop.cc (update_jump_functions_after_inlining): Do not |
| combine pass-through jump functions with type-casts changing |
| signedness. |
| |
| 2025-05-29 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.cc (ipa_dump_jump_function): Fix whitespace when |
| dumping IPA VRs. |
| |
| 2025-05-29 Pranav Gorantla <Pranav.Gorantla@amd.com> |
| |
| * config/i386/i386-expand.cc (emit_reduc_half): Use shuffles to |
| generate reduc half for V4SI, similar modes. |
| * config/i386/i386.h (TARGET_SSE_REDUCTION_PREFER_PSHUF): New Macro. |
| * config/i386/x86-tune.def (X86_TUNE_SSE_REDUCTION_PREFER_PSHUF): |
| New tuning. |
| |
| 2025-05-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/120464 |
| * ggc-page.cc (struct ggc_globals): Fix up comment formatting. |
| (find_free_list): Likewise. |
| (alloc_page): For defined(USING_MALLOC_PAGE_GROUPS) use |
| free_list->free_pages instead of G.free_pages. |
| (do_release_pages): Add n1 and n2 arguments, make them used. |
| Move defined(USING_MALLOC_PAGE_GROUPS) page group freeing to |
| release_pages and dumping of statistics as well. Formatting fixes. |
| (release_pages): Adjust do_release_pages caller, move here |
| defined(USING_MALLOC_PAGE_GROUPS) page group freeing and dumping |
| of statistics. |
| (ggc_handle_finalizers): Fix up comment formatting and typo. |
| |
| 2025-05-29 Jerry Zhang Jian <jerry.zhangjian@sifive.com> |
| |
| * config/riscv/riscv-ext.def: New extensions |
| * config/riscv/riscv-ext.opt: Auto re-generated |
| * doc/riscv-ext.texi: Auto re-generated |
| |
| 2025-05-29 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add |
| new case for MULT op. |
| (expand_vx_binary_vec_vec_dup): Ditto. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op mult to no_shift_vx_ops. |
| |
| 2025-05-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/119298 |
| * config/i386/x86-tune-costs.h (struct processor_costs): Set addss cost |
| back to 2. |
| |
| 2025-05-28 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| * tree-vect-stmts.cc (vectorizable_load): Remove non-SLP paths. |
| |
| 2025-05-28 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/120436 |
| * config/riscv/riscv-vector-builtins-shapes.cc (struct vset_def): |
| Avoid division by zero. |
| (struct vget_def): Ditto. |
| * config/riscv/riscv-vector-builtins.h (struct function_group_info): |
| Use required_extensions_specified instead of duplicating code. |
| |
| 2025-05-28 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec.md (avg<v_double_trunc>3_floor): Add insn |
| expand to leverage vaadd directly. |
| |
| 2025-05-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.cc (cgraph_edge::maybe_hot_p): For auto-fdo turn 0 |
| to non-zero. |
| * ipa-cp.cc (cs_interesting_for_ipcp_p): Do not trust |
| auto-fdo 0. |
| * profile-count.cc (profile_count::adjust_for_ipa_scaling): Likewise. |
| (profile_count::from_gcov_type): Fix formating. |
| |
| 2025-05-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.cc (rebuild_frequencies): look harder for presence |
| of profile feedback. |
| |
| 2025-05-28 Yuta Mukai <mukai.yuta@fujitsu.com> |
| |
| * config/aarch64/aarch64-cores.def (fujitsu-monaka): Update ISA |
| features. |
| |
| 2025-05-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.cc (set_even_probabilities): Set quality to guessed. |
| |
| 2025-05-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (update_count_by_afdo_count): New function. |
| (afdo_set_bb_count): Add debug output; only set count if it is |
| non-zero. |
| (afdo_find_equiv_class): Add debug output. |
| (afdo_calculate_branch_prob): Fix formating. |
| (afdo_annotate_cfg): Add debug output; do not erase static |
| profile if autofdo profile is all 0. |
| |
| 2025-05-28 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * doc/extend.texi (C Extensions): Add missing menu items. |
| |
| 2025-05-28 liuhongt <hongtao.liu@intel.com> |
| |
| PR tree-optimization/119181 |
| * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): |
| Split datarefs when there's a gap bigger than |
| MAX_BITSIZE_MODE_ANY_MODE. |
| |
| 2025-05-27 Jason Merrill <jason@redhat.com> |
| |
| PR c++/120400 |
| * fold-const.cc (simple_operand_p): False for vars with |
| DECL_VALUE_EXPR. |
| |
| 2025-05-27 Alejandro Colomar <alx@kernel.org> |
| |
| PR c/117025 |
| * Makefile.in (USER_H): Add <stdcountof.h>. |
| * ginclude/stdcountof.h: New file. |
| |
| 2025-05-27 Alejandro Colomar <alx@kernel.org> |
| Martin Uecker <uecker@tugraz.at> |
| |
| PR c/117025 |
| * doc/extend.texi: Document _Countof operator. |
| |
| 2025-05-27 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/gcc-auto-profile: regenerate. |
| |
| 2025-05-27 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.cc (function_instance::mark_annotated): Remove. |
| (function_instance::total_annotated_count): Remove. |
| (autofdo_source_profile::mark_annotated): Remove. |
| (afdo_set_bb_count): Do not mark annotated locations. |
| (afdo_annotate_cfg): Likewise. |
| |
| 2025-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ipa-sra.cc (scan_expr_access): Also disqualify storage order |
| barriers from splitting. |
| * tree.h (storage_order_barrier_p): Also return false if the |
| operand of the VIEW_CONVERT_EXPR has reverse storage order. |
| |
| 2025-05-27 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| * diagnostic-format-html.cc: Define INCLUDE_STRING. |
| Include "xml.h", "xml-printer.h", and "json.h". |
| (html_generation_options::html_generation_options): New. |
| (namespace xml): Move decls to xml.h and convert from using |
| label_text to std::string. |
| (xml::text::write_as_xml): Reimplement indentation so it is done |
| by this node, rather than the parent. |
| (xml::node_with_children::add_text): Convert from label_text to |
| std::string. Consolidate runs of text into a single node. |
| (xml::document::write_as_xml): Reimplement indentation. |
| (xml::element::write_as_xml): Reimplement indentation so it is |
| done by this node, rather than the parent. Convert from |
| label_text to std::string. Update attribute-printing to new |
| representation to preserve insertion order. |
| (xml::element::set_attr): Convert from label_text to std::string. |
| Record insertion order. |
| (xml::raw::write_as_xml): New. |
| (xml::printer::printer): New. |
| (xml::printer::push_tag): New. |
| (xml::printer::push_tag_with_class): New. |
| (xml::printer::pop_tag): New. |
| (xml::printer::set_attr): New. |
| (xml::printer::add_text): New. |
| (xml::printer::add_raw): New. |
| (xml::printer::push_element): New. |
| (xml::printer::append): New. |
| (xml::printer::get_insertion_point): New. |
| (html_builder::add_focus_id): New. |
| (html_builder::m_html_gen_opts): New field. |
| (html_builder::m_head_element): New field. |
| (html_builder::m_next_diag_id): New field. |
| (html_builder::m_ui_focus_ids): New field. |
| (make_div): Convert from label_text to std::string. |
| (make_span): Likewise. |
| (HTML_STYLE): New. |
| (HTML_SCRIPT): New. |
| (html_builder::html_builder): Fix indentation. Add |
| "html_gen_opts" param. Initialize new fields. Reimplement |
| using xml::printer. Optionally add style and script tags. |
| (class html_path_label_writer): New. |
| (html_builder::make_element_for_diagnostic): Convert from |
| label_text to std::string. Set "id" on "gcc-diagnostic" and |
| "gcc-message" <div> elements; add the latter to the focus ids. |
| Use diagnostic_context::maybe_show_locus_as_html rather than |
| html_builder::make_element_for_source. Use print_path_as_html |
| rather than html_builder::make_element_for_path. |
| (html_builder::make_element_for_source): Drop. |
| (html_builder::make_element_for_path): Drop. |
| (html_builder::make_element_for_patch): Convert from label_text to |
| std::string. |
| (html_builder::make_metadata_element): Likewise. Use |
| xml::printer. |
| (html_builder::make_element_for_metadata): Convert from label_text |
| to std::string. |
| (html_builder::emit_diagram): Expand comment. |
| (html_builder::flush_to_file): Write out initializer for |
| "focus_ids" into javascript. |
| (html_output_format::html_output_format): Add param |
| "html_gen_opts" and use it to initialize m_builder. |
| (html_file_output_format::html_file_output_format): Likewise, to |
| initialize base class. |
| (make_html_sink): Likewise, to pass to ctor. |
| (selftest::test_html_diagnostic_context::test_html_diagnostic_context): |
| Set up html_generation_options. |
| (selftest::html_buffered_output_format::html_buffered_output_format): |
| Add html_gen_opts param. |
| (selftest::test_simple_log): Add id attributes to expected text |
| for "gcc-diagnostic" and "gcc-message" elements. Update |
| whitespace for indentation fixes. |
| (selftest::test_metadata): Update whitespace for indentation |
| fixes. |
| (selftest::test_printer): New selftest. |
| (selftest::test_attribute_ordering): New selftest. |
| (selftest::diagnostic_format_html_cc_tests): Call the new |
| selftests. |
| * diagnostic-format-html.h (struct html_generation_options): New. |
| (make_html_sink): Add "html_gen_opts" param. |
| (print_path_as_html): New decl. |
| * diagnostic-path-output.cc: Define INCLUDE_MAP. Add includes of |
| "diagnostic-format-html.h", "xml.h", and "xml-printer.h". |
| (path_print_policy::path_print_policy): Add ctor. |
| (path_print_policy::get_diagram_theme): Fix whitespace. |
| (struct stack_frame): New. |
| (begin_html_stack_frame): New function. |
| (end_html_stack_frame): New function. |
| (emit_svg_arrow): New function. |
| (event_range::print): Rename to... |
| (event_range::print_as_text): ...this. Update call to |
| diagnostic_start_span. |
| (event_range::print_as_html): New, based on the above, but ported |
| from pretty_printer to xml::printer. |
| (thread_event_printer::print_swimlane_for_event_range): Rename |
| to... |
| (thread_event_printer::print_swimlane_for_event_range_as_text): |
| ...this. Update for renaming of event_range::print to |
| event_range::print_as_text. |
| (thread_event_printer::print_swimlane_for_event_range_as_html): |
| New. |
| (print_path_summary_as_text): Update for "_as_text" renaming. |
| (print_path_summary_as_html): New. |
| (print_path_as_html): New. |
| * diagnostic-show-locus.cc: Add defines of INCLUDE_MAP and |
| INCLUDE_STRING. Add includes of "xml.h" and "xml-printer.h". |
| (struct char_display_policy): Replace "m_print_cb" with |
| "m_print_text_cb" and "m_print_html_cb". |
| (struct to_text): New. |
| (struct to_html): New. |
| (get_printer): New. |
| (default_diagnostic_start_span_fn<to_text>): New. |
| (default_diagnostic_start_span_fn<to_html>): New. |
| (class layout): Update "friend class layout_printer;" for |
| template. |
| (enum class margin_kind): New. |
| (class layout_printer): Convert into a template. |
| (layout_printer::m_pp): Replace field with... |
| (layout_printer::m_sink): ...this. |
| (layout_printer::m_colorizer): Drop field in favor of a pointer |
| in the "to_text" sink. |
| (default_print_decoded_ch): Convert into a template. |
| (escape_as_bytes_print): Likewise. |
| (escape_as_unicode_print): Likewise. |
| (make_char_policy): Update to use both text and html callbacks. |
| (layout_printer::print_gap_in_line_numbering): Replace with... |
| (layout_printer<to_text>::print_gap_in_line_numbering): ...this |
| (layout_printer<to_html>::print_gap_in_line_numbering): ...and |
| this. |
| (layout_printer::print_source_line): Convert to template, using |
| m_sink. |
| (layout_printer::print_leftmost_column): Likewise. |
| (layout_printer::start_annotation_line): Likewise. |
| (layout_printer<to_text>::end_line): New. |
| (layout_printer<to_html>::end_line): New. |
| (layout_printer::print_annotation_line): Convert to template, |
| using m_sink. |
| (class line_label): Add field m_original_range_idx. |
| (layout_printer<to_text>::begin_label): New. |
| (layout_printer<to_html>::begin_label): New. |
| (layout_printer<to_text>::end_label): New. |
| (layout_printer<to_html>::end_label): New. |
| (layout_printer::print_any_labels): Convert to template, using |
| m_sink. |
| (layout_printer::print_leading_fixits): Likewise. |
| (layout_printer::print_trailing_fixits): Likewise. |
| (layout_printer::print_newline): Drop. |
| (layout_printer::move_to_column): Convert to template, using |
| m_sink. |
| (layout_printer::show_ruler): Likewise. |
| (layout_printer::print_line): Likewise. |
| (layout_printer::print_any_right_to_left_edge_lines): Likewise. |
| (layout_printer::layout_printer): Likewise. |
| (diagnostic_context::maybe_show_locus_as_html): New. |
| (diagnostic_source_print_policy::diagnostic_source_print_policy): |
| Update for split of start_span_cb into text vs html variants. |
| (diagnostic_source_print_policy::print): Update for use of |
| templates; use to_text. |
| (diagnostic_source_print_policy::print_as_html): New. |
| (layout_printer::print): Convert to template, using m_sink. |
| (selftest::make_element_for_locus): New. |
| (selftest::make_raw_html_for_locus): New. |
| (selftest::test_layout_x_offset_display_utf8): Update for use of |
| templates. |
| (selftest::test_layout_x_offset_display_tab): Likewise. |
| (selftest::test_one_liner_caret_and_range): Add test coverage of |
| HTML output. |
| (selftest::test_one_liner_labels): Likewise. |
| * diagnostic.cc (diagnostic_context::initialize): Update for split |
| of start_span_cb into text vs html variants. |
| (default_diagnostic_start_span_fn): Move to |
| diagnostic-show-locus.cc, converting to template. |
| * diagnostic.h (class xml::printer): New forward decl. |
| (diagnostic_start_span_fn): Replace typedef with "using", |
| converting to a template. |
| (struct to_text): New forward decl. |
| (struct to_html): New forward decl. |
| (get_printer): New decl. |
| (diagnostic_location_print_policy::print_text_span_start): New |
| decl. |
| (diagnostic_location_print_policy::print_html_span_start): New |
| decl. |
| (class html_label_writer): New. |
| (diagnostic_source_print_policy::print_as_html): New decl. |
| (diagnostic_source_print_policy::get_start_span_fn): Replace |
| with... |
| (diagnostic_source_print_policy::get_text_start_span_fn): ...this |
| (diagnostic_source_print_policy::get_html_start_span_fn): ...and |
| this |
| (diagnostic_source_print_policy::m_start_span_cb): Replace with... |
| (diagnostic_source_print_policy::m_text_start_span_cb): ...this |
| (diagnostic_source_print_policy::m_html_start_span_cb): ...and |
| this. |
| (diagnostic_context::maybe_show_locus_as_html): New decl. |
| (diagnostic_context::m_text_callbacks::m_start_span): Replace |
| with... |
| (diagnostic_context::m_text_callbacks::m_text_start_span): ...this |
| (diagnostic_context::m_text_callbacks::m_html_start_span): ...and |
| this. |
| (diagnostic_start_span): Update for template change. |
| (diagnostic_show_locus_as_html): New inline function. |
| (default_diagnostic_start_span_fn): Convert to template. |
| * doc/invoke.texi (experimental-html): Add "css" and "javascript" |
| keys. |
| * opts-diagnostic.cc (html_scheme_handler::make_sink): Likewise. |
| * selftest-diagnostic.cc |
| (selftest::test_diagnostic_context::start_span_cb): Update for |
| template changes. |
| * selftest-diagnostic.h |
| (selftest::test_diagnostic_context::start_span_cb): Likewise. |
| * xml-printer.h: New file. |
| * xml.h: New file, based on material in diagnostic-format-html.cc, |
| but using std::string rather than label_text. |
| (xml::element::m_key_insertion_order): New field. |
| (struct xml::raw): New. |
| |
| 2025-05-27 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add diagnostic-path-output.o. |
| * diagnostic-path-output.cc: New file, taken from material in |
| diagnostic-path.cc. |
| * diagnostic-path.cc: Drop includes of |
| "diagnostic-macro-unwinding.h", "intl.h", "gcc-rich-location.h", |
| "diagnostic-color.h", "diagnostic-event-id.h", |
| "diagnostic-label-effects.h", "pretty-print-markup.h", |
| "selftest.h", "selftest-diagnostic.h", |
| "selftest-diagnostic-path.h", "text-art/theme.h", and |
| "diagnostic-format-text.h". |
| (class path_print_policy): Move to diagnostic-path-output.cc. |
| (class path_label): Likewise. |
| (can_consolidate_events): Likewise. |
| (class per_thread_summary): Likewise. |
| (struct event_range): Likewise. |
| (struct path_summary): Likewise. |
| (per_thread_summary::interprocedural_p): Likewise. |
| (path_summary::path_summary): Likewise. |
| (write_indent): Likewise. |
| (base_indent): Likewise. |
| (per_frame_indent): Likewise. |
| (class thread_event_printer): Likewise. |
| (print_path_summary_as_text): Likewise. |
| (class element_event_desc): Likewise. |
| (diagnostic_text_output_format::print_path): Likewise. |
| (selftest::path_events_have_column_data_p): Likewise. |
| (selftest::test_empty_path): Likewise. |
| (selftest::test_intraprocedural_path): Likewise. |
| (selftest::test_interprocedural_path_1): Likewise. |
| (selftest::test_interprocedural_path_2): Likewise. |
| (selftest::test_recursion): Likewise. |
| (class selftest::control_flow_test): Likewise. |
| (selftest::test_control_flow_1): Likewise. |
| (selftest::test_control_flow_2): Likewise. |
| (selftest::test_control_flow_3): Likewise. |
| (selftest::assert_cfg_edge_path_streq): Likewise. |
| (ASSERT_CFG_EDGE_PATH_STREQ): Likewise. |
| (selftest::test_control_flow_4): Likewise. |
| (selftest::test_control_flow_5): Likewise. |
| (selftest::test_control_flow_6): Likewise. |
| (selftest::control_flow_tests): Likewise. |
| (selftest::diagnostic_path_cc_tests): Likewise, renaming |
| accordingly. |
| * selftest-run-tests.cc (selftest::run_tests): Update for |
| move of path-printing selftests. |
| * selftest.h (selftest::diagnostic_path_cc_tests): Replace decl |
| with... |
| (selftest::diagnostic_path_output_cc_tests): ...this. |
| |
| 2025-05-27 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/vector.md(*vec_extract<mode>): Fix mnemonic. |
| |
| 2025-05-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/117965 |
| * tree-ssa-phiprop.cc (phivn_valid_p): Remove. |
| (propagate_with_phi): Pass in virtual PHI node from BB, |
| rewrite load motion validity check to require the same |
| virtual use along all paths. |
| |
| 2025-05-27 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/119884 |
| * avoid-store-forwarding.cc (process_store_forwarding): |
| Use `lowpart_subreg` for the base register initialization |
| and remove redundant stores from the store/load sequence. |
| |
| 2025-05-27 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * sbitmap.cc (bitmap_any_bit_in_range_p): |
| Call and return the result of `bitmap_bit_in_range_p` with the |
| `any_inverted` parameter set to false. |
| (bitmap_bit_in_range_p): New function. |
| (bitmap_all_bits_in_range_p): New function. |
| * sbitmap.h (bitmap_all_bits_in_range_p): New function. |
| |
| 2025-05-27 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * sbitmap.cc (bitmap_bit_in_range_p): Renamed the function. |
| (bitmap_any_bit_in_range_p): New function name. |
| (bitmap_bit_in_range_p_checking): Renamed the function. |
| (bitmap_any_bit_in_range_p_checking): New function name. |
| (test_set_range): Updated function calls to use the new name. |
| (test_bit_in_range): Likewise. |
| * sbitmap.h (bitmap_bit_in_range_p): Renamed the function. |
| (bitmap_any_bit_in_range_p): New function name. |
| * tree-ssa-dse.cc (live_bytes_read): |
| Updated function call to use the new name. |
| |
| 2025-05-27 Co-authored-by: Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/bitmanip.md (andi+bclr splits): Simplified from |
| prior define_insn_and_splits. |
| * config/riscv/riscv.cc (synthesize_and): Add support for andi+bclr |
| sequences. |
| |
| 2025-05-27 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add |
| new case for XOR op. |
| (expand_vx_binary_vec_vec_dup): Diito. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op or to no_shift_vx_ops. |
| |
| 2025-05-27 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/vector.md (VF): New mode iterator. |
| (VEC_SET_NONFLOAT): New mode iterator. |
| (VEC_SET_SINGLEFLOAT): New mode iterator. |
| (*vec_set<mode>): Split pattern in two. |
| (*vec_setv2df): Extract special handling for V2DF mode. |
| (*vec_extract<mode>): Split pattern in two. |
| |
| 2025-05-27 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/extend.texi (Common Variable Attributes): Fix typo in |
| description of nonstring. |
| |
| 2025-05-27 Kito Cheng <kito.cheng@sifive.com> |
| |
| * gcc.cc (find_multilib_os_dir_by_multilib_dir): New. |
| (set_multilib_dir): Fix multilib_os_dir and multiarch_dir |
| if multilib_os_dir is not set. |
| |
| 2025-05-27 xuli <xuli1@eswincomputing.com> |
| |
| * match.pd: add singned vector SAT_ADD IMM form1 matching. |
| |
| 2025-05-27 xuli <xuli1@eswincomputing.com> |
| |
| * match.pd: Add signed scalar SAT_ADD IMM form1 with IMM=-1 matching. |
| * tree-ssa-math-opts.cc (match_unsigned_saturation_add): Adapt function name. |
| (match_saturation_add_with_assign): Match signed and unsigned SAT_ADD with assign. |
| (math_opts_dom_walker::after_dom_children): Match imm=-1 signed SAT_ADD with NOP_EXPR case. |
| |
| 2025-05-26 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi: Move C++ -fdump-lang to C++ section. |
| Add -fdump-lang-tinst. |
| |
| 2025-05-26 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * config/aarch64/gcc-auto-profile: New file. |
| |
| 2025-05-26 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.cc: Remove include of reload.h . |
| |
| 2025-05-26 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * ipa-split.cc (pass_feedback_split_functions::clone): New. |
| * passes.def: Enable pass_feedback_split_functions for |
| pass_ipa_auto_profile. |
| |
| 2025-05-25 Michael J. Eager <eager@eagercon.com> |
| |
| PR target/86772 |
| Tracking CVE-2017-5753 |
| * config/microblaze/microblaze.cc (TARGET_HAVE_SPECULATION_SAFE_VALUE): |
| Define to speculation_save_value_not_needed |
| |
| 2025-05-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.cc (ix86_builtin_vectorization_cost): |
| use sse_op instead of addss to cost vinsertti128 and vinsertti64x4; |
| compute correct mode of vinsertti128. |
| (ix86_vector_costs::add_stmt_cost): For integer 256bit and 512bit |
| vector constructions account more integer_to_sse moves. |
| |
| 2025-05-25 LIU Hao <lh_mouse@126.com> |
| |
| PR target/53929 |
| PR target/80881 |
| * config/i386/i386-protos.h (ix86_asm_output_labelref): Declare new |
| function for quoting user-defined symbols in Intel syntax. |
| * config/i386/i386.cc (ix86_asm_output_labelref): Implement it. |
| * config/i386/i386.h (ASM_OUTPUT_LABELREF): Use it. |
| * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Use it. |
| |
| 2025-05-24 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (synthesize_and): Use a srl+andi+sll |
| sequence when the mask fits in a simm12 after shifting by the |
| number of trailing zeros. |
| Co-authored-by: Jeff Law <jlaw@ventanamicro.com> |
| |
| 2025-05-24 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new |
| case for IOR op. |
| (expand_vx_binary_vec_vec_dup): Ditto. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op or to no_shift_vx_ops. |
| |
| 2025-05-23 Andi Kleen <ak@gcc.gnu.org> |
| |
| * doc/install.texi: Document bootstrap-native. |
| |
| 2025-05-23 Andi Kleen <ak@gcc.gnu.org> |
| |
| PR middle-end/114563 |
| PR c++/119387 |
| * ggc-page.cc (struct free_list): New structure. |
| (struct page_entry): Point to free_list. |
| (find_free_list): New function. |
| (find_free_list_order): Dito. |
| (alloc_page): Use specific free_list. |
| (release_pages): Dito. |
| (do_release_pages): Dito. |
| (init_ggc): Dito. |
| (ggc_print_statistics): Print overflow stat. |
| (ggc_pch_read): Use specific free list. |
| |
| 2025-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/implement-c.texi (C Implementation): Add missing menu items. |
| |
| 2025-05-23 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_subset_list::parse_base_ext): |
| Adjust error message. |
| (riscv_handle_option): Parse as CPU string first. |
| (riscv_expand_arch): Ditto. |
| * doc/invoke.texi: Document. |
| |
| 2025-05-23 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/riscv-v.cc (autovectorize_vector_modes): Return |
| user-specified mode if available. |
| * config/riscv/riscv.opt: New param. |
| |
| 2025-05-23 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (singleton_vxrm_need): Init |
| saved_vxrm_mode. |
| |
| 2025-05-23 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/riscv-vector-costs.cc (compute_estimated_lmul): |
| Always use vect_vf_for_cost and TARGET_MIN_VLEN. |
| |
| 2025-05-23 Dhruv Chawla <dhruvc@nvidia.com> |
| Richard Sandiford <richard.sandiford@arm.com> |
| |
| * expmed.cc (expand_rotate_as_vec_perm): Avoid a no-op move if the |
| target already provided the result in the expected register. |
| * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): |
| Avoid forcing subregs into fresh registers unnecessarily. |
| * config/aarch64/aarch64-sve.md: Add define_split for rotate. |
| (*v_revvnx8hi): New pattern. |
| |
| 2025-05-23 Dhruv Chawla <dhruvc@nvidia.com> |
| Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@aarch64_adr<mode>_shift): |
| Match lowered form of ashift. |
| (*aarch64_adr<mode>_shift): Likewise. |
| (*aarch64_adr_shift_sxtw): Likewise. |
| (*aarch64_adr_shift_uxtw): Likewise. |
| (<ASHIFT:optab><mode>3): Check amount instead of operands[2] in |
| aarch64_sve_<lr>shift_operand. |
| (v<optab><mode>3): Generate unpredicated shifts for constant |
| operands. |
| (@aarch64_pred_<optab><mode>): Convert to a define_expand. |
| (*aarch64_pred_<optab><mode>): Create define_insn_and_split pattern |
| from @aarch64_pred_<optab><mode>. |
| (*post_ra_v_ashl<mode>3): Rename to ... |
| (aarch64_vashl<mode>3_const): ... this and remove reload requirement. |
| (*post_ra_v_<optab><mode>3): Rename to ... |
| (aarch64_v<optab><mode>3_const): ... this and remove reload |
| requirement. |
| * config/aarch64/aarch64-sve2.md |
| (@aarch64_sve_add_<sve_int_op><mode>): Match lowered form of |
| SHIFTRT. |
| (*aarch64_sve2_sra<mode>): Likewise. |
| (*bitmask_shift_plus<mode>): Match lowered form of lshiftrt. |
| |
| 2025-05-22 Joseph Myers <josmyers@redhat.com> |
| |
| * doc/implement-c.texi: Document C23 implementation-defined |
| behavior. |
| (Constant expressions implementation, Types implementation): New |
| nodes. |
| |
| 2025-05-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.cc (loc_list_from_tree_1) <COMPONENT_REF>: Add specific |
| handling of bit-fields for big-endian targets. |
| |
| 2025-05-22 Alexandre Oliva <oliva@adacore.com> |
| |
| * config/aarch64/aarch64-vxworks.h (TARGET_OS_USES_R18): Define. |
| Update comments. |
| * config/aarch64/aarch64.cc (aarch64_conditional_register_usage): |
| Mark x18 as fixed on VxWorks. |
| (aarch64_override_options_internal): Issue sorry message on |
| -fsanitize=shadow-call-stack if TARGET_OS_USES_R18. |
| |
| 2025-05-22 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (synthesize_and): When profitable, use a three |
| shift sequence to clear bits at both upper and lower bits rather than |
| synthesizing the constant mask. |
| |
| 2025-05-22 Siarhei Volkau <lis8215@gmail.com> |
| |
| PR target/70557 |
| * config/riscv/riscv.md (movdi_32bit): Add "J" constraint to allow storing 0 |
| directly to memory. |
| |
| 2025-05-22 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR target/120372 |
| * config/aarch64/aarch64.cc (aarch64_rtx_costs <case CONST_INSN>): Handle |
| if outer is COMPARE and the constant can be handled by the cmp instruction. |
| |
| 2025-05-22 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * expmed.cc (canonicalize_comparison): Use rtx_cost directly |
| instead of gen_move_insn. Print out the choice if dump is enabled. |
| |
| 2025-05-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-lower-bitint.cc (bitint_extended): New variable. |
| (bitint_large_huge::lower_shift_stmt): For LSHIFT_EXPR with |
| bitint_extended if lhs has most significant partial limb extend |
| it afterwards. |
| |
| 2025-05-22 Xi Ruoyao <xry111@xry111.site> |
| |
| * doc/md.texi: Document the 'q' constraint for LoongArch. |
| |
| 2025-05-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/120360 |
| * config/i386/predicates.md (x86_64_neg_const_int_operand): New |
| predicate. |
| * config/i386/i386.md (*cmp<mode>_plus_1): New pattern. |
| |
| 2025-05-22 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (synthesize_and): When profitable, use two |
| shift combinations to clear high or low bits rather than synthsizing |
| the constant. |
| |
| 2025-05-22 Pengxuan Zheng <quic_pzheng@quicinc.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_evpc_reencode): Copy zero_op0_p and |
| zero_op1_p from d to newd. |
| |
| 2025-05-21 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR rtl-optimization/120090 |
| * combine.cc (gen_lowpart_for_combine_no_emit): New function. |
| (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Set to gen_lowpart_for_combine_no_emit. |
| |
| 2025-05-21 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.md ((x << C1) + C2): Tighten split condition |
| and generate more efficient code when splitting. |
| |
| 2025-05-21 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/120368 |
| * config/riscv/riscv.md (shift with masked shift count): Fix |
| opcode when generating an SImode shift on rv64. |
| |
| 2025-05-21 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new |
| case for rtx code AND. |
| (expand_vx_binary_vec_vec_dup): Ditto. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Ditto. |
| * config/riscv/vector-iterators.md: Add new op and to no_shift_vx_ops. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gensupport.h (needs_barrier_p): Delete. |
| * gensupport.cc (needs_barrier_p): Likewise. |
| * rtl.h (always_void_p): Return true for PC, RETURN and SIMPLE_RETURN. |
| (expand_opcode): New enum class. |
| (expand_rtx, complete_seq): Declare. |
| * emit-rtl.cc (rtx_expander): New class. |
| (expand_rtx, complete_seq): New functions. |
| * gengenrtl.cc (special_rtx, excluded_rtx): Add a cross-reference |
| comment. |
| * genemit.cc (FIRST_CODE): New constant. |
| (print_code): Delete. |
| (generator::file, generator::used, generator::sequence_type): Delete. |
| (generator::bytes): New member variable. |
| (generator::generator): Update accordingly. |
| (generator::gen_rtx_scratch): Delete. |
| (generator::add_uint, generator::add_opcode, generator::add_code) |
| (generator::add_match_operator, generator::add_exp) |
| (generator::add_vec, generator::gen_table): New member functions. |
| (generator::gen_exp): Rewrite to use a bytecode expansion. |
| (generator::gen_emit_seq): Likewise. |
| (start_gen_insn): Return the C++ expression for the operands array. |
| (gen_insn, gen_expand, gen_split): Update callers accordingly. |
| (emit_c_code): Remove use of _val. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genemit.cc (clobber_pat::code): Delete. |
| (maybe_queue_insn): Don't set clobber_pat::code. |
| (output_add_clobbers): Remove info argument and output the two |
| REG and SCRATCH cases directly. |
| (main): Update call accordingly. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genemit.cc (generator::gen_exp): Report an error for 's' operands. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genemit.cc (generator::gen_exp): Raise an error if we see |
| an 'L' operand. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genemit.cc (generator::used): Update comment. |
| (generator::gen_exp): Remove handling of null unused arrays. |
| (gen_insn, gen_expand): Always pass a used array. |
| (output_add_clobbers): Note why the used array is null here. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genemit.cc (generator): New structure. |
| (gen_rtx_scratch, gen_exp, gen_emit_seq): Turn into member |
| functions of generator. |
| (gen_insn, gen_expand, gen_split, output_add_clobbers): Update |
| users accordingly. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genemit.cc (gen_rtx_scratch, gen_exp): Use operands[%d] rather than |
| operand%d. |
| (start_gen_insn): Mark the incoming arguments as const and store |
| them to an operands array. |
| (gen_expand, gen_split): Remove copies into and out of the operands |
| array. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genemit.cc (start_gen_insn): New function, split out from... |
| (gen_insn, gen_expand): ...here. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genemit.cc (queue): New static variable. |
| (maybe_queue_insn): New function, split out from... |
| (gen_insn): ...here. |
| (queue_expand): New function, split out from... |
| (gen_expand): ...here. |
| (gen_split): New function, split out from... |
| (queue_split): ...here. |
| (main): Queue definitions for later processing rather than |
| emitting them on the fly. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genemit.cc (gen_exp): Make the info argument a constant reference. |
| (gen_emit_seq, gen_insn, gen_expand, gen_split): Likewise. |
| (output_add_clobbers): Likewise. |
| (main): Update calls accordingly. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/sparc/sparc.md (zero_extendhisi2, zero_extendhidi2) |
| (extendhisi2, extendqihi2, extendqisi2, extendqidi2) |
| (extendhidi2): Use operands[0] and operands[1] instead of |
| operand0 and operand1. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/stormy16/stormy16.md (negsi2): Remove unused assignment. |
| |
| 2025-05-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/100837 |
| * config/nds32/nds32-intrinsic.md (unspec_get_pending_int): Use |
| a local variable instead of operands[2]. |
| |
| 2025-05-21 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/120369 |
| * tree-complex.cc (gimple_expand_builtin_cabs): Return early |
| if the LHS of cabs is null. |
| |
| 2025-05-21 Co-Authored-By: Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv-protos.h (synthesize_and): Prototype. |
| * config/riscv/riscv.cc (synthesize_and): New function. |
| * config/riscv/riscv.md (and<mode>3): Use it. |
| |
| 2025-05-21 liuhongt <hongtao.liu@intel.com> |
| |
| PR middle-end/118994 |
| * match.pd ((a >> 1) + (b >> 1) + ((a | b) & 1) to |
| .AVG_CEIL (a, b)): New pattern. |
| ((a | b) - ((a ^ b) >> 1) to .AVG_CEIL (a, b)): Ditto. |
| |
| 2025-05-20 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * Makefile.in (gimple-match-exports.o-warn): Remove. |
| * gimple-match-exports.cc (gimple_extract): Remove valueize_condition |
| argument. |
| (gimple_extract_op): Update call to gimple_extract. |
| (gimple_simplify): Likewise. Also remove valueize_condition lambda. |
| |
| 2025-05-20 Umesh Kalappa <ukalappa.mips@gmail.com> |
| |
| * config/riscv/mips-p8700.md (mips_p8700_dummies): New |
| reservation. |
| (mips_p8700_unknown): Reservation for all the dummies. |
| |
| 2025-05-20 Umesh Kalappa <ukalappa.mips@gmail.com> |
| |
| * config/riscv/mips-p8700.md: New scheduler model. |
| * config/riscv/riscv-cores.def (mips-p87000): New tuning model |
| and core architecture. |
| * config/riscv/riscv-opts.h (riscv_microarchitecture_type); Add |
| mips-p8700. |
| * config/riscv/riscv.cc (mips_p8700_tune_info): New uarch |
| tuning parameters. |
| * config/riscv/riscv.md (tune): Add mips_p8700. |
| Include mips-p8700.md |
| * doc/invoke.texi: Document tune/cpu options for the MIPS P8700. |
| Co-authored-by: Jeff Law <jlaw@ventanamicro.com> |
| |
| 2025-05-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-chrec.cc (convert_affine_scev): Use signed_type_for instead of |
| build_nonstandard_integer_type. |
| |
| 2025-05-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-lower-bitint.cc (bitint_big_endian): New variable. |
| (bitint_precision_kind): Set it. |
| (struct bitint_large_huge): Add unsigned argument to |
| finish_arith_overflow. |
| (bitint_large_huge::limb_access_type): Handle bitint_big_endian. |
| (bitint_large_huge::handle_operand): Likewise. |
| (bitint_large_huge::handle_cast): Likewise. |
| (bitint_large_huge::handle_bit_field_ref): Likewise. |
| (bitint_large_huge::handle_load): Likewise. |
| (bitint_large_huge::lower_shift_stmt): Likewise. |
| (bitint_large_huge::finish_arith_overflow): Likewise. |
| Add nelts argument. |
| (bitint_large_huge::lower_addsub_overflow): Handle bitint_big_endian. |
| Adjust finish_arith_overflow caller. |
| (bitint_large_huge::lower_mul_overflow): Likewise. |
| (bitint_large_huge::lower_bit_query): Handle bitint_big_endian. |
| (bitint_large_huge::lower_stmt): Likewise. |
| (build_bitint_stmt_ssa_conflicts): Likewise. |
| (gimple_lower_bitint): Likewise. |
| |
| 2025-05-20 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/bitmanip.md (various splits): Avoid writing the output |
| more than once when trivially possible. |
| |
| 2025-05-20 liuhongt <hongtao.liu@intel.com> |
| |
| PR tree-optimization/103771 |
| * match.pd (cond_expr_convert_p): Extend the match to handle |
| REAL_CST. |
| * tree-vect-patterns.cc |
| (vect_recog_cond_expr_convert_pattern): Handle REAL_CST. |
| |
| 2025-05-20 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md: Leverage the new add func to |
| expand the vx insn. |
| * config/riscv/riscv-protos.h (expand_vx_binary_vec_dup_vec): Add |
| new func decl to expand format v = vop(vec_dup(x), v). |
| (expand_vx_binary_vec_vec_dup): Diito but for format |
| v = vop(v, vec_dup(x)). |
| * config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new |
| func impl to expand vx for v = vop(vec_dup(x), v). |
| (expand_vx_binary_vec_vec_dup): Diito but for another format |
| v = vop(v, vec_dup(x)). |
| |
| 2025-05-19 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/120333 |
| * config/riscv/bitmanip.md: Remove bext formed from left+right |
| shift patterns. |
| |
| 2025-05-19 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa-hpux.h (TARGET_HAVE_LIBATOMIC): Define. |
| (HAVE_sync_compare_and_swapqi): Likewise. |
| (HAVE_sync_compare_and_swaphi): Likewise. |
| (HAVE_sync_compare_and_swapsi): Likewise. |
| (HAVE_sync_compare_and_swapdi): Likewise. |
| |
| 2025-05-19 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR lto/120308 |
| * lto-streamer-out.cc (hash_tree): Don't handle 'TYPE_EMPTY_P' for |
| 'lto_stream_offload_p'. |
| * tree-streamer-in.cc (unpack_ts_type_common_value_fields): |
| Likewise. |
| * tree-streamer-out.cc (pack_ts_type_common_value_fields): |
| Likewise. |
| |
| 2025-05-19 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (synthesize_ior_xor): Initialize OUTPUT and |
| verify it's non-null before emitting the final copy insn. |
| |
| 2025-05-19 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/120351 |
| * config/arm/predicates.md (mem_noofs_operand): Also check the op |
| is a valid memory_operand. |
| |
| 2025-05-19 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc (get_riscv_ext_info): Fix argument type. |
| (riscv_subset_list::check_implied_ext): Type conversion. |
| |
| 2025-05-19 zhusonghe <zhusonghe@eswincomputing.com> |
| |
| * config/riscv/gen-riscv-ext-texi.cc (struct version_t):rename |
| major/minor to major_version/minor_version. |
| |
| 2025-05-19 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.cc (riscv_legitimize_move): Handle |
| load/store with odd-even reg pair. |
| (riscv_split_64bit_move_p): Don't split load/store if zilsd enabled. |
| (riscv_hard_regno_mode_ok): Only allow even reg can be used for |
| 64 bits mode for zilsd. |
| |
| 2025-05-19 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| PR middle-end/120276 |
| * regcprop.cc (copy_value): Return in case of unordered modes. |
| |
| 2025-05-19 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/constraints.md (cR): New constraint. |
| * doc/md.texi (Machine Constraints::RISC-V): Document the new cR |
| constraint. |
| |
| 2025-05-19 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config.gcc: Remove 512 intrin file. |
| * config/i386/avx10_2-512bf16intrin.h: |
| Removed and combined to ... |
| * config/i386/avx10_2bf16intrin.h: ... this. |
| * config/i386/avx10_2-512convertintrin.h: |
| Removed and combined to ... |
| * config/i386/avx10_2convertintrin.h: ... this. |
| * config/i386/avx10_2-512mediaintrin.h: |
| Removed and combined to ... |
| * config/i386/avx10_2mediaintrin.h: ... this. |
| * config/i386/avx10_2-512minmaxintrin.h: |
| Removed and combined to ... |
| * config/i386/avx10_2minmaxintrin.h: ... this. |
| * config/i386/avx10_2-512satcvtintrin.h: |
| Removed and combined to ... |
| * config/i386/avx10_2satcvtintrin.h: ... this. |
| * config/i386/immintrin.h: Remove 512 intrin file. |
| |
| 2025-05-19 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/sse.md (VF1_VF2_AVX10_2): Removed. |
| (VF2_AVX10_2): Ditto. |
| (VI1248_AVX10_2): Ditto. |
| (VFH_AVX10_2): Ditto. |
| (VF1_AVX10_2): Ditto. |
| (VHF_AVX10_2): Ditto. |
| (VBF_AVX10_2): Ditto. |
| (VI8_AVX10_2): Ditto. |
| (VI2_AVX10_2): Ditto. |
| (VBF): New. |
| (div<mode>3): Use VBF instead of AVX10.2 ones. |
| (vec_cmp<mode><avx512fmaskmodelower>): Ditto. |
| (avx10_2_cvt2ps2phx_<mode><mask_name><round_name>): |
| Use VHF_AVX512VL instead of AVX10.2 ones. |
| (vcvt<convertfp8_pack><mode><mask_name>): Ditto. |
| (vcvthf82ph<mode><mask_name>): Ditto. |
| (VHF_AVX10_2_2): Remove not needed TARGET_AVX10_2. |
| (usdot_prod<sseunpackmodelower><mode>): Use VI2_AVX512F |
| instead of AVX10.2 ones. |
| (vdpphps_<mode>): Use VF1_AVX512VL instead of AVX10.2 ones. |
| (vdpphps_<mode>_mask): Ditto. |
| (vdpphps_<mode>_maskz): Ditto. |
| (vdpphps_<mode>_maskz_1): Ditto. |
| (avx10_2_scalefbf16_<mode><mask_name>): Use VBF instead of |
| AVX10.2 ones. |
| (<code><mode>3): Ditto. |
| (avx10_2_<code>bf16_<mode><mask_name>): Ditto. |
| (avx10_2_fmaddbf16_<mode>_maskz); Ditto. |
| (avx10_2_fmaddbf16_<mode><sd_maskz_name>): Ditto. |
| (avx10_2_fmaddbf16_<mode>_mask): Ditto. |
| (avx10_2_fmaddbf16_<mode>_mask3): Ditto. |
| (avx10_2_fnmaddbf16_<mode>_maskz): Ditto. |
| (avx10_2_fnmaddbf16_<mode><sd_maskz_name>): Ditto. |
| (avx10_2_fnmaddbf16_<mode>_mask): Ditto. |
| (avx10_2_fnmaddbf16_<mode>_mask3): Ditto. |
| (avx10_2_fmsubbf16_<mode>_maskz); Ditto. |
| (avx10_2_fmsubbf16_<mode><sd_maskz_name>): Ditto. |
| (avx10_2_fmsubbf16_<mode>_mask): Ditto. |
| (avx10_2_fmsubbf16_<mode>_mask3): Ditto. |
| (avx10_2_fnmsubbf16_<mode>_maskz): Ditto. |
| (avx10_2_fnmsubbf16_<mode><sd_maskz_name>): Ditto. |
| (avx10_2_fnmsubbf16_<mode>_mask): Ditto. |
| (avx10_2_fnmsubbf16_<mode>_mask3): Ditto. |
| (avx10_2_rsqrtbf16_<mode><mask_name>): Ditto. |
| (avx10_2_sqrtbf16_<mode><mask_name>): Ditto. |
| (avx10_2_rcpbf16_<mode><mask_name>): Ditto. |
| (avx10_2_getexpbf16_<mode><mask_name>): Ditto. |
| (avx10_2_<bf16immop>bf16_<mode><mask_name>): Ditto. |
| (avx10_2_fpclassbf16_<mode><mask_scalar_merge_name>): Ditto. |
| (avx10_2_cmpbf16_<mode><mask_scalar_merge_name>): Ditto. |
| (avx10_2_cvt<sat_cvt_trunc_prefix>bf162i<sat_cvt_sign_prefix>bs<mode><mask_name>): |
| Ditto. |
| (avx10_2_cvtph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>): |
| Use VHF_AVX512VL instead of AVX10.2 ones. |
| (avx10_2_cvttph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>): |
| Ditto. |
| (avx10_2_cvtps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>): |
| Use VF1_AVX512VL instead of AVX10.2 ones. |
| (avx10_2_cvttps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>): |
| Ditto. |
| (avx10_2_vcvtt<castmode>2<sat_cvt_sign_prefix>dqs<mode><mask_name><round_saeonly_name>): |
| Use VF instead of AVX10.2 ones. |
| (avx10_2_vcvttpd2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>): |
| Use VF2 instead of AVX10.2 ones. |
| (avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>): |
| Use VI8 instead of AVX10.2 ones. |
| (avx10_2_minmaxbf16_<mode><mask_name>): Use VBF instead of |
| AVX10.2 ones. |
| (avx10_2_minmaxp<mode><mask_name><round_saeonly_name>): |
| Use VFH_AVX512VL instead of AVX10.2 ones. |
| (avx10_2_vmovrs<ssemodesuffix><mode><mask_name>): |
| Use VI1248_AVX512VLBW instead of AVX10.2 ones. |
| |
| 2025-05-19 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/cpuinfo.h |
| (get_available_features): Remove feature set for AVX10_1_256. |
| * common/config/i386/i386-common.cc |
| (OPTION_MASK_ISA2_EVEX512_SET): Removed. |
| (OPTION_MASK_ISA2_AVX10_1_256_SET): Removed. |
| (OPTION_MASK_ISA_AVX10_1_SET): Imply all AVX512 features. |
| (OPTION_MASK_ISA2_AVX10_1_SET): Ditto. |
| (OPTION_MASK_ISA2_AVX2_UNSET): Remove AVX10_1_UNSET. |
| (OPTION_MASK_ISA2_EVEX512_UNSET): Removed. |
| (OPTION_MASK_ISA2_AVX10_1_UNSET): Remove AVX10_1_256. |
| (OPTION_MASK_ISA2_AVX512F_UNSET): Unset AVX10_1. |
| (ix86_handle_option): Remove special handling for AVX512/AVX10.1 |
| options, evex512 and avx10_1_256. Modify ISA set for AVX10 options. |
| * common/config/i386/i386-cpuinfo.h |
| (enum feature_priority): Remove P_AVX10_1_256. |
| (enum processor_features): Remove FEATURE_AVX10_1_256. |
| * common/config/i386/i386-isas.h: Remove avx10.1-256/512. |
| * config/i386/avx512bf16intrin.h: Rollback target push before |
| evex512 is introduced. |
| * config/i386/avx512bf16vlintrin.h: Ditto. |
| * config/i386/avx512bitalgintrin.h: Ditto. |
| * config/i386/avx512bitalgvlintrin.h: Ditto. |
| * config/i386/avx512bwintrin.h: Ditto. |
| * config/i386/avx512cdintrin.h: Ditto. |
| * config/i386/avx512dqintrin.h: Ditto. |
| * config/i386/avx512fintrin.h: Ditto. |
| * config/i386/avx512fp16intrin.h: Ditto. |
| * config/i386/avx512fp16vlintrin.h: Ditto. |
| * config/i386/avx512ifmaintrin.h: Ditto. |
| * config/i386/avx512ifmavlintrin.h: Ditto. |
| * config/i386/avx512vbmi2intrin.h: Ditto. |
| * config/i386/avx512vbmi2vlintrin.h: Ditto. |
| * config/i386/avx512vbmiintrin.h: Ditto. |
| * config/i386/avx512vbmivlintrin.h: Ditto. |
| * config/i386/avx512vlbwintrin.h: Ditto. |
| * config/i386/avx512vldqintrin.h: Ditto. |
| * config/i386/avx512vlintrin.h: Ditto. |
| * config/i386/avx512vnniintrin.h: Ditto. |
| * config/i386/avx512vnnivlintrin.h: Ditto. |
| * config/i386/avx512vp2intersectintrin.h: Ditto. |
| * config/i386/avx512vp2intersectvlintrin.h: Ditto. |
| * config/i386/avx512vpopcntdqintrin.h: Ditto. |
| * config/i386/avx512vpopcntdqvlintrin.h: Ditto. |
| * config/i386/gfniintrin.h: Ditto. |
| * config/i386/vaesintrin.h: Ditto. |
| * config/i386/vpclmulqdqintrin.h: Ditto. |
| * config/i386/driver-i386.cc (check_avx512_features): Removed. |
| (host_detect_local_cpu): Remove -march=native special handling. |
| * config/i386/i386-builtins.cc |
| (ix86_vectorize_builtin_gather): Remove TARGET_EVEX512. |
| * config/i386/i386-c.cc |
| (ix86_target_macros_internal): Remove EVEX512 and AVX10_1_256. |
| * config/i386/i386-expand.cc |
| (ix86_valid_mask_cmp_mode): Remove TARGET_EVEX512. |
| (ix86_expand_int_sse_cmp): Ditto. |
| (ix86_vector_duplicate_simode_const): Ditto. |
| (ix86_expand_vector_init_duplicate): Ditto. |
| (ix86_expand_vector_init_one_nonzero): Ditto. |
| (ix86_emit_swsqrtsf): Ditto. |
| (ix86_vectorize_vec_perm_const): Ditto. |
| (ix86_expand_vecop_qihi2): Ditto. |
| (ix86_expand_sse2_mulvxdi3): Ditto. |
| (ix86_gen_bcst_mem): Ditto. |
| * config/i386/i386-isa.def (EVEX512): Removed. |
| (AVX10_1_256): Ditto. |
| * config/i386/i386-options.cc |
| (isa2_opts): Remove evex512 and avx10.1-256. |
| (ix86_function_specific_save): Remove no_avx512_explicit and |
| no_avx10_1_explicit. |
| (ix86_function_specific_restore): Ditto. |
| (ix86_valid_target_attribute_inner_p): Remove evex512 and |
| avx10.1-256/512. |
| (ix86_valid_target_attribute_tree): Remove special handling |
| to rerun ix86_option_override_internal for AVX10.1-256. |
| (ix86_option_override_internal): Remove warning handling. |
| (ix86_simd_clone_adjust): Remove evex512. |
| * config/i386/i386.cc |
| (type_natural_mode): Remove TARGET_EVEX512. |
| (ix86_return_in_memory): Ditto. |
| (standard_sse_constant_p): Ditto. |
| (standard_sse_constant_opcode): Ditto. |
| (ix86_get_ssemov): Ditto. |
| (ix86_legitimate_constant_p): Ditto. |
| (ix86_vectorize_builtin_scatter): Ditto. |
| (ix86_hard_regno_mode_ok): Ditto. |
| (ix86_set_reg_reg_cost): Ditto. |
| (ix86_rtx_costs): Ditto. |
| (ix86_vector_mode_supported_p): Ditto. |
| (ix86_preferred_simd_mode): Ditto. |
| (ix86_autovectorize_vector_modes): Ditto. |
| (ix86_get_mask_mode): Ditto. |
| (ix86_simd_clone_compute_vecsize_and_simdlen): Ditto. |
| (ix86_simd_clone_usable): Ditto. |
| * config/i386/i386.h (BIGGEST_ALIGNMENT): Ditto. |
| (MOVE_MAX): Ditto. |
| (STORE_MAX_PIECES): Ditto. |
| (PTA_SKYLAKE_AVX512): Remove PTA_EVEX512. |
| (PTA_CANNONLAKE): Ditto. |
| (PTA_ZNVER4): Ditto. |
| (PTA_GRANITERAPIDS): Use PTA_AVX10_1. |
| (PTA_DIAMONDRAPIDS): Use PTA_GRANITERAPIDS. |
| * config/i386/i386.md: Remove TARGET_EVEX512, avx512f_512 |
| and avx512bw_512. |
| * config/i386/i386.opt: Remove ix86_no_avx512_explicit, |
| ix86_no_avx10_1_explicit, mevex512, mavx10.1-256/512 and |
| warning for mavx10.1. Modify option comment. |
| * config/i386/i386.opt.urls: Remove evex512 and avx10.1-256/512. |
| * config/i386/predicates.md: Remove TARGET_EVEX512. |
| * config/i386/sse.md: Ditto. |
| * doc/extend.texi: Remove avx10.1-256/512. Modify avx10.1 doc. |
| * doc/invoke.texi: Remove avx10.1-256/512 and evex512. |
| * doc/sourcebuild.texi: Remove avx10.1-256/512. |
| |
| 2025-05-19 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/i386-builtin.def |
| (BDESC): Remove OPTION_MASK_ISA2_EVEX512. |
| * config/i386/i386-builtins.cc |
| (ix86_init_mmx_sse_builtins): Ditto. |
| |
| 2025-05-18 Dimitar Dimitrov <dimitar@dinux.eu> |
| Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/119966 |
| * emit-rtl.cc (validate_subreg): Do not exit immediately for |
| paradoxical subregs. Filter subsequent tests which are |
| not valid for paradoxical subregs. |
| |
| 2025-05-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.cc (loc_list_from_tree_1) <COMPONENT_REF>: Do not bail |
| out when the size is not a multiple of a byte. |
| Deal with bit-fields whose size is not a multiple of a byte when |
| dereferencing an address. |
| |
| 2025-05-18 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * gimple-fold.cc (mark_lhs_in_seq_for_dce): Make |
| non-static. |
| * gimple-fold.h (mark_lhs_in_seq_for_dce): Declare. |
| * tree-ssa-phiopt.cc (match_simplify_replacement): Use |
| mark_lhs_in_seq_for_dce instead of manually looping. |
| |
| 2025-05-17 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv-vect-permconst.cc (vector_permconst:process_bb): |
| Use rtvec_alloc, not gen_rtvec since we don't want/need to initialize |
| the vector. |
| |
| 2025-05-17 Yuao Ma <c8ef@outlook.com> |
| |
| * doc/extend.texi: Mention new builtins. |
| |
| 2025-05-17 Yuao Ma <c8ef@outlook.com> |
| |
| * builtins.def (TRIG_TYPE): New. |
| (BUILT_IN_ACOSPI): New. |
| (BUILT_IN_ACOSPIF): New. |
| (BUILT_IN_ACOSPIL): New. |
| (BUILT_IN_ASINPI): New. |
| (BUILT_IN_ASINPIF): New. |
| (BUILT_IN_ASINPIL): New. |
| (BUILT_IN_ATANPI): New. |
| (BUILT_IN_ATANPIF): New. |
| (BUILT_IN_ATANPIL): New. |
| (BUILT_IN_COSPI): New. |
| (BUILT_IN_COSPIF): New. |
| (BUILT_IN_COSPIL): New. |
| (BUILT_IN_SINPI): New. |
| (BUILT_IN_SINPIF): New. |
| (BUILT_IN_SINPIL): New. |
| (BUILT_IN_TANPI): New. |
| (BUILT_IN_TANPIF): New. |
| (BUILT_IN_TANPIL): New. |
| (TRIG2_TYPE): New. |
| (BUILT_IN_ATAN2PI): New. |
| (BUILT_IN_ATAN2PIF): New. |
| (BUILT_IN_ATAN2PIL): New. |
| |
| 2025-05-17 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (synthesize_ior_xor): Avoid writing |
| operands[0] more than once, use new pseudos instead. |
| |
| 2025-05-17 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_gpr_save_operation_p): Remove |
| break and fixbug for elt index. |
| |
| 2025-05-16 Pengxuan Zheng <quic_pzheng@quicinc.com> |
| |
| PR target/100165 |
| * config/aarch64/aarch64-protos.h (aarch64_output_fmov): New prototype. |
| (aarch64_simd_valid_and_imm_fmov): Likewise. |
| * config/aarch64/aarch64-simd.md (and<mode>3<vczle><vczbe>): Allow FMOV |
| codegen. |
| * config/aarch64/aarch64.cc (aarch64_simd_valid_and_imm_fmov): New. |
| (aarch64_output_fmov): Likewise. |
| * config/aarch64/constraints.md (Df): New constraint. |
| * config/aarch64/predicates.md (aarch64_reg_or_and_imm): Update |
| predicate to support FMOV codegen. |
| |
| 2025-05-16 Pengxuan Zheng <quic_pzheng@quicinc.com> |
| |
| PR target/100165 |
| * config/aarch64/aarch64.cc (aarch64_evpc_and): New. |
| (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_and. |
| * optabs.cc (vec_perm_and_mask): New. |
| * optabs.h (vec_perm_and_mask): New prototype. |
| |
| 2025-05-16 Pengxuan Zheng <quic_pzheng@quicinc.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_evpc_reencode): Zero initialize |
| newd. |
| |
| 2025-05-16 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (forward_propagate_into_comparison): Dump |
| when replacing statement. |
| |
| 2025-05-16 Martin Jambor <mjambor@suse.cz> |
| Michal Jires <mjires@suse.cz> |
| |
| * cgraph.h (symtab_node): Make member function get_uid const. |
| * cgraphclones.cc (dump_callgraph_transformation): Dump m_uid of the |
| call graph nodes instead of order. |
| * cgraph.cc (cgraph_node::remove): Likewise. |
| * ipa-cp.cc (ipcp_lattice<valtype>::print): Likewise. |
| * ipa-sra.cc (ipa_sra_summarize_function): Likewise. |
| * symtab.cc (symtab_node::dump_base): Likewise. |
| |
| 2025-05-16 Ville Voutilainen <ville.voutilainen@gmail.com> |
| |
| * doc/invoke.texi: Add to_underlying to -ffold-simple-inlines. |
| |
| 2025-05-16 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR target/118603 |
| * config/aarch64/driver-aarch64.cc (aarch64_cpu_data): Add cast to unsigned |
| to VARIANT of the define AARCH64_CORE. |
| |
| 2025-05-16 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * config/aarch64/aarch64-protos.h (struct sve_vec_cost): Change gather_load_x32_cost |
| and gather_load_x64_cost fields to unsigned. |
| |
| 2025-05-16 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Add a limit on the alias walk. |
| |
| 2025-05-16 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * gimple-fold.cc (optimize_memcpy_to_memset): Move to |
| tree-ssa-forwprop.cc. |
| (gimple_fold_builtin_memory_op): Remove call to |
| optimize_memcpy_to_memset. |
| (fold_stmt_1): Likewise. |
| * tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Move from |
| gimple-fold.cc. |
| (simplify_builtin_call): Try to optimize memcpy/memset. |
| (pass_forwprop::execute): Try to optimize memcpy like assignment |
| from a previous memset. |
| |
| 2025-05-16 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/arm/arm.cc (arm_gen_load_multiple_1): Simplify use of |
| end_sequence. |
| (arm_gen_store_multiple_1): Likewise. |
| * expr.cc (gen_move_insn): Likewise. |
| * gentarget-def.cc (main): Likewise. |
| |
| 2025-05-16 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * asan.cc (asan_emit_allocas_unpoison): Directly return the |
| result of end_sequence. |
| (hwasan_emit_untag_frame): Likewise. |
| * config/aarch64/aarch64-speculation.cc |
| (aarch64_speculation_clobber_sp): Likewise. |
| (aarch64_speculation_establish_tracker): Likewise. |
| * config/arm/arm.cc (arm_call_tls_get_addr): Likewise. |
| * config/avr/avr-passes.cc (avr_parallel_insn_from_insns): Likewise. |
| * config/sh/sh_treg_combine.cc |
| (sh_treg_combine::make_not_reg_insn): Likewise. |
| * tree-outof-ssa.cc (emit_partition_copy): Likewise. |
| |
| 2025-05-16 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * asan.cc (asan_clear_shadow): Use the return value of end_sequence, |
| rather than calling get_insns separately. |
| (asan_emit_stack_protection, asan_emit_allocas_unpoison): Likewise. |
| (hwasan_frame_base, hwasan_emit_untag_frame): Likewise. |
| * auto-inc-dec.cc (attempt_change): Likewise. |
| * avoid-store-forwarding.cc (process_store_forwarding): Likewise. |
| * bb-reorder.cc (fix_crossing_unconditional_branches): Likewise. |
| * builtins.cc (expand_builtin_apply_args): Likewise. |
| (expand_builtin_return, expand_builtin_mathfn_ternary): Likewise. |
| (expand_builtin_mathfn_3, expand_builtin_int_roundingfn): Likewise. |
| (expand_builtin_int_roundingfn_2, expand_builtin_saveregs): Likewise. |
| (inline_string_cmp): Likewise. |
| * calls.cc (expand_call): Likewise. |
| * cfgexpand.cc (expand_asm_stmt, pass_expand::execute): Likewise. |
| * cfgloopanal.cc (init_set_costs): Likewise. |
| * cfgrtl.cc (insert_insn_on_edge, prepend_insn_to_edge): Likewise. |
| (rtl_lv_add_condition_to_bb): Likewise. |
| * config/aarch64/aarch64-speculation.cc |
| (aarch64_speculation_clobber_sp): Likewise. |
| (aarch64_speculation_establish_tracker): Likewise. |
| (aarch64_do_track_speculation): Likewise. |
| * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately) |
| (aarch64_expand_vector_init, aarch64_gen_ccmp_first): Likewise. |
| (aarch64_gen_ccmp_next, aarch64_mode_emit): Likewise. |
| (aarch64_md_asm_adjust): Likewise. |
| (aarch64_switch_pstate_sm_for_landing_pad): Likewise. |
| (aarch64_switch_pstate_sm_for_jump): Likewise. |
| (aarch64_switch_pstate_sm_for_call): Likewise. |
| * config/alpha/alpha.cc (alpha_legitimize_address_1): Likewise. |
| (alpha_emit_xfloating_libcall, alpha_gp_save_rtx): Likewise. |
| * config/arc/arc.cc (hwloop_optimize): Likewise. |
| * config/arm/aarch-common.cc (arm_md_asm_adjust): Likewise. |
| * config/arm/arm-builtins.cc: Likewise. |
| * config/arm/arm.cc (require_pic_register): Likewise. |
| (arm_call_tls_get_addr, arm_gen_load_multiple_1): Likewise. |
| (arm_gen_store_multiple_1, cmse_clear_registers): Likewise. |
| (cmse_nonsecure_call_inline_register_clear): Likewise. |
| (arm_attempt_dlstp_transform): Likewise. |
| * config/avr/avr-passes.cc (bbinfo_t::optimize_one_block): Likewise. |
| (avr_parallel_insn_from_insns): Likewise. |
| * config/avr/avr.cc (avr_prologue_setup_frame): Likewise. |
| (avr_expand_epilogue): Likewise. |
| * config/bfin/bfin.cc (hwloop_optimize): Likewise. |
| * config/c6x/c6x.cc (c6x_expand_compare): Likewise. |
| * config/cris/cris.cc (cris_split_movdx): Likewise. |
| * config/cris/cris.md: Likewise. |
| * config/csky/csky.cc (csky_call_tls_get_addr): Likewise. |
| * config/epiphany/resolve-sw-modes.cc |
| (pass_resolve_sw_modes::execute): Likewise. |
| * config/fr30/fr30.cc (fr30_move_double): Likewise. |
| * config/frv/frv.cc (frv_split_scc, frv_split_cond_move): Likewise. |
| (frv_split_minmax, frv_split_abs): Likewise. |
| * config/frv/frv.md: Likewise. |
| * config/gcn/gcn.cc (move_callee_saved_registers): Likewise. |
| (gcn_expand_prologue, gcn_restore_exec, gcn_md_reorg): Likewise. |
| * config/i386/i386-expand.cc |
| (ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Likewise. |
| (ix86_vector_duplicate_value, expand_vec_perm_interleave2): Likewise. |
| (expand_vec_perm_vperm2f128_vblend): Likewise. |
| (expand_vec_perm_2perm_interleave): Likewise. |
| (expand_vec_perm_2perm_pblendv): Likewise. |
| (expand_vec_perm2_vperm2f128_vblend, ix86_gen_ccmp_first): Likewise. |
| (ix86_gen_ccmp_next): Likewise. |
| * config/i386/i386-features.cc |
| (scalar_chain::make_vector_copies): Likewise. |
| (scalar_chain::convert_reg, scalar_chain::convert_op): Likewise. |
| (timode_scalar_chain::convert_insn): Likewise. |
| * config/i386/i386.cc (ix86_init_pic_reg, ix86_va_start): Likewise. |
| (ix86_get_drap_rtx, legitimize_tls_address): Likewise. |
| (ix86_md_asm_adjust): Likewise. |
| * config/ia64/ia64.cc (ia64_expand_tls_address): Likewise. |
| (ia64_expand_compare, spill_restore_mem): Likewise. |
| (expand_vec_perm_interleave_2): Likewise. |
| * config/loongarch/loongarch.cc |
| (loongarch_call_tls_get_addr): Likewise. |
| * config/m32r/m32r.cc (gen_split_move_double): Likewise. |
| * config/m32r/m32r.md: Likewise. |
| * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise. |
| (m68k_call_m68k_read_tp, m68k_sched_md_init_global): Likewise. |
| * config/m68k/m68k.md: Likewise. |
| * config/microblaze/microblaze.cc |
| (microblaze_call_tls_get_addr): Likewise. |
| * config/mips/mips.cc (mips_call_tls_get_addr): Likewise. |
| (mips_ls2_init_dfa_post_cycle_insn): Likewise. |
| (mips16_split_long_branches): Likewise. |
| * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Likewise. |
| (nvptx_gen_shared_bcast, nvptx_propagate): Likewise. |
| (workaround_uninit_method_1, workaround_uninit_method_2): Likewise. |
| (workaround_uninit_method_3): Likewise. |
| * config/or1k/or1k.cc (or1k_init_pic_reg): Likewise. |
| * config/pa/pa.cc (legitimize_tls_address): Likewise. |
| * config/pru/pru.cc (pru_expand_fp_compare, pru_reorg_loop): Likewise. |
| * config/riscv/riscv-shorten-memrefs.cc |
| (pass_shorten_memrefs::transform): Likewise. |
| * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Likewise. |
| * config/riscv/riscv.cc (riscv_call_tls_get_addr): Likewise. |
| (riscv_frm_emit_after_bb_end): Likewise. |
| * config/rl78/rl78.cc (rl78_emit_libcall): Likewise. |
| * config/rs6000/rs6000.cc (rs6000_debug_legitimize_address): Likewise. |
| * config/s390/s390.cc (legitimize_tls_address): Likewise. |
| (s390_two_part_insv, s390_load_got, s390_va_start): Likewise. |
| * config/sh/sh_treg_combine.cc |
| (sh_treg_combine::make_not_reg_insn): Likewise. |
| * config/sparc/sparc.cc (sparc_legitimize_tls_address): Likewise. |
| (sparc_output_mi_thunk, sparc_init_pic_reg): Likewise. |
| * config/stormy16/stormy16.cc (xstormy16_split_cbranch): Likewise. |
| * config/xtensa/xtensa.cc (xtensa_copy_incoming_a7): Likewise. |
| (xtensa_expand_block_set_libcall): Likewise. |
| (xtensa_expand_block_set_unrolled_loop): Likewise. |
| (xtensa_expand_block_set_small_loop, xtensa_call_tls_desc): Likewise. |
| * dse.cc (emit_inc_dec_insn_before, find_shift_sequence): Likewise. |
| (replace_read): Likewise. |
| * emit-rtl.cc (reorder_insns, gen_clobber, gen_use): Likewise. |
| * except.cc (dw2_build_landing_pads, sjlj_mark_call_sites): Likewise. |
| (sjlj_emit_function_enter, sjlj_emit_function_exit): Likewise. |
| (sjlj_emit_dispatch_table): Likewise. |
| * expmed.cc (expmed_mult_highpart_optab, expand_sdiv_pow2): Likewise. |
| * expr.cc (convert_mode_scalar, emit_move_multi_word): Likewise. |
| (gen_move_insn, expand_cond_expr_using_cmove): Likewise. |
| (expand_expr_divmod, expand_expr_real_2): Likewise. |
| (maybe_optimize_pow2p_mod_cmp, maybe_optimize_mod_cmp): Likewise. |
| * function.cc (emit_initial_value_sets): Likewise. |
| (instantiate_virtual_regs_in_insn, expand_function_end): Likewise. |
| (get_arg_pointer_save_area, make_split_prologue_seq): Likewise. |
| (make_prologue_seq, gen_call_used_regs_seq): Likewise. |
| (thread_prologue_and_epilogue_insns): Likewise. |
| (match_asm_constraints_1): Likewise. |
| * gcse.cc (prepare_copy_insn): Likewise. |
| * ifcvt.cc (noce_emit_store_flag, noce_emit_move_insn): Likewise. |
| (noce_emit_cmove): Likewise. |
| * init-regs.cc (initialize_uninitialized_regs): Likewise. |
| * internal-fn.cc (expand_POPCOUNT): Likewise. |
| * ira-emit.cc (emit_move_list): Likewise. |
| * ira.cc (ira): Likewise. |
| * loop-doloop.cc (doloop_modify): Likewise. |
| * loop-unroll.cc (compare_and_jump_seq): Likewise. |
| (unroll_loop_runtime_iterations, insert_base_initialization): Likewise. |
| (split_iv, insert_var_expansion_initialization): Likewise. |
| (combine_var_copies_in_loop_exit): Likewise. |
| * lower-subreg.cc (resolve_simple_move,resolve_shift_zext): Likewise. |
| * lra-constraints.cc (match_reload, check_and_process_move): Likewise. |
| (process_addr_reg, insert_move_for_subreg): Likewise. |
| (process_address_1, curr_insn_transform): Likewise. |
| (inherit_reload_reg, process_invariant_for_inheritance): Likewise. |
| (inherit_in_ebb, remove_inheritance_pseudos): Likewise. |
| * lra-remat.cc (do_remat): Likewise. |
| * mode-switching.cc (commit_mode_sets): Likewise. |
| (optimize_mode_switching): Likewise. |
| * optabs.cc (expand_binop, expand_twoval_binop_libfunc): Likewise. |
| (expand_clrsb_using_clz, expand_doubleword_clz_ctz_ffs): Likewise. |
| (expand_doubleword_popcount, expand_ctz, expand_ffs): Likewise. |
| (expand_absneg_bit, expand_unop, expand_copysign_bit): Likewise. |
| (prepare_float_lib_cmp, expand_float, expand_fix): Likewise. |
| (expand_fixed_convert, gen_cond_trap): Likewise. |
| (expand_atomic_fetch_op): Likewise. |
| * ree.cc (combine_reaching_defs): Likewise. |
| * reg-stack.cc (compensate_edge): Likewise. |
| * reload1.cc (emit_input_reload_insns): Likewise. |
| * sel-sched-ir.cc (setup_nop_and_exit_insns): Likewise. |
| * shrink-wrap.cc (emit_common_heads_for_components): Likewise. |
| (emit_common_tails_for_components): Likewise. |
| (insert_prologue_epilogue_for_components): Likewise. |
| * tree-outof-ssa.cc (emit_partition_copy): Likewise. |
| (insert_value_copy_on_edge): Likewise. |
| * tree-ssa-loop-ivopts.cc (computation_cost): Likewise. |
| |
| 2025-05-16 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * rtl.h (end_sequence): Return the sequence. |
| * emit-rtl.cc (end_sequence): Likewise. |
| |
| 2025-05-16 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*<optab>_vx_<mode>): Add new |
| pattern to convert vec_duplicate + vsub.vv to vsub.vx. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Add minus as plus op. |
| * config/riscv/vector-iterators.md: Add minus to iterator |
| any_int_binop_no_shift_vx. |
| |
| 2025-05-15 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/116546 |
| * range-op.cc (operator_bitwise_and::op1_range): Utilize bitmask |
| from the LHS to improve op1's bitmask. |
| |
| 2025-05-15 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/116546 |
| * value-range.cc (irange::intersect_bitmask): Allow unknown |
| bitmasks to be processed. |
| |
| 2025-05-15 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/116546 |
| * value-range.cc (irange_bitmask::irange_bitmask): Include |
| leading ones in the bitmask. |
| |
| 2025-05-15 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.cc (irange_bitmask::irange_bitmask): Rename from |
| get_bitmask_from_range and tweak. |
| (prange::set): Use new constructor. |
| (prange::intersect): Use new constructor. |
| (irange::get_bitmask): Likewise. |
| * value-range.h (irange_bitmask): New constructor prototype. |
| |
| 2025-05-15 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/120277 |
| * range-op-ptr.cc (operator_cast::fold_range): Check if the cast |
| if UNDEFINED before setting bounds. |
| |
| 2025-05-15 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/120223 |
| * config/riscv/riscv.cc (synthesize_ior_xor): XTHEADBS does not have |
| single bit manipulations. |
| |
| 2025-05-15 Alexander Monakov <amonakov@ispras.ru> |
| |
| * tree-cfg.cc (verify_gimple_assign_unary): Accept only |
| COMPLEX_TYPE for CONJ_EXPR. |
| |
| 2025-05-15 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * fold-const.cc (tree_swap_operands_p): Put ADDR_EXPR last |
| instead of just is_gimple_invariant_address ones. |
| * match.pd (`a ptr+ b !=\== ADDR`, `ADDR !=/== ssa_name`): |
| Move the ADDR to the last operand. Update comment. |
| |
| 2025-05-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.cc (vect_transform_loops): When diagnosing |
| a vectorized loop indicate whether we vectorized an epilogue, |
| whether we used masked vectors and what unroll factor was |
| used. |
| |
| 2025-05-15 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_vector_costs::finish_cost): |
| Do not suggest a first epilogue mode for AVX512 sized |
| main loops with X86_TUNE_AVX512_TWO_EPILOGUES as that |
| interferes with using a masked epilogue. |
| |
| 2025-05-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (record_stmt_cost): Remove mixed |
| stmt_vec_info/SLP node inline overload. |
| * tree-vect-stmts.cc (vectorizable_store): For costing |
| vector stmts only pass SLP node to record_stmt_cost. |
| (vectorizable_load): Likewise. |
| |
| 2025-05-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vect_get_store_cost): Compute vectype based |
| on whether we got SLP node or stmt_vec_info and use the full |
| record_stmt_cost API. |
| (vect_get_load_cost): Likewise. |
| |
| 2025-05-14 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc |
| (riscv_subset_list::riscv_subset_list): Init m_allow_adding_dup. |
| |
| 2025-05-14 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def: New extension defs. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2025-05-14 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/t-riscv: Drop duplicate build rule for |
| riscv-ext.opt. |
| |
| 2025-05-14 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-ext.opt.urls: Regenerate. |
| |
| 2025-05-14 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-cfgcleanup.cc (canonicalize_bool_cond): New function. |
| (cleanup_control_expr_graph): Call canonicalize_bool_cond for GIMPLE_COND. |
| * tree-cfgcleanup.h (canonicalize_bool_cond): New declaration. |
| * tree-ssa-forwprop.cc (forward_propagate_into_gimple_cond): |
| Call canonicalize_bool_cond. |
| |
| 2025-05-14 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * gimple.h (gimple_cond_set_code): Add assert of the code |
| being a comparison. |
| |
| 2025-05-14 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (forward_propagate_into_gimple_cond): Assert |
| that gimple_cond_code is always a comparison. |
| |
| 2025-05-14 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * gimple-fold.cc (replace_stmt_with_simplification): Check cfun before |
| accessing cfun. |
| |
| 2025-05-14 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (pass_forwprop::execute): Move marking of to_purge bb |
| and marking of fixup statements to after the local optimizations. |
| |
| 2025-05-14 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-forwprop.cc (pass_forwprop::execute): Use `|=` for |
| changed on the local folding. |
| |
| 2025-05-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (record_stmt_cost): Add overload with |
| only SLP node and no vector type. |
| * tree-vect-stmts.cc (record_stmt_cost): Use |
| SLP_TREE_REPRESENTATIVE for stmt_vec_info. |
| (vect_model_simple_cost): Do not get stmt_vec_info argument |
| and adjust. |
| (vectorizable_call): Adjust. |
| (vectorizable_simd_clone_call): Likewise. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_condition): Likewise. |
| (vectorizable_comparison_1): Likewise. |
| * tree-vect-slp.cc (vect_prologue_cost_for_slp): Use |
| full-blown record_stmt_cost. |
| |
| 2025-05-14 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/120215 |
| * config/i386/i386-features.cc |
| (scalar_chain::mark_dual_mode_def): Weight |
| cost of integer<->sse move with bb frequency when it's |
| optimized_for_speed_p. |
| (general_scalar_chain::compute_convert_gain): Ditto, and |
| adjust function prototype to return true/false when cost model |
| is profitable or not. |
| (timode_scalar_chain::compute_convert_gain): Ditto. |
| (convert_scalars_to_vector): Adjust after the upper two |
| function prototype are changed. |
| * config/i386/i386-features.h (class scalar_chain): Change |
| n_integer_to_sse/n_sse_to_integer to cost_sse_integer, and add |
| weighted_cost_sse_integer. |
| (class general_scalar_chain): Adjust prototype to return bool |
| intead of int. |
| (class timode_scalar_chain): Ditto. |
| |
| 2025-05-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/111873 |
| * tree-sra.cc (sra_modify_expr): When processing a load which has |
| a type-incompatible replacement, do not store the contents of the |
| replacement into the original aggregate when that aggregate is |
| const. |
| |
| 2025-05-14 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/vector.md: Fix tf_to_fprx2 by using vlr instead of |
| ldr. |
| |
| 2025-05-14 liuhongt <hongtao.liu@intel.com> |
| |
| PR tree-optimization/103771 |
| * match.pd (cond_expr_convert_p): Extend the match to handle |
| scalar floating point type. |
| * tree-vect-patterns.cc |
| (vect_recog_cond_expr_convert_pattern): Handle floating point |
| type. |
| |
| 2025-05-13 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/119903 |
| * gimple-fold.cc (replace_stmt_with_simplification): Reject for |
| noncall exceptions replacing comparison with itself. |
| |
| 2025-05-13 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/118868 |
| * tree-cfg.cc (verify_gimple_assign_unary): Allow pointers |
| but disallow aggregate types for PAREN_EXPR. |
| |
| 2025-05-13 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * cfgexpand.cc (vars_ssa_cache::operator()): Update the cache if the use is already |
| has a cache. |
| |
| 2025-05-13 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * cfgexpand.cc (vars_ssa_cache::operator()): Reverse the order of the going |
| through the update list. |
| |
| 2025-05-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_nonlinear_induction): |
| Remove non-SLP path, use SLP_TREE_VECTYPE. |
| (vectorizable_induction): Likewise. Drop ncopies variable |
| which is always 1. |
| |
| 2025-05-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_extra_ext_flag_table_t): |
| New. |
| (riscv_ext_flag_table): Rename to ... |
| (riscv_extra_ext_flag_table): this, and drop most of definitions |
| that can obtained from the flags field of the riscv_ext_info_t |
| structures. |
| (apply_extra_extension_flags): Use riscv_ext_info_t. |
| (riscv_ext_is_subset): Ditto. |
| |
| 2025-05-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_ext_version_table): |
| Remove. |
| (standard_extensions_p): Use riscv_ext_info_t. |
| (get_default_version): Use riscv_ext_info_t. |
| (riscv_arch_help): Ditto. |
| |
| 2025-05-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc |
| (riscv_implied_info::riscv_implied_info_t): Remove unused |
| variant. |
| (struct riscv_implied_info_t): Remove unsued field. |
| (riscv_implied_info::match): Remove unused variant, and adjust |
| the logic. |
| (get_riscv_ext_info): New. |
| (riscv_implied_info): Remove. |
| (riscv_ext_info_t::apply_implied_ext): New. |
| (riscv_combine_info). Remove. |
| (riscv_subset_list::handle_implied_ext): Use riscv_ext_info_t |
| rather than riscv_implied_info. |
| (riscv_subset_list::check_implied_ext): Ditto. |
| (riscv_subset_list::handle_combine_ext): Use riscv_ext_info_t |
| rather than riscv_combine_info. |
| (riscv_minimal_hwprobe_feature_bits): Use riscv_ext_info_t |
| rather than riscv_implied_info. |
| |
| 2025-05-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_ext_info_t): New |
| struct. |
| (opt_var_ref_t): Adjust order. |
| (cl_opt_var_ref_t): Ditto. |
| (riscv_ext_flag_table_t): Adjust order, and add a new construct |
| that not hold the extension name. |
| (riscv_version_t): New struct. |
| (riscv_implied_info_t): Adjust order, and add a new construct that not |
| hold the extension name. |
| (apply_extra_extension_flags): New function. |
| (riscv_ext_infos): New. |
| (riscv_implied_info): Adjust. |
| * config/riscv/riscv-opts.h (EXT_FLAG_MACRO): New macro. |
| (BITMASK_NOT_YET_ALLOCATED): New macro. |
| |
| 2025-05-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_can_inline_p): Drop |
| extension flags check from `target_flags`. |
| * config/riscv/riscv-subset.h (riscv_x_target_flags_isa_mask): |
| Remove. |
| * config/riscv/riscv.cc (riscv_x_target_flags_isa_mask): Remove. |
| |
| 2025-05-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| * doc/invoke.texi: Replace hand‑written extension table with |
| `@include riscv-ext.texi` to pull in auto‑generated entries. |
| * doc/riscv-ext.texi: New generated definition file |
| containing formatted documentation entries for each extension. |
| * Makefile.in: Add riscv-ext.texi to the list of files to be |
| processed by the Texinfo generator. |
| * config/riscv/gen-riscv-ext-texi.cc: New. |
| * config/riscv/t-riscv: Add rule for generating riscv-ext.texi. |
| |
| 2025-05-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/gen-riscv-ext-opt.cc: New. |
| * config/riscv/riscv.opt: Drop manual entries for target |
| options, and include riscv-ext.opt. |
| * config/riscv/riscv-ext.opt: New. |
| * config/riscv/riscv-ext.opt.urls: New. |
| * config.gcc: Add riscv-ext.opt to the list of target options files. |
| * common/config/riscv/riscv-common.cc (riscv_ext_flag_table): Adjsut target |
| option variable entry. |
| (riscv_set_arch_by_subset_list): Adjust target option variable. |
| * config/riscv/riscv-c.cc (riscv_ext_flag_table): Adjust target |
| option variable entry. |
| * config/riscv/riscv-vector-builtins.cc (pragma_intrinsic_flags): |
| Adjust variable name. |
| (riscv_pragma_intrinsic_flags_pollute): Adjust variable name. |
| (riscv_pragma_intrinsic_flags_restore): Ditto. |
| * config/riscv/t-riscv: Add the rule for generating |
| riscv-ext.opt. |
| * config/riscv/riscv-opts.h (TARGET_MIN_VLEN): Update. |
| (TARGET_MIN_VLEN_OPTS): Update. |
| |
| 2025-05-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-ext.def: New file; define extension metadata table. |
| * config/riscv/riscv-ext-corev.def: New. |
| * config/riscv/riscv-ext-sifive.def: New. |
| * config/riscv/riscv-ext-thead.def: New. |
| * config/riscv/riscv-ext-ventana.def: New. |
| |
| 2025-05-13 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| * diagnostic-format-html.cc: Include "diagnostic-format-text.h", |
| "pretty-print-urlifier.h" and "edit-context.h". |
| (html_builder::html_builder): Fix indentation in decl. |
| (html_builder::make_element_for_diagnostic): Split out metadata |
| code into make_element_for_metadata. Call |
| make_element_for_source, make_element_for_path, and |
| make_element_for_patch. |
| (html_builder::make_element_for_source): New. |
| (html_builder::make_element_for_path): New. |
| (html_builder::make_element_for_patch): New. |
| (html_builder::make_metadata_element): New. |
| (html_builder::make_element_for_metadata): New. |
| (html_output_format::get_builder): New. |
| (selftest::test_html_diagnostic_context::get_builder): New. |
| (selftest::test_simple_log): Update test to print a quoted string, |
| and verify that it uses a "gcc-quoted-text" span. |
| (selftest::test_metadata): New. |
| (selftest::diagnostic_format_html_cc_tests): Call it. |
| |
| 2025-05-13 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-ssanames.cc (set_bitmask): Use int_range_max for temps. |
| * value-range.cc (irange::set_range_from_bitmask): Handle all |
| trailing zero values. |
| |
| 2025-05-12 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Add form 7 matching pattern for unsigned integer |
| SAT_ADD. |
| |
| 2025-05-12 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * config/aarch64/aarch64.md (cmov<mode>6): Remove. |
| |
| 2025-05-12 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/120230 |
| * optabs.cc (can_compare_p): Remove support for ccp_cmov. |
| * optabs.def (cmov_optab): Remove. |
| * optabs.h (can_compare_purpose): Remove ccp_cmov. |
| |
| 2025-05-12 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/120231 |
| * range-op-float.cc (operator_cast::fold_range): New variants. |
| (operator_cast::op1_range): Likewise. |
| * range-op-mixed.h (operator_cast::fold_range): Likewise. |
| (operator_cast::op1_range): Likewise |
| * range-op.cc (range_op_handler::fold_range): Add RO_FIF dispatch. |
| (range_op_handler::op1_range): Add RO_IFF and RO_FII patterns. |
| (range_operator::fold_range): Provide new variant default. |
| (range_operator::op1_range): Likewise. |
| * range-op.h (range_operator): Add new variant methods. |
| |
| 2025-05-12 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/120188 |
| * doc/gm2.texi (Semantic checking): Add -fm2-plugin command line option. |
| |
| 2025-05-12 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx-sm.def: Add '61'. |
| * config/nvptx/nvptx-gen.h: Regenerate. |
| * config/nvptx/nvptx-gen.opt: Likewise. |
| * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust. |
| * config/nvptx/nvptx.opt (-march-map=sm_61, -march-map=sm_62): |
| Likewise. |
| * config.gcc: Likewise. |
| * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_61'. |
| * config/nvptx/gen-multilib-matches-tests: Extend. |
| |
| 2025-05-12 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx-opts.h (enum ptx_version): Add |
| 'PTX_VERSION_5_0'. |
| * config/nvptx/nvptx.cc (ptx_version_to_string) |
| (ptx_version_to_number): Adjust. |
| * config/nvptx/nvptx.h (TARGET_PTX_5_0): New. |
| * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue' |
| '5.0' for 'PTX_VERSION_5_0'. |
| * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=5.0'. |
| |
| 2025-05-12 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc |
| (riscv_subset_list::check_conflict_ext): New extension. |
| * config/riscv/riscv.opt: Ditto. |
| |
| 2025-05-12 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc |
| (riscv_subset_list::check_conflict_ext): New extension. |
| * config/riscv/riscv.opt: Ditto. |
| |
| 2025-05-12 Richard Biener <rguenther@suse.de> |
| |
| * lto-streamer-out.cc (hash_tree): Hash TYPE_MODE_RAW. |
| When offloading hash modes as VOIDmode for aggregates |
| and vectors. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * doc/extend.texi: Remove the iwmmxt intrinsics. |
| * doc/md.texi: Remove the iwmmxt-related constraints. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/aout.h (REGISTER_NAMES): Remove iwmmxt registers. |
| * config/arm/arm.h (FIRST_IWMMXT_REGNUM): Delete. |
| (LAST_IWMMXT_REGNUM): Delete. |
| (FIRST_IWMMXT_GR_REGNUM): Delete. |
| (LAST_IWMMXT_GR_REGNUM): Delete. |
| (IS_IWMMXT_REGNUM): Delete. |
| (IS_IWMMXT_GR_REGNUM): Delete. |
| (FRAME_POINTER_REGNUM): Define relative to CC_REGNUM. |
| (ARG_POINTER_REGNUM): Define relative to FRAME_POINTER_REGNUM. |
| (FIRST_PSEUDO_REGISTER): Adjust. |
| (WREG): Delete. |
| (WGREG): Delete. |
| (REG_ALLOC_ORDER): Remove iWMMX registers. |
| (enum reg_class): Remove iWMMX register classes. |
| (REG_CLASS_NAMES): Likewise. |
| (REG_CLASS_CONTENTS): Remove iWMMX registers. |
| * config/arm/arm.md (CC_REGNUM): Adjust value. |
| (VFPCC_RENGUM): Likewise. |
| (APSRQ_REGNUM): Likewise. |
| (APSRGE_REGNUM): Likewise. |
| (VPR_REGNUM): Likewise. |
| (RA_AUTH_CODE): Likewise. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-cpus.in (feature iwmmxt, feature iwmmxt2): Delete. |
| * config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Delete. |
| (arm_output_iwmmxt_tinsr): Delete. |
| (arm_arch_iwmmxt): Delete. |
| (arm_arch_iwmmxt2): Delete. |
| * config/arm/arm.h (TARGET_IWMMXT): Delete. |
| (TARGET_IWMMXT2): Delete. |
| (TARGET_REALLY_IWMMXT): Delete. |
| (TARGET_REALLY_IWMMXT2): Delete. |
| (VALID_IWMMXT_REG_MODE): Delete. |
| (ARM_HAVE_V8QI_ARITH): Remove iWMMXT. |
| (ARM_HAVE_V4HI_ARITH): Likewise. |
| (ARM_HAVE_V2SI_ARITH): Likewise. |
| (ARM_HAVE_V8QI_LDST): Likewise. |
| (ARM_HAVE_V4HI_LDST): Likewise. |
| (ARM_HAVE_V2SI_LDST): Likewise. |
| (SECONDARY_OUTPUT_RELOAD_CLASS): Remove iWMMXT cases. |
| (SECONDARY_INPUT_RELOAD_CLASS): Likewise. |
| * config/arm/arm.cc (arm_arch_iwmmxt): Delete. |
| (arm_arch_iwmmxt2): Delete. |
| (arm_option_reconfigure_globals): Don't initialize them. |
| (arm_register_move_cost): Remove costs for iwmmxt. |
| (struct minipool_node): Update comment. |
| (output_move_double): Likewise |
| (output_return_instruction): Likewise. |
| (arm_print_operand, cases 'U' and 'w'): Report an error if |
| used. |
| (arm_regno_class): Remove iWMMXT cases. |
| (arm_debugger_regno): Remove iWMMXT cases. |
| (arm_output_iwmmxt_shift_immediate): Delete. |
| (arm_output_iwmmxt_tinsr): Delete. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-c.cc (arm_cpu_builtins): Remove predefines |
| for __IWWMXT__, __IWMMXT2__ and __ARM_WMMX. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/iterators.md (VMMX, VMMX2): Remove mode iterators. |
| (MMX_char): Remove mode iterator attribute. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.md (core_cycles): Remove iwmmxt attributes. |
| * config/arm/types.md (autodetect_type): Likewise. |
| * config/arm/marvell-f-iwmmxt.md: Removed. |
| * config/arm/t-arm: Remove marvell-f-iwmmxt.md |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.cc (arm_option_check_internal): Remove |
| IWMMXT check. |
| (arm_options_perform_arch_sanity_checks): Likewise. |
| (use_return_insn): Likewise. |
| (arm_init_cumulative_args): Likewise. |
| (arm_legitimate_index_p): Likewise. |
| (thumb2_legitimate_index_p): Likewise. |
| (arm_compute_save_core_reg_mask): Likewise. |
| (output_return_instruction): Likewise. |
| (arm_compute_frame_layout): Likewise. |
| (arm_save_coproc_regs): Likewise. |
| (arm_hard_regno_mode_ok): Likewise. |
| (arm_expand_epilogue_apcs_frame): Likewise. |
| (arm_expand_epilogue): Likewise. |
| (arm_vector_mode_supported_p): Likewise. |
| (arm_preferred_simd_mode): Likewise. |
| (arm_conditional_register_usage): Likewise. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config.gcc (arm, --with-abi): Remove iwmmxt abi option. |
| * config/arm/arm.opt (enum ARM_ABI_IWMMXT): Remove. |
| * config/arm/arm.h (TARGET_IWMMXT_ABI): Delete. |
| (enum arm_pcs): Remove ARM_PCS_AAPCS_IWMMXT. |
| (FUNCTION_ARG_REGNO_P): Remove IWMMXT ABI support. |
| (CUMULATIVE_ARGS): Remove iwmmxt_nregs. |
| * config/arm/arm.cc (arm_options_perform_arch_sanity_checks): |
| Remove IWMMXT ABI checks. |
| (arm_libcall_value_1): Likewise. |
| (arm_function_value_regno_p): Likewise. |
| (arm_apply_result_size): Remove adjustment for IWMMXT ABI. |
| (arm_function_arg): Remove IWMMXT ABI support. |
| (arm_arg_partial_bytes): Likewise. |
| (arm_function_arg_advance): Likewise. |
| (arm_init_cumulative_args): Don't initialize iwmmxt_nregs. |
| * doc/invoke.texi (arm -mabi): Remove mention of the iwmmxt |
| ABI option. |
| * config/arm/arm-opts.h (enum arm_abi_type): Remove ARM_ABI_IWMMXT. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.md(attr arch): Remove iwmmxt and iwmmxt2. |
| Remove checks based on TARGET_REALLY_IWMMXT2 from all split |
| patterns. |
| (arm_movdi): Likewise. |
| (*arm_movt): Likewise. |
| (arch_enabled): Remove test for iwmmxt2. |
| * config/arm/constraints.md (y, z): Remove register constraints. |
| (Uy): Remove memory constraint. |
| * config/arm/thumb2.md (thumb2_pop_single): Remove check for |
| IWMMXT. |
| * config/arm/vec-common.md (mov<mode>): Remove check for IWMMXT. |
| (mul<mode>3): Likewise. |
| (xor<mode>3): Likewise. |
| (<absneg_str><mode>2): Likewise. |
| (@movmisalign<mode>): Likewise. |
| (@mve_<mve_insn>q_<supf><mode>): Likewise. |
| (vashl<mode>3): Likewise. |
| (vashr<mode>3): Likewise. |
| (vlshr<mode>3): Likewise. |
| (uavg<mode>3_ceil): Likewise. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.md: Don't include iwmmxt.md. |
| * config/arm/t-arm (MD_INCLUDES): Remove iwmmxt*.md. |
| * config/arm/iwmmxt.md: Removed. |
| * config/arm/iwmmxt2.md: Removed. |
| * config/arm/unspecs.md: Remove comment referring to |
| iwmmxt2.md. |
| (enum unspec): Remove iWMMXt unspec values. |
| (enum unspecv): Likewise. |
| * config/arm/predicates.md (imm_or_reg_operand): Delete. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-builtins.cc (enum arm_builtins): Delete iWMMX |
| builtin values. |
| (bdesc_2arg): Likewise. |
| (bdesc_1arg): Likewise. |
| (arm_init_iwmmxt_builtins): Delete. |
| (arm_init_builtins): Don't call arm_init_iwmmxt_builtins. |
| (safe_vector_operand): Use __builtin_unreachable instead of emitting |
| an iwmmxt builtin. |
| (arm_general_expand_builtin): Remove iWMMX builtins support. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-cpus.in (arch iwmmxt): treat in the same |
| way as we would treat XScale. |
| (arch iwmmxt2): Likewise. |
| (cpu xscale): Add aliases for iwmmxt and iwmmxt2. |
| (cpu iwmmxt): Delete. |
| (cpu iwmmxt2): Delete. |
| * config/arm/arm-generic.md (load_ldsched_xscale): Remove references |
| to iwmmxt. |
| (load_ldsched): Likewise. |
| * config/arm/arm-tables.opt: Regenerated. |
| * config/arm/arm-tune.md: Regenerated. |
| * doc/sourcebuild.texi (arm_iwmmxt_ok): Delete. |
| |
| 2025-05-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add parentheis |
| and re-indent. |
| (SECONDARY_INPUT_RELOAD_CLASS): Likewise. |
| |
| 2025-05-12 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120228 |
| * config/i386/i386-features.cc (ix86_place_single_vector_set): |
| Remove df_insn_rescan after emit_insn_*. |
| (remove_partial_avx_dependency): Likewise. |
| (replace_vector_const): Likewise. |
| |
| 2025-05-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.cc (ix86_widen_mult_cost): Use sse_op to cost |
| SSE integer addition. |
| (ix86_multiplication_cost): Use COSTS_N_INSNS (...)/2 to cost sse |
| loads. |
| (ix86_shift_rotate_cost): Likewise. |
| (ix86_vector_costs::add_stmt_cost): Likewise. |
| |
| 2025-05-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_register_move_cost): |
| Add appropriate move costs between AR_REGS and FP_REGS. |
| |
| 2025-05-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120211 |
| * tree-vect-stmts.cc (vect_stmt_relevant_p): Only add PHIs |
| from the loop header to LOOP_VINFO_EARLY_BREAKS_LIVE_IVS. |
| |
| 2025-05-11 Jiawei <jiawei@iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc: New profile. |
| |
| 2025-05-11 Jiawei <jiawei@iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc (struct riscv_profiles): New struct. |
| (riscv_subset_list::parse_profiles): New parser. |
| (riscv_subset_list::parse_base_ext): Ditto. |
| * config/riscv/riscv-subset.h: New def. |
| * doc/invoke.texi: New option descriptions. |
| |
| 2025-05-10 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/92080 |
| PR target/117839 |
| * config/i386/i386-features.cc (replace_vector_const): Change |
| dest to src. |
| |
| 2025-05-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386-features.cc |
| (general_scalar_chain::vector_const_cost): Add BB parameter; handle |
| size costs; use COSTS_N_INSNS to compute move costs. |
| (general_scalar_chain::compute_convert_gain): Use optimize_bb_for_size |
| instead of optimize_insn_for size; use COSTS_N_INSNS to compute move costs; |
| update calls of general_scalar_chain::vector_const_cost; use |
| ix86_cost->integer_to_sse. |
| (timode_immed_const_gain): Add bb parameter; use |
| optimize_bb_for_size_p. |
| (timode_scalar_chain::compute_convert_gain): Use optimize_bb_for_size_p. |
| * config/i386/i386-features.h (class general_scalar_chain): Update |
| prototype of vector_const_cost. |
| * config/i386/i386.h (struct processor_costs): Add integer_to_sse. |
| * config/i386/x86-tune-costs.h (struct processor_costs): Copy |
| sse_to_integer to integer_to_sse everywhere. |
| |
| 2025-05-10 Filip Kastl <fkastl@suse.cz> |
| |
| PR tree-optimization/120080 |
| * tree-switch-conversion.cc (bit_test_cluster::find_bit_tests): |
| Replace assert with return. |
| |
| 2025-05-10 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| * config/riscv/iterators.md (OPTAB): New iterator. |
| * config/riscv/predicates.md (arith_or_zbs_operand): Remove. |
| (reg_or_const_int_operand): New predicate. |
| * config/riscv/riscv-protos.h (synthesize_ior_xor): Prototype. |
| * config/riscv/riscv.cc (synthesize_ior_xor): New function. |
| * config/riscv/riscv.md (ior/xor expander): Use synthesize_ior_xor. |
| |
| 2025-05-10 LIU Hao <lh_mouse@126.com> |
| |
| PR target/111107 |
| * config/i386/cygming.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Override |
| definition from i386.h. |
| (STACK_REALIGN_DEFAULT): Undefine, as it no longer has an effect. |
| * config/i386/i386.cc (ix86_update_stack_boundary): Force minimum |
| 128-bit alignment if `force_align_arg_pointer`. |
| |
| 2025-05-10 Anton Blanchard <antonb@tenstorrent.com> |
| |
| * config/riscv/bitmanip.md (crc_rev<ANYI1:mode><ANYI:mode>4): Check |
| TARGET_ZVBC. |
| * config/riscv/riscv.cc (expand_crc_using_clmul): Emit code using |
| vclmul if TARGET_ZVBC. |
| |
| 2025-05-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * vr-values.cc (simplify_using_ranges::simplify) <BIT_AND_EXPR>: |
| Do not call simplify_bit_ops_using_ranges for boolean types whose |
| precision is not 1. |
| |
| 2025-05-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/114166 |
| * tree-vect-stmts.cc (vectorizable_operation): Lower also |
| bitwise operations on word-mode vectors. |
| |
| 2025-05-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_operation): Remve non-SLP |
| path. |
| |
| 2025-05-09 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * gimple.h (gimple_cond_true_canonical_p): New function. |
| (gimple_cond_false_canonical_p): New function. |
| * gimple-fold.cc (replace_stmt_with_simplification): Return |
| false if replacing the operands of GIMPLE_COND with an INTEGER_CST |
| and already in canonical form. |
| |
| 2025-05-09 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/120182 |
| * dse.cc (canon_address): Constant addresses have no |
| separate store group. |
| |
| 2025-05-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119960 |
| * tree-vect-slp.cc (vect_slp_can_convert_to_external): |
| Handle cases where defs from multiple BBs are ordered |
| by their dominance relation. |
| |
| 2025-05-09 Jørgen Kvalsvik <j@lambda.is> |
| |
| PR gcov-profile/120086 |
| * gcov.cc (print_prime_path_lines): Use unsigned, format with |
| %u. |
| (print_prime_path_source): Likewise. |
| (output_path_coverage): Format with HOST_SIZE_T_PRINT_UNSIGNED, |
| use unsigned for pathno. |
| |
| 2025-05-09 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| * config/aarch64/aarch64-sve.md (*aarch64_sve_ptrue<mode>_ldr_str): |
| Add define_insn_and_split to fold predicated SVE loads/stores with |
| ptrue predicates to unpredicated instructions. |
| |
| 2025-05-09 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| * Makefile.in (OBJS-libcommon): Add diagnostic-format-html.o. |
| * diagnostic-format-html.cc: Move here from |
| testsuite/gcc.dg/plugin/diagnostic_plugin_xhtml_format.cc. |
| Simplify includes. Rename "xhtml" to "html" throughout. |
| (write_escaped_text): Drop. |
| (class xhtml_stream_output_format): Drop. |
| (class html_file_output_format): Reimplement using |
| diagnostic_output_file. |
| (diagnostic_output_format_init_xhtml): Drop. |
| (diagnostic_output_format_init_xhtml_stderr): Drop. |
| (diagnostic_output_format_init_xhtml_file): Drop. |
| (diagnostic_output_format_open_html_file): New. |
| (make_html_sink): New. |
| (xhtml_format_selftests): Convert to... |
| (diagnostic_format_html_cc_tests): ...this. |
| (plugin_is_GPL_compatible): Drop. |
| (plugin_init): Drop. |
| * diagnostic-format-html.h: New file. |
| * doc/invoke.texi (-fdiagnostics-add-output=): Add |
| "experimental-html" scheme. |
| * opts-diagnostic.cc: Include "diagnostic-format-html.h". |
| (class html_scheme_handler): New. |
| (output_factory::output_factory): Add html_scheme_handler. |
| (html_scheme_handler::make_sink): New. |
| * selftest-run-tests.cc (selftest::run_tests): Call the new |
| selftests. |
| * selftest.h (selftest::diagnostic_format_html_cc_tests): New |
| decl. |
| |
| 2025-05-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * gimple-fold.cc (replace_stmt_with_simplification): Return false |
| if replacing `bool_var != 0` with `bool_var` in GIMPLE_COND. |
| |
| 2025-05-08 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * tree-vect-loop.cc (get_initial_def_for_reduction): Remove. |
| (vect-create_epilog_for_reduction): Remove non-SLP path. |
| (vectorize_fold_left_reduction): Likewise. |
| (vectorizable_lane_reducing): Likewise. |
| (vectorizable_reduction): Likewise. |
| (vect_transform_reduction): Likewise. |
| (vect_transform_cycle_phi): Likewise. |
| (vectorizable_lc_phi): Remove non-SLP PATH and split into... |
| (vect_transform_lc_phi): ... this. |
| (update_epilogue_loop_vinfo): Update comment. |
| * tree-vect-stmts.cc (vect_analyze_stmt): Update call to |
| vectorizable_lc_phi. |
| (vect_transform_stmt): Update calls to vect_transform_reduction and |
| vect_transform_cycle_phi. Rename call from vectorizable_lc_phi to |
| vect_transform_lc_phi. |
| * tree-vectorizer.h (vect_transform_reduction): Update declaration. |
| (vect_transform_cycle_phi): Likewise. |
| (vectorizable_lc_phi): Likewise. |
| (vect_transform_lc_phi): New. |
| |
| 2025-05-08 Richard Earnshaw <rearnsha@arm.com> |
| |
| * gensupport.cc (conlist::conlist): Pass a location to the constructor. |
| Only allow skipping of non-alpha-numeric characters when parsing a |
| number and only allow '=', '+' or '%'. Add some error checking when |
| parsing an operand number. |
| (parse_section_layout): Pass the location to the conlist constructor. |
| (parse_section): Allow an optional list of forbidden characters. |
| If specified, reject strings containing them. |
| (convert_syntax): Reject '=', '+' or '%' in an alternative. |
| |
| 2025-05-08 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@aarch64_pred_<optab><mode>): Move |
| commutative marker to the cons specification. |
| (add<mode>3): Likewise. |
| (@aarch64_pred_<su>abd<mode>): Likewise. |
| (@aarch64_pred_<optab><mode>): Likewise. |
| (*cond_<optab><mode>_z): Likewise. |
| (<optab><mode>3): Likewise. |
| (@aarch64_pred_<optab><mode>): Likewise. |
| (*aarch64_pred_abd<mode>_relaxed): Likewise. |
| (*aarch64_pred_abd<mode>_strict): Likewise. |
| (@aarch64_pred_<optab><mode>): Likewise. |
| (@aarch64_pred_<optab><mode>): Likewise. |
| (@aarch64_pred_fma<mode>): Likewise. |
| (@aarch64_pred_fnma<mode>): Likewise. |
| (@aarch64_pred_<optab><mode>): Likewise. |
| * config/aarch64/aarch64-sve2.md (@aarch64_sve_<su>clamp<mode>): Move |
| commutative marker to the cons specification. |
| (*aarch64_sve_<su>clamp<mode>_x): Likewise. |
| (@aarch64_sve_fclamp<mode>): Likewise. |
| (*aarch64_sve_fclamp<mode>_x): Likewise. |
| (*aarch64_sve2_nor<mode>): Likewise. |
| (*aarch64_sve2_nand<mode>): Likewise. |
| (*aarch64_pred_faminmax_fused): Likewise. |
| * config/aarch64/aarch64.md (*loadwb_pre_pair_<ldst_sz>): Move the |
| early-clobber marker to the relevant alternative. |
| (*storewb_pre_pair_<ldst_sz>): Likewise. |
| (*add<mode>3_aarch64): Move commutative marker to the cons |
| specification. |
| (*addsi3_aarch64_uxtw): Likewise. |
| (*add<mode>3_poly_1): Likewise. |
| (add<mode>3_compare0): Likewise. |
| (*addsi3_compare0_uxtw): Likewise. |
| (*add<mode>3nr_compare0): Likewise. |
| (<optab><mode>3): Likewise. |
| (*<optab>si3_uxtw): Likewise. |
| (*and<mode>3_compare0): Likewise. |
| (*andsi3_compare0_uxtw): Likewise. |
| (@aarch64_and<mode>3nr_compare0): Likewise. |
| |
| 2025-05-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/116352 |
| * tree-vect-slp.cc (vect_build_slp_tree_2): When compressing |
| operands from a two-operator node make sure the resulting |
| operation does not mix defs from different basic-blocks. |
| |
| 2025-05-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120043 |
| * tree-ssa-phiopt.cc (cond_store_replacement): Check |
| whether the store is to readonly memory. |
| |
| 2025-05-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/116938 |
| * tree-ssa-phiopt.cc (move_stmt): Use rewrite_to_defined_overflow |
| isntead of manually doing the rewrite of the VCE. |
| |
| 2025-05-08 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/120122 |
| PR tree-optimization/116939 |
| * gimple-fold.h (gimple_with_undefined_signed_overflow): Rename to .. |
| (rewrite_to_defined_overflow): This. |
| (gimple_needing_rewrite_undefined): Rename to ... |
| (rewrite_to_defined_unconditional): this. |
| * gimple-fold.cc (gimple_with_undefined_signed_overflow): Rename to ... |
| (gimple_needing_rewrite_undefined): This. Return true for VCE with integral |
| types of smaller precision. |
| (rewrite_to_defined_overflow): Rename to ... |
| (rewrite_to_defined_unconditional): This. Handle VCE rewriting to a cast. |
| * tree-if-conv.cc: s/gimple_with_undefined_signed_overflow/gimple_needing_rewrite_undefined/ |
| s/rewrite_to_defined_overflow/rewrite_to_defined_unconditional. |
| * tree-scalar-evolution.cc: Likewise |
| * tree-ssa-ifcombine.cc: Likewise. |
| * tree-ssa-loop-im.cc: Likewise. |
| * tree-ssa-loop-split.cc: Likewise. |
| * tree-ssa-reassoc.cc: Likewise. |
| |
| 2025-05-08 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/120146 |
| * tree-ssa-structalias.cc (create_variable_info_for): If |
| the symtab cannot tell us whether all refs to a variable |
| are explicit assume they are not. |
| |
| 2025-05-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119589 |
| PR tree-optimization/119586 |
| PR tree-optimization/119155 |
| * tree-vect-stmts.cc (vectorizable_store): Verify |
| DR_STEP_ALIGNMENT preserves DR_TARGET_ALIGNMENT when |
| VF > 1 and VMAT_STRIDED_SLP. Use vector aligned accesses when |
| we can. |
| (vectorizable_load): Likewise. |
| |
| 2025-05-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120143 |
| * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): |
| Move/update the original stmts, not the pattern stmts which |
| lack virtual operands and are not in the IL. |
| |
| 2025-05-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120089 |
| * tree-vect-stmts.cc (vect_stmt_relevant_p): Mark all |
| PHIs live when not already so and doing early-break |
| vectorization. |
| (vect_mark_stmts_to_be_vectorized): Skip virtual PHIs. |
| * tree-vect-slp.cc (vect_analyze_slp): Robustify handling |
| of early-break forced IVs. |
| |
| 2025-05-08 Pengxuan Zheng <quic_pzheng@quicinc.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_exact_log2_inverse): New. |
| * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>): |
| Update pattern accordingly. |
| * config/aarch64/aarch64.cc (aarch64_exact_log2_inverse): New. |
| * simplify-rtx.cc (simplify_context::simplify_ternary_operation): |
| Canonicalize vec_merge. |
| |
| 2025-05-07 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/120137 |
| PR target/120154 |
| * config/riscv/riscv-vect-permconst.cc (process_bb): Verify each |
| canonicalized element fits into the vector element mode. |
| |
| 2025-05-07 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc: New extension. |
| * config/riscv/riscv.opt: Ditto. |
| |
| 2025-05-07 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/91323 |
| * config/arm/arm.cc (arm_select_cc_mode): Use CCFPEmode for LTGT. |
| |
| 2025-05-07 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/110796 |
| PR target/118446 |
| * config/arm/arm.h (REVERSIBLE_CC_MODE): FP modes are only |
| reversible if flag_finite_math_only. |
| * config/arm/arm.cc (arm_select_cc_mode): Return CCFPmode for all |
| FP comparisons if flag_finite_math_only. |
| |
| 2025-05-07 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/111276 |
| * gimple-fold.cc (arith_code_with_undefined_signed_overflow): Make static. |
| (gimple_with_undefined_signed_overflow): New function. |
| * gimple-fold.h (arith_code_with_undefined_signed_overflow): Remove. |
| (gimple_with_undefined_signed_overflow): Add declaration. |
| * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Use |
| gimple_with_undefined_signed_overflow instead of manually |
| checking lhs and the code of the stmt. |
| (predicate_statements): Likewise. |
| * tree-ssa-ifcombine.cc (ifcombine_rewrite_to_defined_overflow): Likewise. |
| * tree-ssa-loop-im.cc (move_computations_worker): Likewise. |
| * tree-ssa-reassoc.cc (update_range_test): Likewise. Reformat. |
| * tree-scalar-evolution.cc (final_value_replacement_loop): Use |
| gimple_with_undefined_signed_overflow instead of |
| arith_code_with_undefined_signed_overflow. |
| * tree-ssa-loop-split.cc (split_loop): Likewise. |
| |
| 2025-05-07 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-loop-im.cc (compute_invariantness): Hoist to the always executed point |
| if ignorning the cost. |
| |
| 2025-05-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Add FLOAT_EXPR; |
| FIX_TRUNC_EXPR and vec_promote_demote costs. |
| |
| 2025-05-07 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| PR target/117978 |
| * config/aarch64/aarch64-protos.h: Declare |
| aarch64_emit_load_store_through_mode and aarch64_sve_maskloadstore. |
| * config/aarch64/aarch64-sve.md |
| (maskload<mode><vpred>): New define_expand folding maskloads with |
| certain predicate patterns to ASIMD loads. |
| (*aarch64_maskload<mode><vpred>): Renamed from maskload<mode><vpred>. |
| (maskstore<mode><vpred>): New define_expand folding maskstores with |
| certain predicate patterns to ASIMD stores. |
| (*aarch64_maskstore<mode><vpred>): Renamed from maskstore<mode><vpred>. |
| * config/aarch64/aarch64.cc |
| (aarch64_emit_load_store_through_mode): New function emitting a |
| load/store through subregs of a given mode. |
| (aarch64_emit_sve_pred_move): Refactor to use |
| aarch64_emit_load_store_through_mode. |
| (aarch64_expand_maskloadstore): New function to emit ASIMD loads/stores |
| for maskloads/stores with SVE predicates with VL1, VL2, VL4, VL8, or |
| VL16 patterns. |
| (aarch64_partial_ptrue_length): New function returning number of leading |
| set bits in a predicate. |
| |
| 2025-05-07 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-protos.h (s390_expand_cstoreti4): New |
| function. |
| * config/s390/s390.cc (s390_expand_cstoreti4): New function. |
| * config/s390/s390.md (CC_SUZ): New mode iterator. |
| (l): New mode attribute. |
| (cc_tolower): New mode attribute. |
| * config/s390/vector.md (cstoreti4): New expander. |
| (*vec_cmpv2di_lane0_<cc_tolower>): New insn. |
| (*vec_cmpti_<cc_tolower>): New insn. |
| |
| 2025-05-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120036 |
| * config/i386/i386-features.cc (ix86_get_vector_load_mode): |
| Handle 8/4/2 bytes. |
| (remove_redundant_vector_load): If the mode size is smaller than |
| its natural size, first insert an extra move with a QI vector |
| SUBREG of the same size to avoid validate_subreg failure. |
| |
| 2025-05-07 hongtao.liu <hongtao.liu@intel.com> |
| |
| PR gcov-profile/118508 |
| * auto-profile.cc |
| (autofdo_source_profile::get_callsite_total_count): Fix name |
| mismatch for fortran. |
| |
| 2025-05-07 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.md (*branch<ANYI:mode>_shiftedarith_equals_zero): |
| Avoid generating unnecessary andi. Fix formatting. |
| |
| 2025-05-06 Dongyan Chen <chendongyan@isrc.iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc: New extension. |
| |
| 2025-05-06 Mingzhu Yan <yanmingzhu@iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.cc (riscv_ext_version_table): New |
| extension. |
| (riscv_ext_flag_table) Ditto. |
| * config/riscv/riscv.opt: New mask. |
| * doc/invoke.texi (RISC-V Options): New extension |
| |
| 2025-05-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.cc (ix86_rtx_costs): Cost FLOAT, UNSIGNED_FLOAT, |
| FIX, UNSIGNED_FIX. |
| * config/i386/i386.h (struct processor_costs): Add |
| cvtsi2ss, cvtss2si, cvtpi2ps, cvtps2pi. |
| * config/i386/x86-tune-costs.h (struct processor_costs): Update tables. |
| |
| 2025-05-06 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/119852 |
| * cgraph.h (cgraph_node::create_clone): Remove the default value of |
| argument suffix. Update function comment. |
| * cgraphclones.cc (cgraph_node::create_clone): Update function comment. |
| * ipa-inline-transform.cc (clone_inlined_nodes): Pass NULL to suffix |
| of create_clone explicitely. |
| * ipa-inline.cc (recursive_inlining): Likewise. |
| * lto-cgraph.cc (input_node): Likewise. |
| |
| 2025-05-06 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (cgraph_node::create_version_clone_with_body): Fix function |
| comment. Change the name of clone_name to suffix, in line with the |
| function definition. |
| * cgraphclones.cc (cgraph_node::create_version_clone_with_body): Fix |
| function comment. |
| |
| 2025-05-06 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/119852 |
| * cgraphclones.cc (dump_callgraph_transformation): Document the |
| function. Do not dump if suffix is NULL. |
| |
| 2025-05-06 Martin Jambor <mjambor@suse.cz> |
| |
| * doc/invoke.texi (Developer Options): Document -fdump-ipa-clones. |
| |
| 2025-05-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * selftest-diagnostic.cc (test_diagnostic_context::report): Use |
| diagnostic_option_id rather than plain int. |
| * selftest-diagnostic.h (test_diagnostic_context::report): |
| Likewise. |
| |
| 2025-05-06 David Malcolm <dmalcolm@redhat.com> |
| |
| PR sarif-replay/117988 |
| * json.cc (json::pointer::token::token): New ctors. |
| (json::pointer::token::~token): New. |
| (json::pointer::token::operator=): New. |
| (json::object::set): Set the value's m_pointer_token. |
| (json::array::append): Likewise. |
| * json.h (json::pointer::token): New struct. |
| (json::value::get_pointer_token): New accessor. |
| (json::value::m_pointer_token): New field. |
| * libsarifreplay.cc (get_logical_location_kind_for_json_kind): |
| New. |
| (make_logical_location_from_jv): New. |
| (sarif_replayer::report_problem): Set the logical location of the |
| diagnostic. |
| |
| 2025-05-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-sarif.cc (maybe_get_sarif_kind): Add cases for |
| new kinds of logical location. |
| * doc/libgdiagnostics/topics/logical-locations.rst: Add new kinds |
| of logical location for handling XML and JSON. |
| * libgdiagnostics.cc (impl_logical_location_manager::get_kind): |
| Add cases for new kinds of logical location. |
| (diagnostic_text_sink::text_starter): Likewise, introducing a |
| macro for this. |
| (diagnostic_manager_debug_dump_logical_location): Likewise. |
| * libgdiagnostics.h (enum diagnostic_logical_location_kind_t): Add |
| new kinds of logical location for handling XML and JSON. |
| * libsarifreplay.cc (handle_logical_location_object): Add entries |
| to "kind_values" for decoding sarif logical location kinds |
| relating to XML and JSON. |
| * logical-location.h (enum logical_location_kind): Add new kinds |
| of logical location for handling XML and JSON. |
| |
| 2025-05-06 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116176 |
| * diagnostic-format-sarif.cc (class sarif_array_of_unique): New |
| template. |
| (class sarif_logical_location): Move here from |
| diagnostic-format-sarif.h. |
| (sarif_builder::m_cached_logical_locs): New. |
| (sarif_builder::sarif_builder): Initialize it. |
| (sarif_builder::set_any_logical_locs_arr): Call |
| make_minimal_sarif_logical_location rather than |
| make_sarif_logical_location_object. |
| (sarif_property_bag::set_logical_location): Likewise. |
| (make_sarif_logical_location_object): Replace with... |
| (sarif_builder::ensure_sarif_logical_location_for): ...this. |
| Capture "parentIndex" property. Consolidate into |
| theRuns.logicalLocations. |
| (sarif_builder::make_minimal_sarif_logical_location): New. |
| (sarif_builder::make_run_object): Add "index" properties to |
| m_cached_logical_locs and move it to theRuns.logicalLocations. |
| (selftest::test_sarif_array_of_unique_1): New. |
| (selftest::test_sarif_array_of_unique_2): New. |
| (selftest::diagnostic_format_sarif_cc_tests): Call the new |
| selftests. |
| * diagnostic-format-sarif.h (class sarif_logical_location): Move |
| to diagnostic-format-sarif.cc. |
| (make_sarif_logical_location_object): Drop decl. |
| * json.cc (value::compare): New. |
| (object::compare): New. |
| (selftest::fail_comparison): New. |
| (selftest::assert_json_equal): New. |
| (ASSERT_JSON_EQ): New. |
| (selftest::assert_json_non_equal): New. |
| (ASSERT_JSON_NE): New. |
| (selftest::test_comparisons): New. |
| (selftest::json_cc_tests): Call the new selftest. |
| * json.h (json::value::dyn_cast_object): New vfunc. |
| (json::object::dyn_cast_object): New vfunc impl. |
| (json::object::compare): New decl. |
| * libgdiagnostics.cc |
| (impl_logical_location_manager::get_parent): New. |
| * logical-location.h (logical_location_manager::get_parent): New |
| vfunc impl. |
| * selftest-logical-location.h |
| (test_logical_location_manager::get_parent): New vfunc impl. |
| * tree-logical-location.cc (assert_valid_tree): New. |
| (tree_logical_location_manager::get_short_name): Support types as |
| well as decls. |
| (tree_logical_location_manager::get_name_with_scope): Gracefully |
| handle non-decl nodes. |
| (tree_logical_location_manager::get_internal_name): Likewise. |
| (tree_logical_location_manager::get_kind): Don't attempt to handle |
| null nodes. Handle NAMESPACE_DECL and RECORD_TYPE. |
| (tree_logical_location_manager::get_name_for_path_output): |
| Gracefully handle non-decl nodes. |
| (tree_logical_location_manager::get_parent): New. |
| * tree-logical-location.h |
| (tree_logical_location_manager::get_parent): New vfunc impl. |
| |
| 2025-05-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-client-data-hooks.h: Include "logical-location.h". |
| (diagnostic_client_data_hooks::get_logical_location_manager): New. |
| (diagnostic_client_data_hooks::get_current_logical_location): |
| Convert return type from const logical_location * to |
| logical_location. |
| * diagnostic-format-json.cc: Include |
| "diagnostic-client-data-hooks.h". |
| (make_json_for_path): Update to use logical_location_manager from |
| the context. |
| * diagnostic-format-sarif.cc |
| (sarif_builder::get_logical_location_manager): New. |
| (sarif_builder::make_location_object): Update type of logical_loc |
| from "const logical_location *" to "logical_location". |
| (sarif_builder::set_any_logical_locs_arr): Likewise. |
| (sarif_builder::m_logical_loc_mgr): New field. |
| (sarif_result::on_nested_diagnostic): Use logical_location default |
| ctor rather than nullptr. |
| (sarif_builder::sarif_builder): Initialize m_logical_loc_mgr from |
| context's client data hooks. |
| (sarif_builder::make_locations_arr): Convert type of logical_loc |
| from from "const logical_location *" to "logical_location". |
| (sarif_builder::set_any_logical_locs_arr): Likewise. Pass manager |
| to make_sarif_logical_location_object. |
| (sarif_builder::make_location_object): Likewise. |
| (sarif_property_bag::set_logical_location): New. |
| (make_sarif_logical_location_object): Update for introduction of |
| logical_location_manager. |
| (populate_thread_flow_location_object): Pass builder to |
| ev.maybe_add_sarif_properties. |
| (selftest::test_make_location_object): Use logical_location |
| default ctor rather than nullptr. |
| * diagnostic-format-sarif.h (class logical_location): Replace |
| forward decl with include of "logical-location.h". |
| (class sarif_builder): New forward decl. |
| (sarif_property_bag::set_logical_location): New. |
| (make_sarif_logical_location_object): Add "mgr" param. |
| * diagnostic-path.cc |
| (diagnostic_path::get_first_event_in_a_function): Update for |
| change of logical_location type. |
| (per_thread_summary::per_thread_summary): Pass in |
| "logical_loc_mgr". |
| (per_thread_summary::m_logical_loc_mgr): New field. |
| (event_range::m_logical_loc): Update for change of |
| logical_location type. |
| (path_summary::get_logical_location_manager): New accessor. |
| (path_summary::m_logical_loc_mgr): New field. |
| (path_summary::get_or_create_events_for_thread_id): Pass |
| m_logical_loc_mgr to per_thread_summary ctor. |
| (path_summary::path_summary): Initialize m_logical_loc_mgr. |
| (thread_event_printer::print_swimlane_for_event_range): Add param |
| "logical_loc_mgr". Update for change in logical_loc type. |
| (print_path_summary_as_text): Pass manager to |
| thread_event_printer::print_swimlane_for_event_range. |
| (diagnostic_text_output_format::print_path): Update for |
| introduction of logical_location_manager. |
| * diagnostic-path.h: Include "logical-location.h". |
| (class sarif_builder): New forward decl. |
| (diagnostic_event::get_logical_location): Convert return type from |
| "const logical_location *" to "logical_location". |
| (diagnostic_event::maybe_add_sarif_properties): Add sarif_builder |
| param. |
| (diagnostic_path::get_logical_location_manager): New accessor. |
| (diagnostic_path::diagnostic_path): New ctor, taking manager. |
| (diagnostic_path::m_logical_loc_mgr): New field. |
| * diagnostic.cc |
| (diagnostic_context::get_logical_location_manager): New. |
| (logical_location::function_p): Convert to... |
| (logical_location_manager::function_p): ...this. |
| * diagnostic.h (class logical_location): Replace forward decl |
| with... |
| (class logical_location_manager): ...this. |
| (diagnostic_context::get_logical_location_manager): New decl. |
| * lazy-diagnostic-path.cc |
| (selftest::test_lazy_path::test_lazy_path): Pass m_logical_loc_mgr |
| to path ctor. |
| (selftest::test_lazy_path::make_inner_path): Likewise. |
| (selftest::test_lazy_path::m_logical_loc_mgr): New field. |
| * lazy-diagnostic-path.h |
| (lazy_diagnostic_path::lazy_diagnostic_path): New ctor. |
| * libgdiagnostics.cc (struct diagnostic_logical_location): Convert |
| from subclass of logical_location to a plain struct, dropping |
| accessors. |
| (class impl_logical_location_manager): New. |
| (impl_diagnostic_client_data_hooks::get_logical_location_manager): |
| New |
| (impl_diagnostic_client_data_hooks::m_logical_location_manager): |
| New field. |
| (diagnostic_manager::get_logical_location_manager): New. |
| (libgdiagnostics_path_event::get_logical_location): Reimplement. |
| (diagnostic_execution_path::diagnostic_execution_path): Add |
| logical_loc_mgr and pass to base class. |
| (diagnostic_execution_path::same_function_p): Update for change to |
| logical_location type. |
| (diagnostic::add_execution_path): Pass logical_loc_mgr to path |
| ctor. |
| (impl_diagnostic_client_data_hooks::get_current_logical_location): |
| Reimplement. |
| (diagnostic_text_sink::text_starter): Reimplement printing of |
| logical location. |
| (diagnostic_manager::new_execution_path): Pass mgr to path ctor. |
| (diagnostic_manager_debug_dump_logical_location): Update for |
| changes to diagnostic_logical_location. |
| (diagnostic_logical_location_get_kind): Likewise. |
| (diagnostic_logical_location_get_parent): Likewise. |
| (diagnostic_logical_location_get_short_name): Likewise. |
| (diagnostic_logical_location_get_fully_qualified_name): Likewise. |
| (diagnostic_logical_location_get_decorated_name): Likewise. |
| * logical-location.h (class logical_location_manager): New. |
| (class logical_location): Convert to typedef of |
| logical_location_manager::key. |
| * selftest-diagnostic-path.cc |
| (selftest::test_diagnostic_path::test_diagnostic_path): Pass |
| m_test_logical_loc_mgr to base ctor. |
| (selftest::test_diagnostic_path::same_function_p): Use pointer |
| comparison. |
| (selftest::test_diagnostic_path::add_event): Use |
| logical_location_from_funcname. |
| (selftest::test_diagnostic_path::add_thread_event): Likewise. |
| (selftest::test_diagnostic_path::logical_location_from_funcname): |
| New. |
| (selftest::test_diagnostic_event::test_diagnostic_event): Fix |
| indentation. Pass logical_location rather than const char *. |
| * selftest-diagnostic-path.h |
| (selftest::test_diagnostic_event::test_diagnostic_event): |
| Likewise. |
| (selftest::test_diagnostic_event::get_logical_location): Update |
| for change to logical_location type. |
| (selftest::test_diagnostic_event::get_function_name): Drop. |
| (selftest::test_diagnostic_event::m_logical_loc): Convert from |
| test_logical_location to logical_location. |
| (selftest::test_diagnostic_path::logical_location_from_funcname): |
| New. |
| (selftest::test_diagnostic_path::m_test_logical_loc_mgr): New |
| field. |
| * selftest-logical-location.cc: Include "selftest.h". |
| (selftest::test_logical_location::test_logical_location): Drop. |
| (selftest::test_logical_location_manager::~test_logical_location_manager): |
| New. |
| (selftest::test_logical_location::get_short_name): Replace with... |
| (selftest::test_logical_location_manager::get_short_name): |
| ...this. |
| (selftest::test_logical_location::get_name_with_scope): Replace |
| with... |
| (selftest::test_logical_location_manager::get_name_with_scope): |
| ...this. |
| (selftest::test_logical_location::get_internal_name): Replace |
| with... |
| (selftest::test_logical_location_manager::get_internal_name): |
| ...this. |
| (selftest::test_logical_location::get_kind): Replace with... |
| (selftest::test_logical_location_manager::get_kind): ...this. |
| (selftest::test_logical_location::get_name_for_path_output): |
| Replace with... |
| (selftest::test_logical_location_manager::get_name_for_path_output): |
| ...this. |
| (selftest::test_logical_location_manager::logical_location_from_funcname): |
| New. |
| (selftest::test_logical_location_manager::item_from_funcname): |
| New. |
| (selftest::selftest_logical_location_cc_tests): New. |
| * selftest-logical-location.h (class test_logical_location): |
| Replace with... |
| (class test_logical_location_manager): ...this. |
| * selftest-run-tests.cc (selftest::run_tests): Call |
| selftest_logical_location_cc_tests. |
| * selftest.h (selftest::selftest_logical_location_cc_tests): New |
| decl. |
| * simple-diagnostic-path.cc |
| (simple_diagnostic_path::simple_diagnostic_path): Add |
| "logical_loc_mgr" param and pass it to base ctor. |
| (simple_diagnostic_event::simple_diagnostic_event): Update init of |
| m_logical_loc. |
| (selftest::test_intraprocedural_path): Update for changes to |
| logical locations. |
| * simple-diagnostic-path.h: Likewise. |
| * tree-diagnostic-client-data-hooks.cc |
| (compiler_data_hooks::get_logical_location_manger): New. |
| (compiler_data_hooks::get_current_logical_location): Update. |
| (compiler_data_hooks::m_current_fndecl_logical_loc): Replace |
| with... |
| (compiler_data_hooks::m_logical_location_manager): ...this. |
| * tree-logical-location.cc |
| (compiler_logical_location::get_short_name_for_tree): Replace |
| with... |
| (tree_logical_location_manager::get_short_name): ...this. |
| (compiler_logical_location::get_name_with_scope_for_tree): Replace |
| with... |
| (tree_logical_location_manager::get_name_with_scope): ...this. |
| (compiler_logical_location::get_internal_name_for_tree): Replace |
| with... |
| (tree_logical_location_manager::get_internal_name): ...this. |
| (compiler_logical_location::get_kind_for_tree): Replace with... |
| (tree_logical_location_manager::get_kind): ...this. |
| (compiler_logical_location::get_name_for_tree_for_path_output): |
| Replace with... |
| (tree_logical_location_manager::get_name_for_path_output): |
| ...this. |
| (tree_logical_location::get_short_name): Drop. |
| (tree_logical_location::get_name_with_scope): Drop. |
| (tree_logical_location::get_internal_name): Drop. |
| (tree_logical_location::get_kind): Drop. |
| (tree_logical_location::get_name_for_path_output): Drop. |
| (current_fndecl_logical_location::get_short_name): Drop. |
| (current_fndecl_logical_location::get_name_with_scope): Drop. |
| (current_fndecl_logical_location::get_internal_name): Drop. |
| (current_fndecl_logical_location::get_kind): Drop. |
| (current_fndecl_logical_location::get_name_for_path_output): Drop. |
| * tree-logical-location.h (class compiler_logical_location): Drop. |
| (class tree_logical_location): Drop. |
| (class current_fndecl_logical_location): Drop. |
| (class tree_logical_location_manager): New. |
| |
| 2025-05-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/libgdiagnostics/topics/compatibility.rst: New file, based |
| on gcc/jit/docs/topics/compatibility.rst. |
| * doc/libgdiagnostics/topics/index.rst: Add compatibility.rst. |
| * doc/libgdiagnostics/topics/logical-locations.rst (Accessors): |
| New section. |
| * libgdiagnostics++.h (logical_location::operator bool): New. |
| (logical_location::operator==): New. |
| (logical_location::operator!=): New. |
| (logical_location::get_kind): New. |
| (logical_location::get_parent): New. |
| (logical_location::get_short_name): New. |
| (logical_location::get_fully_qualified_name): New. |
| (logical_location::get_decorated_name): New. |
| * libgdiagnostics.cc |
| (diagnostic_logical_location::get_fully_qualified_name): New. |
| (diagnostic_logical_location_get_kind): New entrypoint. |
| (diagnostic_logical_location_get_parent): New entrypoint. |
| (diagnostic_logical_location_get_short_name): New entrypoint. |
| (diagnostic_logical_location_get_fully_qualified_name): New |
| entrypoint. |
| (diagnostic_logical_location_get_decorated_name): New entrypoint. |
| * libgdiagnostics.h |
| (LIBDIAGNOSTICS_HAVE_LOGICAL_LOCATION_ACCESSORS): New define. |
| (diagnostic_logical_location_get_kind): New entrypoint. |
| (diagnostic_logical_location_get_parent): New entrypoint. |
| (diagnostic_logical_location_get_short_name): New entrypoint. |
| (diagnostic_logical_location_get_fully_qualified_name): New |
| entrypoint. |
| (diagnostic_logical_location_get_decorated_name): New entrypoint. |
| * libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_1): New. |
| |
| 2025-05-06 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| |
| PR middle-end/114512 |
| * config/riscv/bitmanip.md (bext* patterns): New patterns for |
| bext recognition plus splitter for extracting variable bit from |
| a constant. |
| * config/riscv/predicates.md (bitpos_mask_operand): New predicate. |
| |
| 2025-05-06 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*<optab>_vx_<mode>): Add new |
| combine to convert vec_duplicate + vadd.vv to vaddvx on GR2VR |
| cost. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Take care of the cost |
| when vec_dup and vadd v, vec_dup(x). |
| * config/riscv/vector-iterators.md: Add new iterator for vx. |
| |
| 2025-05-06 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-protos.h (get_gr2vr_cost): Add new decl to |
| get the cost of gr2vr. |
| * config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): |
| Leverage the helper function to get the cost of gr2vr. |
| * config/riscv/riscv.cc (riscv_register_move_cost): Ditto. |
| (riscv_builtin_vectorization_cost): Ditto. |
| (get_gr2vr_cost): Add new impl of the helper function. |
| |
| 2025-05-06 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-opts.h (RVV_GR2VR_COST_UNPROVIDED): Add |
| new macro to indicate the param is not provided. |
| * config/riscv/riscv.opt: Add new option --pararm=gpr2vr-cost. |
| |
| 2025-05-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/1157777 |
| * tree-vectorizer.h (_slp_tree::avoid_stlf_fail): New member. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize it. |
| (vect_print_slp_tree): Dump it. |
| * tree-vect-data-refs.cc (vect_slp_analyze_instance_dependence): |
| For dataflow dependent loads of a store check whether there's |
| a cross-iteration data dependence that for sure prohibits |
| store-to-load forwarding and mark involved loads. |
| * tree-vect-stmts.cc (get_group_load_store_type): For avoid_stlf_fail |
| marked loads use VMAT_ELEMENTWISE. |
| |
| 2025-05-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/120074 |
| * gimple-fold.cc (fold_truth_andor_for_ifcombine): For |
| lsignbit && l_xor case, punt if ll_bitsize != lr_bitsize. Similarly |
| for rsignbit && r_xor case, punt if rl_bitsize != rr_bitsize. |
| Formatting fix. |
| |
| 2025-05-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.cc (ix86_tls_index): Add ifdef. |
| |
| 2025-05-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120031 |
| * match.pd ((nop_outer_cast)-(inner_cast)var -> -(outer_cast)(var)): |
| Allow inner conversions that are not widenings when the outer |
| type is unsigned. |
| |
| 2025-05-06 LIU Hao <lh_mouse@126.com> |
| |
| PR pch/14940 |
| * config/i386/host-mingw32.cc (mingw32_gt_pch_use_address): |
| Replace the loop that attempted to map the PCH only to its |
| original address with more adaptive operations |
| |
| 2025-05-06 Julian Waters <tanksherman27@gmail.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| Uroš Bizjak <ubizjak@gmail.com> |
| Liu Hao <lh_mouse@126.com> |
| |
| * config/i386/i386.cc (ix86_legitimate_constant_p): Handle new UNSPEC. |
| (legitimate_pic_operand_p): Handle new UNSPEC. |
| (legitimate_pic_address_disp_p): Handle new UNSPEC. |
| (ix86_legitimate_address_p): Handle new UNSPEC. |
| (ix86_tls_index_symbol): New symbol for _tls_index. |
| (ix86_tls_index): Handle creation of _tls_index symbol. |
| (legitimize_tls_address): Create thread local access sequence. |
| (output_pic_addr_const): Handle new UNSPEC. |
| (i386_output_dwarf_dtprel): Handle new UNSPEC. |
| (i386_asm_output_addr_const_extra): Handle new UNSPEC. |
| * config/i386/i386.h (TARGET_WIN32_TLS): Define. |
| * config/i386/i386.md: New UNSPEC. |
| * config/i386/predicates.md: Handle new UNSPEC. |
| * config/mingw/mingw32.h (TARGET_WIN32_TLS): Define. |
| (TARGET_ASM_SELECT_SECTION): Define. |
| (DEFAULT_TLS_SEG_REG): Define. |
| * config/mingw/winnt.cc (mingw_pe_select_section): Select proper TLS section. |
| (mingw_pe_unique_section): Handle TLS section. |
| * config/mingw/winnt.h (mingw_pe_select_section): Declare. |
| * configure: Regenerate. |
| * configure.ac: New check for broken linker thread local support |
| |
| 2025-05-05 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/119971 |
| * config/riscv/bitmanip.md (rotation with masked count): Rewrite |
| as define_insn patterns. Fix formatting. |
| * config/riscv/riscv.md (shift with masked count): Similarly. |
| |
| 2025-05-05 Uros Bizjak <ubizjak@gmail.com> |
| Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/120019 |
| * config/i386/i386.cc (ix86_print_operand): Handle 'v' operand |
| modifier to emit segment override prefix. |
| * config/i386/i386.md (*strmovdi_rex_1): Use %v operand modifier |
| to emit segment override prefix. |
| (*strmovsi_1): Ditto. |
| (*strmovhi_1): Ditto. |
| (*strmovqi_1): Ditto. |
| (*rep_movdi_rex64): Ditto. |
| (*rep_movsi): Ditto. |
| (*rep_movqi): Ditto. |
| |
| 2025-05-05 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/120048 |
| * ipa-cp.cc (ipcp_store_vr_results): Check for UNDEFINED. |
| |
| 2025-05-05 Kyle Huey <khuey@kylehuey.com> |
| |
| * dwarf2out.cc (resolve_addr_in_expr): Propagate dtprel into the address |
| table when appropriate. |
| |
| 2025-05-05 Simon Martin <simon@nasilyan.com> |
| |
| PR c++/118163 |
| PR c++/118392 |
| * diagnostic.cc (diagnostic_context::initialize): Initialize |
| m_diagnostic_groups.m_inhibiting_notes_from. |
| (diagnostic_context::inhibit_notes_in_group): New. |
| (diagnostic_context::notes_inhibited_in_group): New |
| (diagnostic_context::report_diagnostic): Call |
| inhibit_notes_in_group and notes_inhibited_in_group. |
| (diagnostic_context::end_group): Call inhibit_notes_in_group. |
| (diagnostic_context::pop_nesting_level): Ditto. |
| * diagnostic.h (diagnostic_context::m_diagnostic_groups): Add |
| member to track the depth at which a warning has been inhibited. |
| (diagnostic_context::notes_inhibited_in_group): Declare. |
| (diagnostic_context::inhibit_notes_in_group): Declare. |
| * doc/ux.texi: Document diagnostic_group behavior with regards |
| to inhibited warnings. |
| |
| 2025-05-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.md (truncsfbf2): Fix comment typo, |
| unsafte -> unsafe. |
| |
| 2025-05-05 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/genrvv-type-indexer.cc: Apply clang-format to the |
| file. |
| |
| 2025-05-04 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config.gcc (riscv): Add riscv-vect-permcost.o to extra_objs. |
| * config/riscv/riscv-passes.def (pass_vector_permcost): Add new pass. |
| * config/riscv/riscv-protos.h (make_pass_vector_permconst): Declare. |
| * config/riscv/riscv-vect-permconst.cc: New file. |
| * config/riscv/t-riscv: Add build rule for riscv-vect-permcost.o |
| |
| 2025-05-04 Jin Ma <jinma@linux.alibaba.com> |
| Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/riscv/riscv.cc (riscv_print_operand): Add H. |
| * doc/extend.texi: Document for H. |
| |
| 2025-05-04 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_register_move_cost): Handle |
| subclasses with vector registers as well. |
| |
| 2025-05-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/119900 |
| * cgraph.cc (cgraph_edge::maybe_hot_p): Add |
| a variant accepting a sreal scale; use reliability of |
| profile. |
| * cgraph.h (cgraph_edge::maybe_hot_p): Declare |
| a varaint accepting a sreal scale. |
| * ipa-inline.cc (callee_speedup): New function. |
| (want_inline_small_function_p): add early return |
| and avoid duplicated lookup of summaries; use scaled |
| maybe_hot predicate. |
| |
| 2025-05-04 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv.cc (riscv_emit_frm_mode_set): Refactor |
| the frm mode set by removing fsrmsi_restore_volatile. |
| * config/riscv/vector-iterators.md (unspecv): Remove as |
| unnecessary. |
| * config/riscv/vector.md (fsrmsi_restore_volatile): Ditto. |
| |
| 2025-05-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.cc (unspec_pcmp_p): New function. |
| (ix86_rtx_costs): Cost VEC_MERGE more realistically. |
| |
| 2025-05-02 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR rtl-optimization/120059 |
| * simplify-rtx.cc (simplify_with_subreg_not): Check the result |
| of simplify_gen_subreg. |
| |
| 2025-05-02 Jakub Jelinek <jakub@redhat.com> |
| Andrew MacLeod <amacleod@redhat.com> |
| |
| PR c/117023 |
| * gimple-range-infer.cc (gimple_infer_range::gimple_infer_range): |
| For nonnull_if_nonzero attribute check also arg2 range if it doesn't |
| include zero and in that case call add_nonzero too. |
| |
| 2025-05-02 Jeff Law <jlaw@ventanamicro.com> |
| |
| Revert: |
| 2025-04-21 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config/mips/mips.cc (mips_option_override): Error out for |
| -mmicromips -mmsa. |
| |
| 2025-05-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/119900 |
| * config/i386/i386.cc (ix86_can_change_mode_class): Add TODO |
| comment. |
| (ix86_rtx_costs): Make VEC_SELECT equivalent to SUBREG cost 1. |
| |
| 2025-05-02 Jason Merrill <jason@redhat.com> |
| |
| PR c++/120012 |
| * doc/invoke.texi: Document C++20 aggregate fix. |
| * common.opt: Likewise. |
| |
| 2025-05-02 Jason Merrill <jason@redhat.com> |
| |
| PR c++/60336 |
| * config/i386/i386.cc (ix86_warn_parameter_passing_abi): |
| If no target, check the current TU. |
| |
| 2025-05-02 Richard Biener <rguenther@suse.de> |
| |
| * config/arc/arc.cc (TARGET_LRA_P): Remove define. |
| * config/gcn/gcn.cc (TARGET_LRA_P): Likewise. |
| |
| 2025-05-02 Filip Kastl <fkastl@suse.cz> |
| |
| PR middle-end/117091 |
| * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): |
| Remove warning about using different algorithms. |
| |
| 2025-05-02 Filip Kastl <fkastl@suse.cz> |
| |
| * tree-switch-conversion.cc (bit_test_cluster::find_bit_tests): |
| Modify the dynamic programming algorithm to take is_beneficial() |
| into account earlier. To do this efficiently, copy some logic |
| from is_beneficial() here. Add detailed comments about how the |
| DP algorithm works. |
| (bit_test_cluster::can_be_handled): Check that the cluster range |
| is >, not >= BITS_IN_WORD. Remove the |
| "vec<cluster *> &, unsigned, unsigned" overloaded variant since |
| we no longer need it. |
| (bit_test_cluster::is_beneficial): Add a comment that this |
| function is closely tied to m_max_case_bit_tests. Remove the |
| "vec<cluster *> &, unsigned, unsigned" overloaded variant since |
| we no longer need it. |
| * tree-switch-conversion.h: Remove the vec overloaded variants |
| of bit_test_cluster::is_beneficial and |
| bit_test_cluster::can_be_handled. |
| |
| 2025-05-02 Filip Kastl <fkastl@suse.cz> |
| |
| PR middle-end/117091 |
| * tree-switch-conversion.cc (bit_test_cluster::find_bit_tests_fast): |
| Remove function. |
| (bit_test_cluster::find_bit_tests_slow): Remove function. |
| (bit_test_cluster::find_bit_tests): We don't need to decide |
| between slow and fast so just put the modified (no longer) slow |
| algorithm here. |
| |
| 2025-05-02 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| * config/aarch64/aarch64-sve.md (vec_extract<mode><Vel>): |
| Prevent the emission of pfalse+lastb for VLS. |
| |
| 2025-05-02 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118617 |
| * tree-vect-generic.cc (expand_vector_conversion): Have 2 elements |
| as internal storage for converts. |
| * tree-vect-stmts.cc (vectorizable_conversion): Likewise. |
| |
| 2025-05-02 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118659 |
| * tree-ssanames.cc (get_known_nonzero_bits_1): Use |
| wi::bit_and_not instead of `a & ~b`. |
| |
| 2025-05-02 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/118090 |
| * ccmp.cc (get_compare_parts): Remove the up argument. |
| (expand_ccmp_next): Update call to get_compare_parts. |
| (expand_ccmp_expr_1): Likewise. |
| |
| 2025-05-02 Richard Biener <rguenther@suse.de> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2025-05-01 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi: Add -fabi-version detail. |
| * common.opt: Likewise. |
| |
| 2025-05-01 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-ssa-phiopt.cc (phiopt_early_allow): Only allow a sequence |
| with one statement for MIN/MAX and the op was MIN/MAX. |
| |
| 2025-05-01 Ayan Shafqat <ayan.x.shafqat@gmail.com> |
| |
| * config/aarch64/arm_acle.h (__sqrt, __sqrtf): New function. |
| |
| 2025-05-01 Ayan Shafqat <ayan.x.shafqat@gmail.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Change |
| BUILTIN_VHSDF_DF to BUILTIN_VHSDF_HSDF. |
| |
| 2025-05-01 Jason Merrill <jason@redhat.com> |
| |
| PR c++/119162 |
| * fold-const.cc (maybe_nonzero_address): Return 1 for non-symtab |
| vars if folding_cxx_constexpr. |
| |
| 2025-05-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_conversion): Remove non-SLP |
| paths. |
| |
| 2025-05-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_remove_slp_scalar_calls): Look |
| at the original stmt. |
| |
| 2025-05-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * combine.cc (try_combine): Sets which satisfy set_noop_p can go |
| to i2 unless i3 is a jump and the other set is not. |
| |
| 2025-04-30 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR target/120042 |
| * tree-vectorizer.h: Include dominance.h. |
| |
| 2025-04-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * prime-paths.cc (limit_checked_add): Remove redundant trailing |
| ';'. |
| (enters_through_p): Likewise. |
| |
| 2025-04-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-sarif.cc |
| (sarif_serialization_format_json::write_to_file): New. |
| (sarif_builder::m_formatted): Replace field with... |
| (sarif_builder::m_serialization_format): ...this. |
| (sarif_builder::sarif_builder): Update for field change. |
| (sarif_builder::flush_to_file): Call m_serialization_format's |
| write_to_file vfunc. |
| (sarif_output_format::sarif_output_format): Replace param |
| "formatted" with "serialization_format". |
| (sarif_stream_output_format::sarif_output_format): Likewise. |
| (sarif_file_output_format::sarif_file_output_format): Likewise. |
| (diagnostic_output_format_init_sarif_stderr): Make a |
| sarif_serialization_format_json and pass it to |
| diagnostic_output_format_init_sarif. |
| (diagnostic_output_format_open_sarif_file): Split out into... |
| (diagnostic_output_file::try_to_open): ...this, adding |
| "serialization_kind" param. |
| (diagnostic_output_format_init_sarif_file): Update for new param |
| to diagnostic_output_format_open_sarif_file. Make a |
| sarif_serialization_format_json and pass it to |
| diagnostic_output_format_init_sarif. |
| (diagnostic_output_format_init_sarif_stream): Make a |
| sarif_serialization_format_json and pass it to |
| diagnostic_output_format_init_sarif. |
| (make_sarif_sink): Replace param "formatted" with "serialization". |
| (selftest::test_make_location_object): Update for changes to |
| sarif_builder ctor. |
| * diagnostic-format-sarif.h (enum class sarif_serialization): New. |
| (diagnostic_output_format_open_sarif_file): Add param |
| "serialization_kind". |
| (class sarif_serialization_format): New. |
| (class sarif_serialization_format_json): New. |
| (make_sarif_sink): Replace param "formatted" with |
| "serialization_format". |
| * diagnostic-output-file.h (diagnostic_output_file::try_to_open): |
| New decl. |
| * diagnostic.h (enum diagnostics_output_format): Tweak comments. |
| * doc/invoke.texi (-fdiagnostics-add-output): Add "serialization" |
| param to sarif scheme. |
| * libgdiagnostics.cc (sarif_sink::sarif_sink): Update for change |
| to make_sarif_sink. |
| * opts-diagnostic.cc (sarif_scheme_handler::make_sink): Add |
| "serialization" param and pass it on to make_sarif_sink. |
| |
| 2025-04-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119960 |
| * tree-vect-slp.cc (vect_schedule_slp_node): Sanity |
| check dominance check on operand defs. |
| |
| 2025-04-30 Richard Biener <rguenther@suse.de> |
| |
| Revert: |
| 2025-04-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119960 |
| * tree-vect-slp.cc (vect_slp_can_convert_to_external): |
| Handle cases where defs from multiple BBs are ordered |
| by their dominance relation. |
| |
| 2025-04-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (get_later_stmt): Robustify against |
| stmts in different BBs, assert when they are unordered. |
| |
| 2025-04-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119960 |
| * tree-vect-slp.cc (vect_slp_can_convert_to_external): |
| Handle cases where defs from multiple BBs are ordered |
| by their dominance relation. |
| |
| 2025-04-30 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/120006 |
| * tree-ssa-structalias.cc (find_func_clobbers): Handle |
| strdup, strndup, realloc, index, strchr, strrchr, memchr, |
| strstr, strpbrk builtins like find_func_aliases does. |
| |
| 2025-04-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120003 |
| * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names): |
| Allow block re-use but do not enlarge the path beyond such a |
| re-use. |
| |
| 2025-04-30 Georg-Johann Lay <avr@gjlay.de> |
| |
| Backported from master: |
| 2025-04-30 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (xload_<mode>_libgcc): Clobber R21, Z. |
| |
| 2025-04-30 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/119832 |
| * config/riscv/riscv.cc (riscv_dynamic_frm_mode_p): New. |
| (riscv_mode_confluence): New. |
| (TARGET_MODE_CONFLUENCE): Define to riscv_mode_confluence. |
| |
| 2025-04-30 Jerry Zhang Jian <jerry.zhangjian@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc: Add Zve32x depends on Zicsr |
| |
| 2025-04-30 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_emit_sve_pred_move): |
| Fold LD1/ST1 with ptrue to LDR/STR for 128-bit VLS. |
| |
| 2025-04-30 yulong <shiyulong@iscas.ac.cn> |
| |
| * config/riscv/constraints.md (Ou01): New constraint. |
| (Ou02): Ditto. |
| * config/riscv/generic-vector-ooo.md (vec_sf_vcp): New reservation. |
| * config/riscv/genrvv-type-indexer.cc (main): New type. |
| * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Add xsfvcp strings. |
| * config/riscv/riscv-vector-builtins-shapes.cc (struct sf_vcix_se_def): |
| New function. |
| (struct sf_vcix_def): Ditto. |
| (SHAPE): Ditto. |
| * config/riscv/riscv-vector-builtins-shapes.h: Ditto. |
| * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_X2_U_OPS): New type. |
| (DEF_RVV_X2_WU_OPS): Ditto. |
| (vuint8mf8_t): Ditto. |
| (vuint8mf4_t): Ditto. |
| (vuint8mf2_t): Ditto. |
| (vuint8m1_t): Ditto. |
| (vuint8m2_t): Ditto. |
| (vuint8m4_t): Ditto. |
| (vuint16mf4_t): Ditto. |
| (vuint16mf2_t): Ditto. |
| (vuint16m1_t): Ditto. |
| (vuint16m2_t): Ditto. |
| (vuint16m4_t): Ditto. |
| (vuint32mf2_t): Ditto. |
| (vuint32m1_t): Ditto. |
| (vuint32m2_t): Ditto. |
| (vuint32m4_t): Ditto. |
| * config/riscv/riscv-vector-builtins.cc (DEF_RVV_X2_U_OPS): New builtins |
| def. |
| (DEF_RVV_X2_WU_OPS): Ditto. |
| (rvv_arg_type_info::get_scalar_float_type): Ditto. |
| (function_instance::modifies_global_state_p): Ditto. |
| * config/riscv/riscv-vector-builtins.def (v_x): New base type. |
| (i): Ditto. |
| (v_i): Ditto. |
| (xv): Ditto. |
| (iv): Ditto. |
| (fv): Ditto. |
| (vvv): Ditto. |
| (xvv): Ditto. |
| (ivv): Ditto. |
| (fvv): Ditto. |
| (vvw): Ditto. |
| (xvw): Ditto. |
| (ivw): Ditto. |
| (fvw): Ditto. |
| (v_vv): Ditto. |
| (v_xv): Ditto. |
| (v_iv): Ditto. |
| (v_fv): Ditto. |
| (v_vvv): Ditto. |
| (v_xvv): Ditto. |
| (v_ivv): Ditto. |
| (v_fvv): Ditto. |
| (v_vvw): Ditto. |
| (v_xvw): Ditto. |
| (v_ivw): Ditto. |
| (v_fvw): Ditto. |
| (x2_vector): Ditto. |
| (scalar_float): Ditto. |
| * config/riscv/riscv-vector-builtins.h (enum required_ext): New extension. |
| (required_ext_to_isa_name): Ditto. |
| (required_extensions_specified): Ditto. |
| (struct rvv_arg_type_info): Ditto. |
| (struct function_group_info): Ditto. |
| * config/riscv/riscv.md: New attr. |
| * config/riscv/sifive-vector-builtins-bases.cc (class sf_vc): New function. |
| (BASE): New base_name. |
| * config/riscv/sifive-vector-builtins-bases.h: New function_base. |
| * config/riscv/sifive-vector-builtins-functions.def |
| (REQUIRED_EXTENSIONS): New intrinsics def. |
| (sf_vc): Ditto. |
| * config/riscv/sifive-vector.md (@sf_vc_x_se<mode>): New RTL mode. |
| (@sf_vc_v_x_se<mode>): Ditto. |
| (@sf_vc_v_x<mode>): Ditto. |
| (@sf_vc_i_se<mode>): Ditto. |
| (@sf_vc_v_i_se<mode>): Ditto. |
| (@sf_vc_v_i<mode>): Ditto. |
| (@sf_vc_vv_se<mode>): Ditto. |
| (@sf_vc_v_vv_se<mode>): Ditto. |
| (@sf_vc_v_vv<mode>): Ditto. |
| (@sf_vc_xv_se<mode>): Ditto. |
| (@sf_vc_v_xv_se<mode>): Ditto. |
| (@sf_vc_v_xv<mode>): Ditto. |
| (@sf_vc_iv_se<mode>): Ditto. |
| (@sf_vc_v_iv_se<mode>): Ditto. |
| (@sf_vc_v_iv<mode>): Ditto. |
| (@sf_vc_fv_se<mode>): Ditto. |
| (@sf_vc_v_fv_se<mode>): Ditto. |
| (@sf_vc_v_fv<mode>): Ditto. |
| (@sf_vc_vvv_se<mode>): Ditto. |
| (@sf_vc_v_vvv_se<mode>): Ditto. |
| (@sf_vc_v_vvv<mode>): Ditto. |
| (@sf_vc_xvv_se<mode>): Ditto. |
| (@sf_vc_v_xvv_se<mode>): Ditto. |
| (@sf_vc_v_xvv<mode>): Ditto. |
| (@sf_vc_ivv_se<mode>): Ditto. |
| (@sf_vc_v_ivv_se<mode>): Ditto. |
| (@sf_vc_v_ivv<mode>): Ditto. |
| (@sf_vc_fvv_se<mode>): Ditto. |
| (@sf_vc_v_fvv_se<mode>): Ditto. |
| (@sf_vc_v_fvv<mode>): Ditto. |
| (@sf_vc_vvw_se<mode>): Ditto. |
| (@sf_vc_v_vvw_se<mode>): Ditto. |
| (@sf_vc_v_vvw<mode>): Ditto. |
| (@sf_vc_xvw_se<mode>): Ditto. |
| (@sf_vc_v_xvw_se<mode>): Ditto. |
| (@sf_vc_v_xvw<mode>): Ditto. |
| (@sf_vc_ivw_se<mode>): Ditto. |
| (@sf_vc_v_ivw_se<mode>): Ditto. |
| (@sf_vc_v_ivw<mode>): Ditto. |
| (@sf_vc_fvw_se<mode>): Ditto. |
| (@sf_vc_v_fvw_se<mode>): Ditto. |
| (@sf_vc_v_fvw<mode>): Ditto. |
| * config/riscv/vector-iterators.md: New iterator. |
| * config/riscv/vector.md: New vtype. |
| |
| 2025-04-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.cc (cs_interesting_for_ipcp_p): Fix handling of uninitialized |
| counts and 0 IPA cost wrt flag_profile_partial_training. |
| |
| 2025-04-29 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| * simplify-rtx.cc (non_paradoxical_subreg_not_p): New function |
| for pattern match of (subreg (not X)). |
| (simplify_with_subreg_not): New function for simplification. |
| |
| 2025-04-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/111657 |
| * config/i386/i386-expand.cc (alg_usable_p): For Pmode != word_mode |
| reject rep_prefix_{1,4,8}_byte algorithms with src_as in the |
| non-default address space. |
| * config/i386/i386-protos.h (ix86_check_movs): New prototype. |
| * config/i386/i386.cc (ix86_check_movs): New function. |
| (ix86_print_operand) [case '^']: Remove excess check for TARGET_64BIT. |
| * config/i386/i386.md (strmov): For Pmode != word_mode expand with |
| gen_strmov_single only when operands[3] (source) is in the default |
| address space. |
| (*strmovdi_rex_1) Use ix86_check_movs. Remove %^ from asm template. |
| (*strmovsi_1): Ditto. |
| (*strmovhi_1): DItto. |
| (*strmovqi_1): Ditto. |
| (*rep_movdi_rex64): Ditto. |
| (*rep_movsi): Ditto. |
| (*rep_movqi): Ditto. |
| |
| 2025-04-29 Zhijin Zeng <zengzhijin@linux.spacemit.com> |
| |
| * config/riscv/riscv.cc (riscv_register_move_cost): Use |
| reg_class_subset_p to check the reg class. |
| |
| 2025-04-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119997 |
| * vec.h (vec<T, A, vl_embed>::last): Provide const overload. |
| (vec<T, va_heap, vl_ptr>::last): Likewise. |
| * tree-ssa-sccvn.h (vn_pp_nary_for_addr): Declare. |
| * tree-ssa-sccvn.cc (vn_pp_nary_for_addr): Split out from ... |
| (vn_reference_lookup): ... here. |
| (vn_reference_insert): ... and duplicate here. Do not handle |
| zero offset as POINTER_PLUS_EXPR. |
| * tree-ssa-pre.cc (compute_avail): Implement |
| ADDR_EXPR-as-POINTER_PLUS_EXPR special casing. |
| |
| 2025-04-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/111657 |
| * config/i386/i386-expand.cc (alg_usable_p): Remove have_as bool |
| argument and add dst_as and src_as address space arguments. Reject |
| libcall algorithm with dst_as and src_as in the non-default address |
| spaces. Reject rep_prefix_{1,4,8}_byte algorithms with dst_as in |
| the non-default address space. |
| (decide_alg): Remove have_as bool argument and add dst_as and src_as |
| address space arguments. Update calls to alg_usable_p. |
| (ix86_expand_set_or_cpymem): Update call to decide_alg. |
| * config/i386/i386.md (strmov): Do not fail if operand[3] (source) |
| is in the non-default address space. Expand with gen_strmov_singleop |
| only when operand[1] (destination) is in the default address space. |
| (*strmovdi_rex_1): Determine memory operands from insn pattern. |
| Allow only when destination is in the default address space. |
| Rewrite asm template to use explicit operands. |
| (*strmovsi_1): Ditto. |
| (*strmovhi_1): DItto. |
| (*strmovqi_1): Ditto. |
| (*rep_movdi_rex64): Ditto. |
| (*rep_movsi): Ditto. |
| (*rep_movqi): Ditto. |
| (*strsetdi_rex_1): Determine memory operands from insn pattern. |
| Allow only when destination is in the default address space. |
| (*strsetsi_1): Ditto. |
| (*strsethi_1): Ditto. |
| (*strsetqi_1): Ditto. |
| (*rep_stosdi_rex64): Ditto. |
| (*rep_stossi): Ditto. |
| (*rep_stosqi): Ditto. |
| |
| 2025-04-29 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/119985 |
| * target.def: Remove TARGET_PROMOTE_FUNCTION_RETURN reference. |
| * doc/tm.texi: Regenerated. |
| |
| 2025-04-29 hongtao.liu <hongtao.liu@intel.com> |
| |
| PR gcov-profile/118581 |
| * auto-profile.cc (autofdo_source_profile::get_count_info): |
| Overload the function with parameter gimple location instead |
| of stmt. |
| (afdo_set_bb_count): For !has_annotated BB, Check single |
| successors PHIs corresponding to the block and use those |
| count. |
| |
| 2025-04-29 Richard Biener <rguenther@suse.de> |
| |
| PR debug/78685 |
| * doc/invoke.texi (-Og): Reword. |
| |
| 2025-04-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.cc (ix86_update_stack_alignment): Skip sub-RTXes |
| of the memory operand if stack access register is not mentioned in |
| the operand. |
| |
| 2025-04-29 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/92080 |
| PR target/117839 |
| * config/i386/i386-features.cc (ix86_place_single_vector_set): |
| New function. |
| (remove_partial_avx_dependency): Use it. |
| (ix86_get_vector_load_mode): New function. |
| (replace_vector_const): Likewise. |
| (remove_redundant_vector_load): Likewise. |
| (pass_data_remove_redundant_vector_load): Likewise. |
| (pass_remove_redundant_vector_load): Likewise. |
| (make_pass_remove_redundant_vector_load): Likewise. |
| * config/i386/i386-passes.def: Add |
| pass_remove_redundant_vector_load after |
| pass_remove_partial_avx_dependency. |
| * config/i386/i386-protos.h |
| (make_pass_remove_redundant_vector_load): New. |
| * config/i386/i386.cc (ix86_modes_tieable_p): Return true for |
| narrower non-scalar-integer modes in SSE registers. |
| |
| 2025-04-29 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/117547 |
| * config/i386/i386-expand.cc (ix86_expand_unsigned_small_int_cst_argument): |
| New function. |
| (ix86_expand_args_builtin): Call |
| ix86_expand_unsigned_small_int_cst_argument to expand the argument |
| before calling fixup_modeless_constant. |
| (ix86_expand_round_builtin): Likewise. |
| (ix86_expand_special_args_builtin): Likewise. |
| (ix86_expand_builtin): Likewise. |
| |
| 2025-04-29 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): |
| Remove other processor except for GLC since this one is only |
| for GLC. |
| |
| 2025-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/97111 |
| * doc/invoke.texi: Add -Wanalyzer-throw-of-unexpected-type. |
| * gimple.h (gimple_call_nothrow_p): Make arg const. |
| |
| 2025-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-json.cc: Drop include of "make-unique.h". |
| Replace uses of ::make_unique with std::make_unique. |
| * diagnostic-format-sarif.cc: Likewise. |
| * diagnostic-format-text.cc: Likewise. |
| * diagnostic.cc: Likewise. |
| * dumpfile.cc: Likewise. |
| * gcc-attribute-urlifier.cc: Likewise. |
| * gcc-urlifier.cc: Likewise. |
| * json-parsing.cc: Likewise. |
| * json.cc: Likewise. |
| * lazy-diagnostic-path.cc: Likewise. |
| * libgdiagnostics.cc: Likewise. |
| * libsarifreplay.cc: Likewise. |
| * lto-wrapper.cc: Likewise. |
| * make-unique.h: Delete. |
| * opts-diagnostic.cc: Drop include of "make-unique.h". |
| Replace uses of ::make_unique with std::make_unique. |
| * pretty-print.cc: Likewise. |
| * text-art/style.cc: Likewise. |
| * text-art/styled-string.cc: Likewise. |
| * text-art/table.cc: Likewise. |
| * text-art/tree-widget.cc: Likewise. |
| * text-art/widget.cc: Likewise. |
| * timevar.cc: Likewise. |
| * toplev.cc: Likewise. |
| * tree-diagnostic-client-data-hooks.cc: Likewise. |
| |
| 2025-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * pass_manager.h (class pass_manager): Add "m_" prefix to all pass |
| fields. |
| * passes.cc (pass_manager::execute_early_local_passes): Update |
| for added "m_" prefix. |
| (pass_manager::execute_pass_mode_switching): Likewise. |
| (pass_manager::finish_optimization_passes): Likewise. |
| (pass_manager::pass_manager): Likewise. |
| (pass_manager::dump_profile_report): Likewise. |
| |
| 2025-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h (diagnostic_context::m_opt_permissive): Convert |
| from int to diagnostic_option_id. Update comment. |
| |
| 2025-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h (diagnostic_context::set_abort_on_error): New. |
| (diagnostic_context::m_abort_on_error): Make private. |
| (diagnostic_abort_on_error): Delete. |
| * opts.cc (setup_core_dumping): Update for above changes. |
| |
| 2025-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-format-sarif.cc (sarif_builder::get_opts): New |
| accessor. |
| (sarif_builder::get_version): Update for... |
| (sarif_builder::m_version): Replace this field... |
| (sarif_builder::m_m_sarif_gen_opts): ...with this. |
| (sarif_builder::sarif_builder): Replace version with |
| sarif_gen_opts throughout. |
| (sarif_builder::make_top_level_object): Use get_version. |
| (sarif_output_format::sarif_output_format): Replace version with |
| sarif_gen_opts throughout. |
| (sarif_stream_output_format::sarif_stream_output_format): |
| Likewise. |
| (sarif_file_output_format::sarif_file_output_format): Likewise. |
| (diagnostic_output_format_init_sarif_stderr): Drop version param |
| and use default for sarif_generation_options instead. |
| (diagnostic_output_format_init_sarif_file): Likewise. |
| (diagnostic_output_format_init_sarif_stream): Likewise. |
| (make_sarif_sink): Replace version with sarif_gen_opts throughout. |
| (sarif_generation_options::sarif_generation_options): New. |
| (selftest::test_sarif_diagnostic_context::test_sarif_diagnostic_context): |
| Replace version with sarif_gen_opts throughout. |
| (selftest::test_make_location_object): Likewise. |
| (selftest::test_simple_log): Likewise. |
| (selftest::test_simple_log_2): Likewise. |
| (selftest::test_message_with_embedded_link): Likewise. |
| (selftest::test_message_with_braces): Likewise. |
| (selftest::test_buffering): Likewise. |
| (selftest::run_tests_per_version): Replace with... |
| (selftest::for_each_sarif_gen_option): ...this... |
| (selftest::run_line_table_case_tests_per_version): ...and this. |
| (selftest::diagnostic_format_sarif_cc_tests): Update to use |
| for_each_sarif_gen_option and |
| run_line_table_case_tests_per_version. |
| * diagnostic-format-sarif.h (enum class sarif_version): Move lower |
| down. |
| (diagnostic_output_format_init_sarif_stderr): Drop "version" |
| param. |
| (diagnostic_output_format_init_sarif_file): Likewise. |
| (diagnostic_output_format_init_sarif_stream): Likewise. |
| (struct sarif_generation_options): New. |
| (make_sarif_sink): Add "formatted" param. Replace version param |
| with sarif_gen_opts. |
| * diagnostic.cc (diagnostic_output_format_init): Drop hardcoded |
| sarif_version::v2_1_0 arguments from calls, which instead use |
| the default ctor for sarif_generation_options internally. |
| * libgdiagnostics.cc (sarif_sink::sarif_sink): Replace version |
| param with sarif_gen_opts, and update for changes to |
| make_sarif_sink. |
| (diagnostic_manager_add_sarif_sink): Use sarif_gen_opts rather |
| than version. |
| * opts-diagnostic.cc (sarif_scheme_handler::make_sink): Likewise. |
| Pass "true" for "formatted" param. |
| |
| 2025-04-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (value_relation::swap): New. |
| (value_relation::negate): Remove. |
| (dom_oracle::next_relation): New. |
| (block_relation_iterator::block_relation_iterator): New. |
| (block_relation_iterator::get_next_relation): New. |
| (dom_oracle::dump): Use iterator. |
| * value-relation.h (relation_oracle::next_relation): New. |
| (dom_oracle::next_relation): New prototype. |
| (class block_relation_iterator): New. |
| (FOR_EACH_RELATION_BB): New. |
| (FOR_EACH_RELATION_NAME): New. |
| |
| 2025-04-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| * range-op-ptr.cc (range_operator::lhs_op1_relation): Add |
| prange/prange/irange (PPI) default. |
| (pointer_plus_operator::lhs_op1_relation): New. |
| * range-op.cc (range_op_handler::lhs_op1_relation): Add RO_PPI case. |
| * range-op.h (range_op_handler::lhs_op1_relation): Add prototype. |
| |
| 2025-04-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_range_op): Use a |
| new local variable for intermediate relation results. |
| |
| 2025-04-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): Pass |
| 'this' as the range-query to the inferred range constructor. |
| |
| 2025-04-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/95801 |
| * range-op.cc (operator_div::op2_range): New. |
| |
| 2025-04-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/119712 |
| * value-range.cc (range_bitmask::adjust_range): Delete. |
| (irange::set_range_from_bitmask): Integrate adjust_range. |
| (irange::update_bitmask): Do nothing if bitmask doesnt change. |
| (irange:intersect_bitmask): Do not call adjust_range. Exit if there |
| is no second bitmask. |
| * value-range.h (adjust_range): Remove prototype. |
| |
| 2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/67797 |
| * tree-tailcall.cc (find_tail_calls): Add support for ERF_RETURNS_ARG. |
| |
| 2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * tree-cfg.cc (verify_gimple_cond): Error out if the comparison |
| throws. |
| |
| 2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR c/119432 |
| * tree-pretty-print.cc (op_symbol_code): For LROTATE_EXPR, |
| output __ROTATE_LEFT for gimple. |
| For RROTATE_EXPR output __ROTATE_RIGHT for gimple. |
| |
| 2025-04-28 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * rtl.h (native_decode_int): Declare. |
| * simplify-rtx.cc (native_decode_int): New function, split out from... |
| (native_decode_rtx): ...here. |
| |
| 2025-04-28 H.J. Lu <hjl.tools@gmail.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/109780 |
| PR target/109093 |
| * config/i386/i386.cc (stack_access_data): New. |
| (ix86_update_stack_alignment): Likewise. |
| (ix86_find_all_reg_use_1): Likewise. |
| (ix86_find_all_reg_use): Likewise. |
| (ix86_find_max_used_stack_alignment): Also check memory accesses |
| from registers defined by stack or frame registers. |
| |
| 2025-04-28 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/119973 |
| * tree-ssa-structalias.cc (create_variable_info_for): |
| Build constraints from DECL_INITIAL directly rather than |
| the IPA reference list which is incomplete. |
| |
| 2025-04-28 Richard Biener <rguenther@suse.de> |
| |
| PR lto/113207 |
| * ipa-free-lang-data.cc (fld_type_variant): Add extra checking. |
| |
| 2025-04-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119044 |
| * tree-predcom.cc (ref_at_iteration): Copy alias info |
| from the original ref. |
| |
| 2025-04-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119103 |
| * tree-ssa-loop-im.cc (in_loop_pipeline): Globalize. |
| (compute_invariantness): Override costing when we run |
| right before PRE and PRE is enabled. |
| (pass_lim::execute): Adjust. |
| * tree-vect-patterns.cc (vect_determine_precisions_from_users): |
| For variable shift amounts use range information. |
| |
| 2025-04-28 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.cc (::gen_transform): Add in_place parameter. |
| Assert it isn't set in unexpected places. |
| (possible_noop_convert): New. |
| (expr::gen_transform): Support in_place and emit code to |
| compute a child in-place when the operation is a conversion. |
| (dt_simplify::gen_1): Arrange for an outermost conversion |
| to be elided by generating the transform of the operand |
| in-place. |
| * match.pd (__real cepxi (x) -> cos (x)): Use single_use. |
| |
| 2025-04-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/60779 |
| * common.opt (fcx-method=): New, map to flag_complex_method. |
| (Enum complex_method): New. |
| (fcx-limited-range): Alias to -fcx-method=limited-range. |
| (fcx-fortran-rules): Alias to -fcx-medhot=fortran. |
| * ipa-inline-transform.cc (inline_call): Check flag_complex_method. |
| * ipa-inline.cc (can_inline_edge_by_limits_p): Likewise. |
| * opts.cc (finish_options): Adjust. |
| (set_fast_math_flags): Likewise. |
| * doc/invoke.texi (fcx-method=): Document. |
| |
| 2025-04-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/116083 |
| * stor-layout.cc (layout_type): Compute TYPE_SIZE and |
| TYPE_SIZE_UNIT for vector types from the component mode |
| sizes. |
| |
| 2025-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_analyze_loop_operations): Prune |
| all actual analysis and only fail when we discover a not |
| SLP covered stmt. |
| (vect_analyze_loop_2): Remove path trying without SLP. |
| |
| 2025-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_loop_kill_debug_uses): Remove. |
| (maybe_set_vectorized_backedge_value): Likewise. |
| (vect_transform_loop_stmt): Likewise. Move dump printing |
| to vect_transform_stmt. |
| (vect_transform_loop): Remove loop over loop stmts transforming |
| them, but retain some DCE code still necessary. |
| * tree-vect-stmts.cc (vect_transform_stmt): Dump that |
| we're vectorizing a stmt. |
| |
| 2025-04-28 Richard Biener <rguenther@suse.de> |
| |
| * params.opt (--param=vect-force-slp): Remove. |
| * doc/invoke.texi (--param=vect-force-slp): Likewise. |
| * tree-vect-loop.cc (vect_analyze_loop_2): Assume |
| param_vect_force_slp is 1. |
| * tree-vect-stmts.cc (vect_analyze_stmt): Likewise. |
| |
| 2025-04-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119493 |
| * tree-tailcall.cc (find_tail_calls): Handle non-gimple_reg_type |
| arguments which aren't just passed through for tail recursions |
| even for non-musttail calls. |
| |
| 2025-04-28 LIU Hao <lh_mouse@126.com> |
| |
| PR target/111107 |
| * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Copy from sol2.h. |
| |
| 2025-04-27 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR c/48274 |
| PR middle-end/112877 |
| PR middle-end/118288 |
| * gimple.cc (gimple_builtin_call_types_compatible_p): Remove the |
| targetm.calls.promote_prototypes call. |
| * tree.cc (tree_builtin_call_types_compatible_p): Likewise. |
| |
| 2025-04-27 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/112877 |
| * calls.cc (initialize_argument_information): Promote small integer |
| arguments if TARGET_PROMOTE_PROTOTYPES returns true. |
| |
| 2025-04-27 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_const_vector): Extract |
| const vector stepped into separated func. |
| (expand_const_vector_single_step_npatterns): Add new func |
| to take care of single step. |
| (expand_const_vector_interleaved_stepped_npatterns): Add new |
| func to take care of interleaved step. |
| (expand_const_vector_stepped): Add new func to take care of |
| const vector stepped. |
| |
| 2025-04-27 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_const_vector_duplicate_repeating): |
| Add new func to take care of vector duplicate with repeating. |
| (expand_const_vector_duplicate_default): Add new func to take |
| care of default const vector duplicate. |
| (expand_const_vector_duplicate): Add new func to take care |
| of all const vector duplicate. |
| (expand_const_vector): Extract const vector duplicate into |
| separated function. |
| |
| 2025-04-27 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_const_vec_series): Add new |
| func to take care of the const vec_series. |
| (expand_const_vector): Extract const vec_series into separated |
| function. |
| |
| 2025-04-27 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (expand_const_vector): Extract |
| const vec_duplicate into separated function. |
| (expand_const_vec_duplicate): Add new func to take care |
| of the const vec_duplicate. |
| |
| 2025-04-27 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/119549 |
| * common/config/i386/i386-common.cc (ix86_handle_option): |
| Refactor msse4 and mno-sse4. |
| * config/i386/i386.opt (msse4): Remove RejectNegative. |
| (mno-sse4): Remove the entry. |
| * config/i386/i386-options.cc |
| (ix86_valid_target_attribute_inner_p): Remove special code |
| which handles mno-sse4. |
| |
| 2025-04-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/105275 |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Fix cost of FP scalar |
| MAX_EXPR and MIN_EXPR |
| |
| 2025-04-26 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * config.gcc (LIST): --enable-obsolete for m32c-elf. |
| |
| 2025-04-26 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * simplify-rtx.cc (simplify_context::simplify_unary_operation_1) <case ZERO_EXTEND>: |
| Add simplifcation for and with a constant. |
| |
| 2025-04-25 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * doc/sourcebuild.texi: Document variadic_mi_thunk effective |
| target check. |
| |
| 2025-04-25 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * doc/sourcebuild.texi: Document effective target |
| using_sjlj_exceptions. |
| |
| 2025-04-25 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * match.pd: Move `(cmp (cond @0 @1 @2) @3)` simplifcation after |
| the bool comparison simplifications. |
| |
| 2025-04-25 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * gimple.h (gimple_cond_make_false): Fix comment. |
| (gimple_cond_make_true): Likewise. |
| (gimple_cond_true_p): Fix spello for statement in comment. |
| |
| 2025-04-25 Jason Merrill <jason@redhat.com> |
| |
| * common.opt: Add ABI v21. |
| |
| 2025-04-25 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * ipa-icf.cc (sem_function::sem_function): Remove |
| the obstack argument version one. |
| (sem_variable::sem_variable): Likewise. |
| * ipa-icf.h (sem_function): Remove ctor for |
| obstack argument only one. |
| (sem_variable): Likewise. |
| |
| 2025-04-25 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * ipa-icf.cc (sem_function::init): Remove assignment of node from itself. |
| |
| 2025-04-25 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/119811 |
| * tree-ssa-phiopt.cc: Remove calls.h include. |
| |
| 2025-04-25 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| PR rtl-optimization/116479 |
| * modulo-sched.cc (doloop_register_get): Reject conditions with |
| decrements that are not 1. |
| |
| 2025-04-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/119873 |
| * config/s390/s390.cc (s390_call_saved_register_used): Don't return |
| true if default definition of PARM_DECL SSA_NAME of the same register |
| is passed in call saved register in the PARALLEL case either. |
| |
| 2025-04-25 Andrew Pinski <quic_apinski@quicinc.com> |
| Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/119737 |
| * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Properly |
| switch sections. |
| |
| 2025-04-25 Yuriy Kolerov <Yuriy.Kolerov@synopsys.com> |
| |
| PR target/119122 |
| * common/config/riscv/riscv-common.cc (riscv_implied_info): Add a rule |
| for Zca to C implication. |
| |
| 2025-04-24 Jakub Jelinek <jakub@redhat.com> |
| Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR target/119873 |
| * config/s390/s390.cc (s390_call_saved_register_used): Don't return |
| true if default definition of PARM_DECL SSA_NAME of the same register |
| is passed in call saved register. |
| (s390_function_ok_for_sibcall): Adjust comment. |
| |
| 2025-04-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/119919 |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Account |
| correctly cond_expr and min/max when one of operands is 0 or -1. |
| |
| 2025-04-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/119924 |
| * ipa-cp.cc (update_counts_for_self_gen_clones): Use nonzero_p. |
| (update_profiling_info): Likewise. |
| (update_specialized_profile): Likewise. |
| |
| 2025-04-24 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/119610 |
| * config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space): |
| Add a bytes_below_sp parameter and use it to calculate the CFA |
| offsets. Attach the first SVE CFA note to the move into the |
| associated temporary register. |
| (aarch64_allocate_and_probe_stack_space): Update calls accordingly. |
| Start out with bytes_per_sp set to the frame size and decrement |
| it after each allocation. |
| |
| 2025-04-24 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * opts.cc (validate_ipa_reorder_locality_lto_partition): Check opts |
| instead of opts_set for x_flag_ipa_reorder_for_locality. |
| (finish_options): Update call site. |
| |
| 2025-04-24 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * common.opt (LTO_PARTITION_DEFAULT): Delete. |
| (flto-partition=): Change default back to balanced. |
| * flag-types.h (lto_partition_model): Remove LTO_PARTITION_DEFAULT. |
| * opts.cc (validate_ipa_reorder_locality_lto_partition): |
| Check opts_set->x_flag_lto_partition instead of LTO_PARTITION_DEFAULT. |
| (finish_options): Remove handling of LTO_PARTITION_DEFAULT. |
| |
| 2025-04-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/119711 |
| * dwarf2out.h (struct dw_val_node): Add u member. |
| (struct dw_loc_descr_node): Remove dw_loc_opc, dtprel, |
| frame_offset_rel and dw_loc_addr members. |
| (dw_loc_opc, dw_loc_dtprel, dw_loc_frame_offset_rel, dw_loc_addr): |
| Define. |
| (struct dw_attr_struct): Remove dw_attr member. |
| (dw_attr): Define. |
| * dwarf2out.cc (loc_descr_equal_p_1): Use dw_loc_dtprel instead of |
| dtprel. |
| (output_loc_operands, new_addr_loc_descr, loc_checksum, |
| loc_checksum_ordered): Likewise. |
| (resolve_args_picking_1): Use dw_loc_frame_offset_rel instead of |
| frame_offset_rel. |
| (loc_list_from_tree_1): Likewise. |
| (resolve_addr_in_expr): Use dw_loc_dtprel instead of dtprel. |
| (copy_deref_exprloc): Copy val_class, val_entry and v members |
| instead of whole dw_loc_oprnd1 and dw_loc_oprnd2. |
| (optimize_string_length): Copy val_class, val_entry and v members |
| instead of whole dw_attr_val. |
| (hash_loc_operands): Use dw_loc_dtprel instead of dtprel. |
| (compare_loc_operands, compare_locs): Likewise. |
| |
| 2025-04-24 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/103750 |
| * config/i386/sse.md (*<avx512>_cmp<mode>3_and15): New define_insn. |
| (*<avx512>_ucmp<mode>3_and15): Ditto. |
| (*<avx512>_cmp<mode>3_and3): Ditto. |
| (*avx512vl_ucmpv2di3_and3): Ditto. |
| (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>): |
| Change operands[3] predicate to <cmp_imm_predicate>. |
| (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): |
| Ditto. |
| (*<avx512>_cmp<mode>3): Add GET_MODE_NUNITS (<MODE>mode) >= 8 |
| to the condition. |
| (*<avx512>_ucmp<mode>3): Ditto. |
| (V48_AVX512VL_4): New mode iterator. |
| (VI48_AVX512VL_4): Ditto. |
| (V8_AVX512VL_2): Ditto. |
| |
| 2025-04-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.cc (base_count): Remove. |
| (struct caller_statistics): Rename n_hot_calls to n_interesting_calls; |
| add called_without_ipa_profile. |
| (init_caller_stats): Update. |
| (cs_interesting_for_ipcp_p): New function. |
| (gather_caller_stats): collect n_interesting_calls and |
| called_without_profile. |
| (ipcp_cloning_candidate_p): Use n_interesting-calls rather then hot. |
| (good_cloning_opportunity_p): Rewrite heuristics when IPA profile is |
| present |
| (estimate_local_effects): Update. |
| (value_topo_info::propagate_effects): Update. |
| (compare_edge_profile_counts): Remove. |
| (ipcp_propagate_stage): Do not collect base_count. |
| (get_info_about_necessary_edges): Record whether function is called |
| without profile. |
| (decide_about_value): Update. |
| (ipa_cp_cc_finalize): Do not initialie base_count. |
| * profile-count.cc (profile_count::operator*): New. |
| (profile_count::operator*=): New. |
| * profile-count.h (profile_count::operator*): Declare |
| (profile_count::operator*=): Declare. |
| * params.opt: Remove ipa-cp-profile-count-base. |
| * doc/invoke.texi: Likewise. |
| |
| 2025-04-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Cost truth_value |
| exprs. |
| |
| 2025-04-23 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/predicates.md (vector_or_0_or_1s_operand): New predicate. |
| (nonimm_or_0_or_1s_operand): Ditto. |
| * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>): |
| Extend the predicate of operands1 to accept 0 or allones |
| operands. |
| (vcond_mask_<mode><sseintvecmodelower>): Ditto. |
| (vcond_mask_v1tiv1ti): Ditto. |
| (vcond_mask_<mode><sseintvecmodelower>): Ditto. |
| * config/i386/i386.md (mov<mode>cc): Ditto for operands[2] and |
| operands[3]. |
| * config/i386/i386-expand.cc (ix86_expand_sse_fp_minmax): |
| Force immediate_operand to register. |
| |
| 2025-04-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Add special cases |
| for COND_EXPR; make MIN_EXPR, MAX_EXPR, ABS_EXPR and ABSU_EXPR more realistic. |
| |
| 2025-04-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/119327 |
| * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore also |
| OPTION_MASK_SAVE_TOC_INDIRECT differences. |
| |
| 2025-04-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define |
| __ARM_FEATURE_FAMINMAX. |
| |
| 2025-04-22 Spencer Abson <spencer.abson@arm.com> |
| |
| * tree-vect-loop.cc (vectorizable_induction): Add target support |
| checks for vectorized MULT_EXPR and FLOAT_EXPR where necessary for |
| scalable types. |
| Prefer target_supports_op_p over directly_supports_p for these tree |
| codes. |
| (vectorizable_nonlinear_induction): Fix a doc comment while I'm |
| here. |
| |
| 2025-04-22 Spencer Abson <spencer.abson@arm.com> |
| |
| * config/aarch64/aarch64.md: Update cbranch, cstore, fcmp |
| and fcmpe to use the GPF_F16 iterator for floating-point |
| modes. |
| |
| 2025-04-22 Spencer Abson <spencer.abson@arm.com> |
| |
| PR target/117013 |
| * config/aarch64/aarch64-protos.h (aarch64_expand_fp_spaceship): |
| Declare optab expander function for floating-point types. |
| * config/aarch64/aarch64.cc (aarch64_expand_fp_spaceship): |
| Define optab expansion for floating-point types (new function). |
| * config/aarch64/aarch64.md (spaceship<mode>4): |
| Add define_expands for spaceship<mode>4 on integer and |
| floating-point types. |
| |
| 2025-04-22 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-cores.def (olympus): Add fp8fma, fp8dot4 |
| explicitly. |
| |
| 2025-04-22 Yixuan Chen <chenyixuan@iscas.ac.cn> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add xt-c908, xt-c908v, |
| xt-c910, xt-c910v2, xt-c920, xt-c920v2. |
| (RISCV_CORE): Add xt-c908, xt-c908v, xt-c910, xt-c910v2, xt-c920, |
| xt-c920v2. |
| * doc/invoke.texi: Add xt-c908, xt-c908v, xt-c910, xt-c910v2, |
| xt-c920, xt-c920v2. |
| |
| 2025-04-22 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * doc/invoke.texi (lto-partition-locality-frequency-cutoff, |
| lto-partition-locality-size-cutoff, lto-max-locality-partition): |
| Document. |
| |
| 2025-04-22 Alexandre Oliva <oliva@adacore.com> |
| |
| PR target/118182 |
| * config/riscv/vector.md (@pred_broadcast<mode>): Expand to |
| _zero and _imm variants without vec_duplicate. |
| |
| 2025-04-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/119879 |
| * config/i386/i386.cc (fp_conversion_stmt_cost): Inline to ... |
| (ix86_vector_costs::add_stmt_cost): ... here; fix handling of NOP_EXPR. |
| |
| 2025-04-21 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config/mips/mips.cc (mips_option_override): Error out for |
| -mmicromips -mmsa. |
| |
| 2025-04-21 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/119507 |
| * except.cc (switch_to_exception_section): Don't use the cached section if |
| the current function is in comdat. |
| |
| 2025-04-21 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * vec.h (array_slice::begin): Assert that the |
| slice is valid. |
| (array_slice::end): Likewise. |
| |
| 2025-04-21 hongtao.liu <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.cc (ix86_emit_swdivsf): Generate 2 |
| FMA instructions when TARGET_FMA. |
| |
| 2025-04-19 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/119865 |
| * config/riscv/riscv.cc (parse_features_for_version): Do not |
| explicitly free the architecture string. |
| |
| 2025-04-19 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/118410 |
| * config/riscv/bitmanip.md (logical with constant argument): New |
| splitter for cases where synthesizing ~C is cheaper than synthesizing |
| the original constant C. |
| |
| 2025-04-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.cc (vec_fp_conversion_cost): New function. |
| (ix86_rtx_costs): Use it for SSE/AVX FP conversoins. |
| (ix86_builtin_vectorization_cost): Fix indentation; |
| and use vec_fp_conversion_cost in vec_promote_demote. |
| (fp_conversion_stmt_cost): New function. |
| (ix86_vector_costs::add_stmt_cost): Use it to cost NOP_EXPR |
| and vec_promote_demote. |
| * config/i386/i386.h (struct processor_costs): |
| * config/i386/x86-tune-costs.h (struct processor_costs): |
| |
| 2025-04-19 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR rtl-optimization/111949 |
| * combine.cc (find_split_point): Add a split point |
| for `(and (not X) Y)` if not in the outer set already. |
| |
| 2025-04-19 Jiaxun Yang <jiaxun.yang@flygoat.com> |
| |
| PR target/111814 |
| * config/sh/sh-modes.def (RESET_FLOAT_FORMAT): Use mips format. |
| (FLOAT_MODE): Use mips mode. |
| |
| 2025-04-19 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| * config/alpha/alpha.cc |
| (alpha_get_mem_rtx_alignment_and_offset): Recurse into |
| COMPONENT_REF nodes. |
| |
| 2025-04-18 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/bitmanip.md (*bext<mode>_mask_pos): New pattern |
| for extracting a single bit at masked bit position. |
| |
| 2025-04-18 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/87901 |
| * tree-ssa-dse.cc (maybe_trim_constructor_store): Add was_integer_cst argument. |
| Check for was_integer_cst instead of `{}` when was_integer_cst is true. |
| (maybe_trim_partially_dead_store): Handle INTEGER_CST stores of 0 as stores of `{}`. |
| Udpate call to maybe_trim_constructor_store for CONSTRUCTOR. |
| |
| 2025-04-18 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/87901 |
| * tree-ssa-dse.cc (maybe_trim_constructor_store): Strip over useless type |
| conversions after taking the address of the MEM_REF. |
| |
| 2025-04-18 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118902 |
| * fold-const.cc (tree_swap_operands_p): Place invariants in the first operand |
| if not used with constants. |
| |
| 2025-04-18 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118947 |
| * gimple-fold.cc (optimize_memcpy_to_memset): Walk back until we get a |
| statement that may clobber the read. |
| |
| 2025-04-18 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/78408 |
| PR tree-optimization/118947 |
| * gimple-fold.cc (optimize_memcpy_to_memset): Handle STRING_CST case too. |
| |
| 2025-04-18 Richard Braun <rbraun@sceen.net> |
| |
| * config/c6x/c6x.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove the |
| DW_EH_PE_indirect flag. |
| |
| 2025-04-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119858 |
| * tree-vect-loop.cc (vectorizable_live_operation): Convert |
| pointer offset to sizetype. |
| |
| 2025-04-18 Hakan Candar <hakancandar@protonmail.com> |
| |
| * config.gcc: Recognize riscv*-*-gnu* targets. |
| * config/riscv/gnu.h: New file. |
| |
| 2025-04-18 Alexey Merzlyakov <alexey.merzlyakov@samsung.com> |
| |
| PR middle-end/108016 |
| PR middle-end/108016 |
| * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4, subv<mode>4, |
| usubv<mode>4): Tunes for unnecessary sext.w elimination. |
| |
| 2025-04-18 kelefth <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/119160 |
| * avoid-store-forwarding.cc (process_store_forwarding): |
| Zero-extend the value stored in the base register, in case |
| of load-elimination, only when the mode of the destination |
| is wider. |
| |
| 2025-04-18 kelefth <konstantinos.eleftheriou@vrull.eu> |
| |
| * doc/cfg.texi: Update the exception handling section for the |
| REG_EH_REGION notes to make it clear that the note is attached |
| to the instruction throwing the exception. |
| |
| 2025-04-17 翁愷邑 <kaiweng9487@gmail.com> |
| |
| * config/riscv/riscv-target-attr.cc |
| (riscv_target_attr_parser::update_settings): |
| Do not manually free any arch string. |
| |
| 2025-04-17 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| * tree.def (BOOLEAN_TYPE): Add more details. |
| |
| 2025-04-17 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi: Use "compatible types" term. Rephrase to be |
| more precise (and correct). |
| |
| 2025-04-17 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/119351 |
| * tree-vect-stmts.cc (vectorizable_early_exit): Mask both operands of |
| the gcond for partial masking support. |
| |
| 2025-04-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/119834 |
| * config/s390/s390.md (define_split after *cpymem_short): Use |
| (clobber (match_scratch N)) instead of (clobber (scratch)). Use |
| (match_dup 4) and operands[4] instead of (match_dup 3) and operands[3] |
| in the last of those. |
| (define_split after *clrmem_short): Use (clobber (match_scratch N)) |
| instead of (clobber (scratch)). |
| (define_split after *cmpmem_short): Likewise. |
| |
| 2025-04-17 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx.cc (TARGET_ASM_NEED_VAR_DECL_BEFORE_USE): |
| Don't '#define'. |
| |
| 2025-04-17 Hans-Peter Nilsson <hp@axis.com> |
| |
| * combine.cc: Correct comments about combine_validate_cost. |
| |
| 2025-04-16 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/88382 |
| * doc/extend.texi (Syntax Extensions): Adjust menu. |
| (Raw String Literals): New section. |
| |
| 2025-04-16 Keith Packard <keithp@keithp.com> |
| |
| * config/rx/rx.md (cmpstrnsi): Allow constant length. For |
| static length 0, just store 0 into the output register. |
| For dynamic zero, set C/Z appropriately. |
| (rxcmpstrn): No longer set C/Z. |
| |
| 2025-04-16 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| * tree-ssa-phiopt.cc (factor_out_conditional_operation): Do not |
| bypass the int_fits_type_p test for boolean types whose precision |
| is not 1. |
| |
| 2025-04-16 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * common.opt.urls: Regenerated. |
| |
| 2025-04-16 Ard Biesheuvel <ardb@kernel.org> |
| |
| PR target/119386 |
| * config/i386/i386-options.cc: Permit -mnop-mcount when |
| using -fpic with PLTs. |
| |
| 2025-04-16 Ard Biesheuvel <ardb@kernel.org> |
| |
| PR target/119386 |
| * config/i386/i386.cc (x86_print_call_or_nop): Add @PLT suffix |
| where appropriate. |
| (x86_function_profiler): Fall through to x86_print_call_or_nop() |
| for PIC codegen when flag_plt is set. |
| |
| 2025-04-16 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR driver/90465 |
| * doc/invoke.texi (Overall Options): Add a @cindex for -Q in |
| connection with --help=. |
| (Developer Options): Point at --help= documentation for the |
| other use of -Q. |
| |
| 2025-04-16 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/97106 |
| * config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls) |
| [ACCEL_COMPILER]: Make sure to emit C++ constructor, destructor |
| aliases. |
| |
| 2025-04-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/119614 |
| * ipa-prop.cc (ipa_write_return_summaries): New function. |
| (ipa_record_return_value_range_1): Break out from .... |
| (ipa_record_return_value_range): ... here. |
| (ipa_read_return_summaries): New function. |
| (ipa_prop_read_section): Read return summaries. |
| (read_ipcp_transformation_info): Read return summaries. |
| (ipcp_write_transformation_summaries): Write return summaries; |
| do not stream stray 0. |
| |
| 2025-04-16 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/119351 |
| * tree-vectorizer.h (LOOP_VINFO_MASK_NITERS_PFA_OFFSET, |
| LOOP_VINFO_NON_LINEAR_IV): New. |
| (class _loop_vec_info): Add mask_skip_niters_pfa_offset and |
| nonlinear_iv. |
| * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize them. |
| (vect_analyze_scalar_cycles_1): Record non-linear inductions. |
| (vectorizable_induction): If early break and PFA using masking create a |
| new phi which tracks where the scalar code needs to start... |
| (vectorizable_live_operation): ...and generate the adjustments here. |
| (vect_use_loop_mask_for_alignment_p): Reject non-linear inductions and |
| early break needing peeling. |
| |
| 2025-04-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/119808 |
| * gimple-lower-bitint.cc (gimple_lower_bitint): Don't set |
| m_single_use_names bits for SSA_NAMEs which have single use but |
| their SSA_NAME_DEF_STMT is a copy from another SSA_NAME which doesn't |
| have a single use, or single use which is such a copy etc. |
| |
| 2025-04-16 Jesse Huang <jesse.huang@sifive.com> |
| |
| * config/riscv/riscv.cc (riscv_file_end): Fix .p2align value. |
| |
| 2025-04-16 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.h (JUMP_TABLES_IN_TEXT_SECTION): Check if |
| large code model. |
| |
| 2025-04-16 Tejas Belagod <tejas.belagod@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Fix operand |
| order to gen_vcond_mask_*. |
| |
| 2025-04-16 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_valid_sysreg_name_p): Remove feature check. |
| (aarch64_retrieve_sysreg): Ditto. |
| |
| 2025-04-15 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR tree-optimization/71094 |
| * doc/invoke.texi (Optimize Options): Document that -fivopts is |
| enabled at -O1 and higher. Add blurb about -O0 causing GCC to |
| completely ignore most optimization options. |
| |
| 2025-04-15 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * configure: Regenerate. |
| * configure.ac: Recognise PROJECT:ld-mmmm.nn.aa as an identifier |
| for Darwin's static linker. |
| |
| 2025-04-15 Iain Sandoe <iainsandoe@mini-05-seq.local> |
| |
| PR target/116827 |
| * ginclude/stddef.h: Undefine __PTRDIFF_T and __SIZE_T for module- |
| enabled c++ on Darwin/macOS platforms. |
| |
| 2025-04-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2025-04-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/x86-tune-sched.cc (ix86_issue_rate): Set |
| to 4 for znver5. |
| |
| 2025-04-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/119298 |
| * config/i386/x86-tune-costs.h (znver5_cost): Set ADDSS cost to 3. |
| |
| 2025-04-15 Vineet Gupta <vineetg@rivosinc.com> |
| |
| PR target/119533 |
| * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): Check for |
| EDGE_ABNOMAL. |
| (pre_vsetvl::compute_lcm_local_properties): Initialize kill |
| bitmap. |
| Debug dump skipped edge. |
| |
| 2025-04-15 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/119547 |
| * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): |
| Do not perform lift if block is not transparent. |
| |
| 2025-04-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * Makefile.in (OBJS): Add ipa-locality-cloning.o. |
| * cgraph.h (set_new_clone_decl_and_node_flags): Declare prototype. |
| * cgraphclones.cc (set_new_clone_decl_and_node_flags): Remove static |
| qualifier. |
| * common.opt (fipa-reorder-for-locality): New flag. |
| (LTO_PARTITION_DEFAULT): Declare. |
| (flto-partition): Change default to LTO_PARTITION_DFEAULT. |
| * doc/invoke.texi: Document -fipa-reorder-for-locality. |
| * flag-types.h (enum lto_locality_cloning_model): Declare. |
| (lto_partitioning_model): Add LTO_PARTITION_DEFAULT. |
| * lto-cgraph.cc (lto_set_symtab_encoder_in_partition): Add dumping of |
| node and index. |
| * opts.cc (validate_ipa_reorder_locality_lto_partition): Define. |
| (finish_options): Handle LTO_PARTITION_DEFAULT. |
| * params.opt (lto_locality_cloning_model): New enum. |
| (lto-partition-locality-cloning): New param. |
| (lto-partition-locality-frequency-cutoff): Likewise. |
| (lto-partition-locality-size-cutoff): Likewise. |
| (lto-max-locality-partition): Likewise. |
| * passes.def: Register pass_ipa_locality_cloning. |
| * timevar.def (TV_IPA_LC): New timevar. |
| * tree-pass.h (make_pass_ipa_locality_cloning): Declare. |
| * ipa-locality-cloning.cc: New file. |
| * ipa-locality-cloning.h: New file. |
| |
| 2025-04-15 Martin Jambor <mjambor@suse.cz> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/119803 |
| * ipa-cp.cc (ipcp_bits_lattice::meet_with_1): Move m_value adjustmed |
| according to m_mask below the adjustment of the latter according to |
| cap_mask. Optimize the calculation of cap_mask a bit. |
| (ipcp_bits_lattice::meet_with): Optimize the calculation of cap_mask a |
| bit. |
| |
| 2025-04-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * ipa-cp.cc (ipcp_print_widest_int): Print values with all ones in |
| bits 128+ with "0xf..f" prefix instead of "all ones folled by ". |
| Simplify wide_int check for -1 or all ones above least significant |
| 128 bits. |
| |
| 2025-04-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/119801 |
| * sanitizer.def (BUILT_IN_TSAN_FUNC_EXIT): Use BT_FN_VOID rather |
| than BT_FN_VOID_PTR. |
| * tree-tailcall.cc: Include attribs.h and asan.h. |
| (struct tailcall): Add has_tsan_func_exit member. |
| (empty_eh_cleanup): Add eh_has_tsan_func_exit argument, set what |
| it points to to 1 if there is exactly one __tsan_func_exit call |
| and ignore that call otherwise. Adjust recursive call. |
| (find_tail_calls): Add RETRY_TSAN_FUNC_EXIT argument, pass it |
| to recursive calls. When seeing __tsan_func_exit call with |
| RETRY_TSAN_FUNC_EXIT 0, set it to -1. If RETRY_TSAN_FUNC_EXIT |
| is 1, initially ignore __tsan_func_exit calls. Adjust |
| empty_eh_cleanup caller. When looking through stmts after the call, |
| ignore exactly one __tsan_func_exit call but remember it in |
| t->has_tsan_func_exit. Diagnose if EH cleanups didn't have |
| __tsan_func_exit and normal path did or vice versa. |
| (optimize_tail_call): Emit __tsan_func_exit before the tail call |
| or tail recursion. |
| (tree_optimize_tail_calls_1): Adjust find_tail_calls callers. If |
| find_tail_calls changes retry_tsan_func_exit to -1, set it to 1 |
| and call it again with otherwise the same arguments. |
| |
| 2025-04-15 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR ipa/113203 |
| * doc/extend.texi (Common Function Attributes): Explain how to |
| use always_inline in programs that have multiple translation |
| units, and that LTO inlining additionally needs optimization |
| enabled. |
| |
| 2025-04-15 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/108134 |
| * doc/extend.texi: Remove documents from r11-344-g0fec3f62b9bfc0. |
| |
| 2025-04-15 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR target/42683 |
| * doc/invoke.texi (x86 Options): Clarify that -march=pentiumpro |
| doesn't include MMX. |
| |
| 2025-04-14 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/118794 |
| * config/gcn/gcn.opt (-mfake-exceptions): Support. |
| * config/nvptx/nvptx.opt (-mfake-exceptions): Likewise. |
| * config/gcn/gcn.md (define_expand "exception_receiver"): Use it. |
| * config/nvptx/nvptx.md (define_expand "exception_receiver"): |
| Likewise. |
| * config/gcn/mkoffload.cc (main): Set it. |
| * config/nvptx/mkoffload.cc (main): Likewise. |
| * config/nvptx/nvptx.cc (nvptx_assemble_integer) |
| <in_section == exception_section>: Special handling for |
| 'SYMBOL_REF's. |
| * except.cc (expand_dw2_landing_pad_for_region): Don't generate |
| bogus code for (default) |
| '#define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM'. |
| |
| 2025-04-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/119785 |
| * expmed.cc (init_expmed): Always pass QImode rather than mode to |
| set_src_cost passed to set_zero_cost. |
| |
| 2025-04-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119718 |
| * tree-pretty-print.cc (dump_generic_node) <case CALL_EXPR>: Dump |
| also CALL_EXPR_MUST_TAIL_CALL flag. |
| * calls.cc (maybe_complain_about_tail_call): Emit error about |
| CALL_EXPR_MUST_TAIL_CALL only after emitting dump message, not before |
| it. |
| |
| 2025-04-14 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * doc/install.texi: Add requirements for building gccrs. |
| |
| 2025-04-14 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/119784 |
| * config/i386/i386.cc (ix86_using_red_zone): Don't use red-zone |
| with 32 GPRs and no caller-saved registers. |
| |
| 2025-04-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/118097 |
| * ipa-cp.cc (ipa_get_jf_arith_result): Require res_operand for |
| anything except NOP_EXPR or ADDR_EXPR, document it and remove the code |
| trying to deduce it. |
| (ipa_value_from_jfunc): Use the stored and streamed type of arithmetic |
| pass-through functions. |
| (ipa_agg_value_from_jfunc): Use the stored and streamed type of |
| arithmetic pass-through functions, convert to the type used to store |
| the value if necessary. |
| (get_val_across_arith_op): New parameter op_type, pass it to |
| ipa_get_jf_arith_result. |
| (propagate_vals_across_arith_jfunc): New parameter op_type, pass it to |
| get_val_across_arith_op. |
| (propagate_vals_across_pass_through): Use the stored and streamed type |
| of arithmetic pass-through functions. |
| (propagate_aggregate_lattice): Likewise. |
| (push_agg_values_for_index_from_edge): Use the stored and streamed |
| type of arithmetic pass-through functions, convert to the type used to |
| store the value if necessary. |
| |
| 2025-04-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/118785 |
| * ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): Use the stored |
| and streamed type of arithmetic pass-through functions. |
| |
| 2025-04-14 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.cc (ipcp_print_widest_int): Also add a truncated form of |
| dumping of widest ints which only have zeros in the lowest 128 bits. |
| Update the comment. |
| (ipcp_bits_lattice::print): Also dump the mask using |
| ipcp_print_widest_int. |
| (ipcp_store_vr_results): Likewise. |
| |
| 2025-04-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/119318 |
| * ipa-cp.cc (ipcp_bits_lattice::meet_with_1): Set all mask bits |
| not covered by precision to one. |
| (ipcp_bits_lattice::meet_with): Likewise. |
| (propagate_bits_across_jump_function): Use the stored operation |
| type to perform meet with other lattices. |
| |
| 2025-04-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/118097 |
| PR ipa/118785 |
| PR ipa/119318 |
| * lto-streamer.h (lto_variably_modified_type_p): Declare. |
| * ipa-prop.h (ipa_pass_through_data): New field op_type. |
| (ipa_get_jf_pass_through_op_type): New function. |
| * ipa-prop.cc: Include lto-streamer.h. |
| (ipa_dump_jump_function): Dump also pass-through |
| operation types, if any. Dump pass-through operands only if not NULL. |
| (ipa_set_jf_simple_pass_through): Set op_type accordingly. |
| (compute_complex_assign_jump_func): Set op_type of arithmetic |
| pass-through jump_functions. |
| (analyze_agg_content_value): Update lhs when walking assighment |
| copies. Set op_type of aggregate arithmetic pass-through |
| jump_functions. |
| (update_jump_functions_after_inlining): Also transfer the operation |
| type from the source arithmentic pass-through jump function to the |
| destination jump function. |
| (ipa_write_jump_function): Stream also the op_type when necessary. |
| (ipa_read_jump_function): Likewise. |
| (ipa_agg_pass_through_jf_equivalent_p): Also compare operation types. |
| * lto-streamer-out.cc (lto_variably_modified_type_p): Make public. |
| |
| 2025-04-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119757 |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Record and compare |
| whether a stmt uses a maks. |
| |
| 2025-04-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119778 |
| * tree-inline.cc (copy_edges_for_bb): Mark calls that are |
| source of abnormal edges as altering control-flow. |
| |
| 2025-04-14 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/119779 |
| * doc/gm2.texi (Interface to assembly language): Use eax |
| rather than rax in both examples. |
| |
| 2025-04-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR driver/119727 |
| * configure.ac (HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE): New check. |
| * gcc.cc: Include sys/personality.h if |
| HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE is defined. |
| (try_generate_repro): Call |
| personality (personality (0xffffffffU) | ADDR_NO_RANDOMIZE) |
| if HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE is defined. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| |
| 2025-04-13 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc: Add z17 scheduler description. |
| * config/s390/s390.h: Ditto. |
| * config/s390/s390.md: Ditto. |
| * config/s390/9175.md: New file. |
| |
| 2025-04-13 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * common/config/s390/s390-common.cc: Rename arch15 to z17. |
| * config.gcc: Add z17. |
| * config/s390/driver-native.cc: Detect z17 machine. |
| * config/s390/s390-builtins.def (B_VXE3): Rename arch15 to z17. |
| * config/s390/s390-c.cc (s390_resolve_overloaded_builtin): Ditto. |
| * config/s390/s390-opts.h (enum processor_type): Ditto. |
| * config/s390/s390.cc: Ditto. |
| * config/s390/s390.h: Ditto. |
| * config/s390/s390.md: Ditto. |
| * config/s390/s390.opt: Add z17. |
| * doc/invoke.texi: Ditto. |
| |
| 2025-04-12 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR target/97585 |
| * doc/invoke.texi (x86 Options): Document list of extensions |
| supported by -march=x86_64, according to the declaration of |
| PTA_X86_64_BASELINE in config/i386/i386.h. |
| |
| 2025-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR driver/119727 |
| * gcc.cc (files_equal_p): Rewritten using fopen/fgets/fclose instead |
| of open/fstat/read/close. At the start of lines, ignore lowercase |
| hexadecimal addresses followed by space. |
| |
| 2025-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119722 |
| * gimple-lower-bitint.h (build_bitint_stmt_ssa_conflicts): Add |
| CLEAR argument. |
| * gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Add |
| CLEAR argument. Call clear on gimple_assign_copy_p rhs1 if lhs |
| is large/huge bitint unless lhs is not in names. |
| * tree-ssa-coalesce.cc (build_ssa_conflict_graph): Adjust |
| build_bitint_stmt_ssa_conflicts caller. Move gimple_assign_copy_p |
| handling to after the build_bitint_stmt_ssa_conflicts call. |
| |
| 2025-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119718 |
| * tree-tailcall.cc (maybe_error_musttail): Dump the GIMPLE at the |
| end of the Cannot tail-call line rather than on the line before it. |
| * calls.cc (maybe_complain_about_tail_call): Dump the GENERIC |
| at the end of the ;; Cannot tail-call line rather than on the |
| line before it. |
| |
| 2025-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119718 |
| * tree-tailcall.cc (maybe_error_musttail): Only dump into dump_file |
| if dump_flags & TDF_DETAILS. Use "Cannot tail-call: " prefix instead |
| of "Cannot convert: ". |
| (find_tail_calls, tree_optimize_tail_calls_1): Formatting fixes |
| for maybe_error_musttail calls. |
| * calls.cc (maybe_complain_about_tail_call): Emit also a message |
| into dump_file when dump_flags & TDF_DETAILS for CALL_EXPR_TAILCALL |
| calls. |
| (initialize_argument_information): Formatting fix for |
| maybe_complain_about_tail_call calls. |
| (can_implement_as_sibling_call_p, expand_call): Likewise. |
| |
| 2025-04-11 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c++/106618 |
| * doc/invoke.texi (Option Summary): Remove -fargs-in-order, add |
| -fstrong-eval-order. |
| (C++ Dialect Options): Explicitly document that -fstrong-eval-order |
| takes an optional argument and what the choices are. Generalize |
| references to C++17. |
| |
| 2025-04-11 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR middle-end/105548 |
| * doc/invoke.texi (Optimize Options): Delete misleading sentence |
| about conversions. |
| |
| 2025-04-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119707 |
| * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Only use |
| m_data[save_data_cnt] instead of m_data[save_data_cnt + 1] if |
| idx is odd and equal to low + 1. Remember tree_to_uhwi (idx) in |
| a temporary instead of calling the function multiple times. |
| |
| 2025-04-11 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR tree-optimization/87909 |
| * common.opt.urls: Regenerate. |
| * doc/invoke.texi (Option Summary): Add -ftree-cselim. |
| (Optimize Options): Likewise. |
| |
| 2025-04-11 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR middle-end/14708 |
| * doc/invoke.texi (Optimize Options): List -fexcess-precision |
| before -ffloat-store, moving some background discussion to the |
| former from the latter. Recommend using -fexcess-precision=standard |
| instead of -ffloat-store. |
| |
| 2025-04-10 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (LINK_SPEC): Add support for |
| -static-libgcobol. |
| |
| 2025-04-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/119706 |
| * gimple-expr.cc (is_gimple_mem_ref_addr): Also allow |
| POLY_INT_CST. |
| |
| 2025-04-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/119399 |
| * tree-data-ref.cc (create_waw_or_war_checks): Use a MINUS_EXPR |
| on two converted pointers, rather than converting a POINTER_DIFF_EXPR |
| on the pointers. |
| |
| 2025-04-10 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/multilib-generator: Remove the compact code model |
| and check large code model for RV32. |
| |
| 2025-04-09 Jakub Jelinek <jakub@redhat.com> |
| |
| * pretty-print.cc (pretty_printer::format): Use %.Ns instead of |
| %Ns in function comment. |
| |
| 2025-04-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/119664 |
| * config/h8300/jumpcall.md (bit test and jump define_insn_and_split): |
| Use HSI iterator rather than QHSI. |
| |
| 2025-04-09 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/riscv/riscv-vector-builtins.cc (verify_type_context): |
| Diagnose RVV types for a given OpenMP context. |
| |
| 2025-04-09 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/119689 |
| PR rtl-optimization/115568 |
| * lra-remat.cc (create_cands): Use prev_nonnote_nondebug_insn |
| to check whether insn2 is directly before insn. |
| |
| 2025-04-09 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR middle-end/116595 |
| * expr.cc (categorize_ctor_elements_1): Use |
| constant_lower_bound. |
| |
| 2025-04-09 Yang Yujie <yangyujie@loongson.cn> |
| |
| * config/loongarch/genopts/gen-evolution.awk: remove |
| usage of "asort". |
| * config/loongarch/genopts/genstr.sh: replace sed with awk. |
| |
| 2025-04-08 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c++/90468 |
| * doc/invoke.texi (Warning Options): Clean up text describing |
| -Wno-xxx. |
| |
| 2025-04-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/119672 |
| * simplify-rtx.cc (simplify_context::simplify_relational_operation_1): |
| For POPCOUNT == 0 or != 0 optimizations use |
| CONST0_RTX (GET_MODE (XEXP (op0, 0))) rather than const0_rtx. |
| |
| 2025-04-08 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR middle-end/119662 |
| * gimplify.cc (modify_call_for_omp_dispatch): Fix GOMP_interop |
| arg passing; add location info to function calls. |
| |
| 2025-04-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/119678 |
| * config/riscv/freebsd.h (LINK_SPEC): Use FBSD_LINK_PG_NOTE rather |
| than non-existing FBSD_LINK_PG_NOTES. |
| |
| 2025-04-08 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls) |
| [!ACCEL_COMPILER]: Don't define label 'emit_ptx_alias'. |
| |
| 2025-04-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/119594 |
| * cse.cc (count_reg_usage): Count even x == dest regs if they have |
| non-zero counts already and incr is positive. |
| |
| 2025-04-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR lto/119625 |
| * lto-opts.cc (lto_write_options): Mask of CF_SET from |
| global_options.x_flag_cf_protection. |
| |
| 2025-04-08 Tejas Belagod <tejas.belagod@arm.com> |
| Andrea Corallo <andrea.corallo@arm.com> |
| |
| * target.h (type_context_kind): Add new context kinds for target clauses. |
| (omp_type_context): Query if the context is of OMP kind. |
| * config/aarch64/aarch64-sve-builtins.cc (verify_type_context): Diagnose |
| SVE types for a given OpenMP context. |
| (omp_type_context): New. |
| * gimplify.cc (omp_notice_variable): Diagnose implicitly-mapped SVE |
| objects in OpenMP regions. |
| (gimplify_scan_omp_clauses): Diagnose SVE types for various target |
| clauses. |
| |
| 2025-04-08 Tejas Belagod <tejas.belagod@arm.com> |
| |
| * tree.h (strip_pointer_types): New. |
| |
| 2025-04-08 Richard Sandiford <richard.sandiford@arm.com> |
| Tejas Belagod <tejas.belagod@arm.com> |
| |
| PR middle-end/101018 |
| * poly-int.h (can_and_p): New function. |
| * fold-const.cc (poly_int_binop): Use it to optimize BIT_AND_EXPRs |
| involving POLY_INT_CSTs. |
| * gimplify.cc (omp_notice_variable): Use poly_int_tree_p instead |
| of INTEGER_CST when checking for constant-sized omp data. |
| (gimplify_adjust_omp_clauses_1): Likewise. |
| (gimplify_adjust_omp_clauses): Likewise. |
| * omp-low.cc (scan_sharing_clauses): Likewise. |
| |
| 2025-04-08 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/i386.h (PTA_DIAMONDRAPIDS): Add PTA_AVX10_1_256. |
| |
| 2025-04-08 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/vector.md: Disable vsext/vzext for XTheadVector. |
| |
| 2025-04-07 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/113257 |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Apple-a12, |
| Apple-M1, Apple-M2, Apple-M3 with expanded names to allow for the |
| LITTLE.big versions. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Add apple-m1,2 and 3 cores to the ones listed |
| for arch and tune selections. |
| |
| 2025-04-07 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx.opt (-mfake-ptx-alloca): Update. |
| |
| 2025-04-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/118924 |
| * tree-sra.cc (create_total_scalarization_access): Set |
| grp_same_access_path flag to zero. |
| |
| 2025-04-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/118924 |
| * tree-ssa-alias-compare.h (types_equal_for_same_type_for_tbaa_p): |
| Declare. |
| * tree-ssa-alias.cc: Include ipa-utils.h. |
| (types_equal_for_same_type_for_tbaa_p): New public overloaded variant. |
| * tree-sra.cc: Include tree-ssa-alias-compare.h. |
| (create_access): Initialzie grp_same_access_path to true. |
| (build_accesses_from_assign): Detect tbaa hazards and clear |
| grp_same_access_path fields of involved accesses when they occur. |
| (sort_and_splice_var_accesses): Take previous values of |
| grp_same_access_path into account. |
| |
| 2025-04-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119640 |
| * tree-vect-stmts.cc (vectorizable_shift): Always insert code |
| for one of our SLP operands before the code for the vector |
| shift itself. |
| |
| 2025-04-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119614 |
| * tree-tailcall.cc (find_tail_calls): Remember edges which have been |
| walked through if !ass_var. Perform IPA-VRP workaround even when |
| ret_var is not TREE_CONSTANT, in that case check in a loop if it is |
| a PHI result and in that case look at the PHI argument from |
| corresponding edge in the edge vector. |
| |
| 2025-04-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR testsuite/116398 |
| * params.opt (-param=max-combine-search-insns=): New param. |
| * doc/invoke.texi: Document it. |
| * combine.cc (insn_link::insn_count): New field. |
| (alloc_insn_link): Initialize it. |
| (distribute_links): Add a limit parameter. |
| (try_combine): Use the new param to limit distribute_links |
| when only i3 has changed. |
| |
| 2025-04-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR testsuite/116398 |
| * combine.cc (distribute_links): Take an optional start point. |
| (try_combine): If only i3 has changed, only distribute i3's links, |
| not i2's. Start the search for the new use from i3 rather than |
| from the definition instruction. Likewise start the search for |
| the new use from i2 when distributing i2's links. |
| |
| 2025-04-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR testsuite/116398 |
| * combine.cc (try_combine): Shortcut the split_i2i3 handling if |
| i2 is unchanged. |
| |
| 2025-04-07 Richard Sandiford <richard.sandiford@arm.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR testsuite/116398 |
| * combine.cc (try_combine): Reallow 2->2 combinations. Detect when |
| only i3 has changed and restart from i3 in that case. |
| |
| 2025-04-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * simplify-rtx.cc (simplify_const_relational_operation): Generalize |
| the constant checks in the fold-via-minus path to match the |
| INTEGRAL_MODE_P condition. |
| |
| 2025-04-06 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (Boolean Type): Further clarify support for |
| _Bool in C23 and C++. |
| |
| 2025-04-06 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR middle-end/78874 |
| * doc/invoke.texi (Warning Options): Fix description of |
| -Wno-aggressive-loop-optimizations to reflect that this turns |
| off the warning, and the default is for it to be enabled. |
| |
| 2025-04-06 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/81831 |
| * doc/invoke.texi (Option Summary): Add -Wno-psabi. |
| (Warning Options): Document -Wpsabi separately from -Wabi. |
| Note it's enabled by default, not just implied by -Wabi. |
| Replace the detailed example for a GCC 4.4 change for x86 |
| (which is unlikely to be very interesting nowadays) with |
| just a list of all targets that presently diagnose these |
| warnings. |
| (RS/6000 and PowerPC Options): Add cross-references for |
| -Wno-psabi. |
| |
| 2025-04-05 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR middle-end/112589 |
| * common.opt (-fcf-protection): Add documentation string. |
| * doc/invoke.texi (Option Summary): Add entry for -fcf-protection |
| without argument. |
| (Instrumentation Options): Tidy the -fcf-protection entry and |
| and add documention for the form without an argument. |
| |
| 2025-04-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR lto/119625 |
| * lto-opts.cc (lto_write_options): If neither flag_pic nor |
| flag_pie are set, check first for flag_pie and only later |
| for flag_pic rather than the other way around, use a temporary |
| variable. If flag_cf_protection is not set, don't append anything |
| if flag_cf_protection is none of CF_{NONE,FULL,BRANCH,RETURN} and |
| use a temporary variable. |
| |
| 2025-04-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR gcov-profile/119618 |
| * profile.cc (branch_prob): Only check for musttail calls if |
| cfun->has_musttail. Use gsi_last_nondebug_bb instead of gsi_last_bb. |
| |
| 2025-04-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119616 |
| * tree-tailcall.cc (suitable_for_tail_call_opt_p): Move checking |
| for addressable parameters from here ... |
| (find_tail_calls): ... here. If cfun->has_musttail, don't clear |
| opt_tailcalls for it, instead set a local flag and punt if we can't |
| tail recurse optimize it. |
| |
| 2025-04-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/119613 |
| * cfgrtl.cc (purge_dead_edges): Remove REG_EH_REGION notes from |
| tail calls. |
| |
| 2025-04-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/115910 |
| * rtlanal.cc (pattern_cost): Return at least COSTS_N_INSNS (1) |
| rather than just COSTS_N_INTNS (1) for cost <= 0. |
| * config/i386/i386.cc (ix86_rtx_costs): Set *total to 1 for |
| TARGET_64BIT x86_64_zext_immediate_operand constants. |
| |
| 2025-04-04 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR ipa/119599 |
| * tree-cfg.cc (pass_warn_function_return::execute): Turn return statements always |
| into __builtin_unreachable calls. |
| |
| 2025-04-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119614 |
| * tree-tailcall.cc (find_tail_calls): Handle also pointer types in the |
| IPA-VRP workaround. |
| |
| 2025-04-03 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/119573 |
| * config/nvptx/nvptx.cc (nvptx_encode_section_info): Don't set |
| 'DATA_AREA_CONST' for 'TREE_CONSTANT', or 'TREE_READONLY'. |
| (nvptx_asm_declare_constant_name): Use '.global' instead of |
| '.const'. |
| |
| 2025-04-03 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/119308 |
| * config/rs6000/rs6000-logue.cc (rs6000_output_function_epilogue): |
| Handle GCC COBOL for the tbtab lang field. |
| |
| 2025-04-03 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (Statement Attributes): Copy-edit the musttail |
| attribute documentation and correct the comment in the last |
| example. |
| |
| 2025-04-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/x86-tune-costs.h (ix86_size_cost): Fix sizes of move |
| instructions |
| |
| 2025-04-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR cobol/119242 |
| * fold-const.h (native_encode_wide_int): Declare. |
| * fold-const.cc (native_encode_wide_int): New function. |
| (native_encode_int): Use it. |
| |
| 2025-04-03 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/genopts/gen-evolution.awk: Avoid using gensub |
| that FreeBSD awk lacks. |
| |
| 2025-04-03 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/119539 |
| * config/i386/i386.md (*<insn><mode>3_mask): Emit NF variant of |
| rotate when APX_NF enabled, and use force_lowpart_subreg. |
| (*<insn><mode>3_mask_1): Likewise. |
| |
| 2025-04-03 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/101440 |
| * doc/extend.texi (Common Function Attributes): Clean up some |
| confusing language in the description of the "access" attribute. |
| |
| 2025-04-02 Sandra Loosemore <sloosemore@baylibre.com> |
| GUO Yixuan <culu.gyx@gmail.com> |
| |
| PR driver/58973 |
| * common.opt (Werror, Werror=): Use less awkward wording in |
| description. |
| (pedantic-errors): Likewise. |
| * doc/invoke.texi (Warning Options): Likewise for -Werror and |
| -Werror= here. |
| |
| 2025-04-02 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/119572 |
| * config/riscv/autovec.md: Mask broadcast value. |
| |
| 2025-04-02 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/bitmanip.md: The optimization can only be applied if |
| the high bit of operands[3] is set to 1. |
| |
| 2025-04-02 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/114957 |
| PR c/78008 |
| PR c++/60972 |
| * doc/extend.texi (Structure-Layout Pragmas): Add @cindex |
| entries and reformat the pragma descriptions to match the markup |
| used for other pragmas. Document what #pragma pack(0) does. |
| Add cross-references to similar attributes. |
| |
| 2025-04-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119491 |
| * tree-tailcall.cc (single_non_eh_succ_edge): New function. |
| (independent_of_stmt_p): Use single_non_eh_succ_edge (bb)->dest |
| instead of single_succ (bb). |
| (empty_eh_cleanup): New function. |
| (find_tail_calls): Diagnose throwing of exceptions which do not |
| propagate only if there are no EDGE_EH successor edges. If there are |
| and the call is musttail, use empty_eh_cleanup to find if the cleanup |
| is not empty. If not or the call is not musttail, use different |
| diagnostics. Set is_noreturn even if there are successor edges. Use |
| single_non_eh_succ_edge (abb) instead of single_succ_edge (abb). Punt |
| on internal noreturn calls. |
| (decrease_profile): Don't assert 0 or 1 successor edges. |
| (eliminate_tail_call): Use |
| single_non_eh_succ_edge (gsi_bb (t->call_gsi)) instead of |
| single_succ_edge (gsi_bb (t->call_gsi)). |
| (tree_optimize_tail_calls_1): Also look into basic blocks with |
| single succ edge which is EDGE_EH for noreturn musttail calls. |
| |
| 2025-04-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119586 |
| * tree-vect-stmts.cc (vectorizable_load): Assume we got |
| alignment analysis for VMAT_STRIDED_SLP wrong. |
| (vectorizable_store): Likewise. |
| |
| 2025-04-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/extend.texi (musttail statement attribute): Hint how |
| to avoid -Wmaybe-musttail-local-addr warnings. |
| |
| 2025-04-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/119376 |
| * common.opt (Wmusttail-local-addr, Wmaybe-musttail-local-addr): New. |
| * tree-tailcall.cc (suitable_for_tail_call_opt_p): Don't fail for |
| TREE_ADDRESSABLE PARM_DECLs for musttail calls if diag_musttail. |
| Emit -Wmusttail-local-addr warnings. |
| (maybe_error_musttail): Use gimple_location instead of directly |
| accessing location member. |
| (find_tail_calls): For musttail calls if diag_musttail, don't fail |
| if address of local could escape to the call, instead emit |
| -Wmaybe-musttail-local-addr warnings. Emit |
| -Wmaybe-musttail-local-addr warnings also for address taken |
| parameters. |
| * common.opt.urls: Regenerate. |
| * doc/extend.texi (musttail statement attribute): Clarify local |
| variables without non-trivial destruction are considered out of scope |
| before the tail call instruction. |
| * doc/invoke.texi (-Wno-musttail-local-addr, |
| -Wmaybe-musttail-local-addr): Document. |
| |
| 2025-04-02 Andi Kleen <ak@gcc.gnu.org> |
| |
| PR middle-end/119482 |
| * bitmap.cc (bitmap_set_bit): Write back value unconditionally |
| |
| 2025-04-02 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c++/118982 |
| * doc/extend.texi (Common Function Attributes): For the |
| constructor/destructory attribute, be more explicit about the |
| relationship between the constructor attribute and |
| the C++ init_priority attribute, and add a cross-reference. |
| Also document that most targets support this. |
| (C++ Attributes): Similarly for the init_priority attribute. |
| |
| 2025-04-01 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/118118 |
| * doc/extend.texi (Boolean Type): New section. |
| |
| 2025-04-01 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/117689 |
| * doc/extend.texi (Incomplete Enums): Rename to.... |
| (Enum Extensions): This. Document support for specifying the |
| underlying type of an enum as an extension in all earlier C |
| and C++ standards. Document that a forward declaration with |
| underlying type is not an incomplete type, and which dialects |
| GCC supports that in. |
| |
| 2025-04-01 Tom Tromey <tromey@adacore.com> |
| |
| * dwarf2out.cc (modified_type_die): Use mod_scope for |
| ranged types, base types, and array types. |
| |
| 2025-04-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119493 |
| * tree-tailcall.cc (find_tail_calls): Don't punt on tail recusion |
| if some arguments don't have is_gimple_reg_type, only punt if they |
| have non-POD types, or volatile, or addressable or (for now) it is |
| not a musttail call. Set tailr_arg_needs_copy in those cases too. |
| (eliminate_tail_call): Copy call arguments to params if they don't |
| have is_gimple_reg_type, use temporaries if the argument is used |
| later. |
| (tree_optimize_tail_calls_1): Skip !is_gimple_reg_type |
| tailr_arg_needs_copy parameters. Formatting fix. |
| |
| 2025-04-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/119291 |
| * combine.cc (try_combine): For splitting of PARALLEL with |
| 2 independent SETs into i2 and i3 sets check reg_used_between_p |
| of the SET_DESTs rather than just modified_between_p. |
| |
| 2025-04-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119534 |
| * tree-vect-stmts.cc (get_load_store_type): Reject |
| VECTOR_BOOLEAN_TYPE_P offset vector type for emulated gathers. |
| |
| 2025-04-01 Martin Uecker <uecker@tugraz.at> |
| |
| PR c/119173 |
| * doc/invoke.texi (Warning Options): Move to general options. |
| |
| 2025-04-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR gcov-profile/119535 |
| * profile.cc (branch_prob): Ignore any edges from bbs ending with |
| musttail call, rather than only EDGE_FAKE edges from those to EXIT. |
| |
| 2025-04-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119493 |
| * tree-tailcall.cc (tree_optimize_tail_calls_1): Ignore tail recursion |
| candidates which need accumulators if there is at least one musttail |
| non-recursive call. |
| |
| 2025-04-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/119537 |
| * gimplify.cc (find_used_user_labels): New function. |
| (gimplify_call_expr): Don't remove complex assume expression at -O0 |
| if it defines any user labels. |
| * gimple-low.cc: Include diagnostic-core.h. |
| (assume_labels): New variable. |
| (diagnose_assume_labels): New function. |
| (lower_function_body): Call it via walk_gimple_seq if assume_labels |
| is non-NULL, then BITMAP_FREE assume_labels. |
| (find_assumption_locals_r): Record in assume_labels uids of user |
| labels defined in assume attribute expressions. |
| |
| 2025-04-01 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/119369 |
| * config/gcn/gcn-protos.h (gcn_asm_weaken_decl): Declare. |
| * config/gcn/gcn.cc (gcn_asm_weaken_decl): New. |
| * config/gcn/gcn-hsa.h (ASM_WEAKEN_DECL): '#define' to this. |
| |
| 2025-04-01 Richard Biener <rguenther@suse.de> |
| |
| PR target/119549 |
| * common/config/i386/i386-common.cc (ix86_handle_option): |
| Assert that both OPT_msse4 and OPT_mno_sse4 are never unset. |
| * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): |
| Process negated OPT_msse4 as OPT_mno_sse4. |
| |
| 2025-04-01 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR middle-end/119559 |
| * gimplify.cc (modify_call_for_omp_dispatch): Reorder checks to avoid |
| asserts and bogus diagnostic. |
| |
| 2025-04-01 Hu, Lin1 <lin1.hu@intel.com> |
| Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/119473 |
| * config/i386/sse.md |
| (vaesdec_<mode>): Set attr "isa" as "avx,vaes_avx512vl", "type" as |
| "sselog1", "mode" as "TI". |
| (vaesdeclast_<mode>): Ditto. |
| (vaesenc_<mode>): Ditto. |
| (vaesenclast_<mode>): Ditto. |
| |
| 2025-04-01 Monk Chiang <monk.chiang@sifive.com> |
| Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-v.cc: Add restrict for insert LMUL. |
| * config/riscv/riscv-vector-builtins-types.def: |
| Use RVV_REQUIRE_ELEN_64 to check LMUL number. |
| * config/riscv/riscv-vector-switch.def: Likewise. |
| * config/riscv/vector-iterators.md: Check TARGET_VECTOR_ELEN_64 |
| rather than "TARGET_MIN_VLEN > 32" for all iterator. |
| |
| 2025-04-01 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * doc/invoke.texi: Corrected the position of '-mtls-dialect=opt' |
| option. |
| |
| 2025-03-31 Jørgen Kvalsvik <j@lambda.is> |
| |
| PR gcov-profile/119553 |
| * path-coverage.cc (find_paths): Return path count, don't |
| write to gcno, and rename to ... |
| (instrument_prime_paths): ... this. |
| * profile.cc (branch_prob): Write path counts to gcno. |
| |
| 2025-03-31 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/116960 |
| PR c++/119303 |
| * diagnostic.cc (diagnostic_context::report_diagnostic): Check for |
| non-zero m_lock later, after checking diagnostic_enabled. |
| |
| 2025-03-31 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (SME): Remove SVE2 as |
| prerequisite and add in FCMA and F16FML. |
| * config/aarch64/aarch64.cc (aarch64_override_options_internal): |
| Diagnose use of SME without SVE2 and implicitly enable SVE2 when |
| enabling SME after streaming mode diagnosis. |
| * doc/invoke.texi (sme): Document that this can only be used with the |
| sve2 extension. |
| |
| 2025-03-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119532 |
| * tree-tailcall.cc (process_assignment): FAIL for fixed-point |
| typed functions. |
| |
| 2025-03-31 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR middle-end/119541 |
| * gimplify.cc (modify_call_for_omp_dispatch): Limit interop claues |
| processing by the number of append_args arguments. |
| |
| 2025-03-31 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/119442 |
| * expr.cc (store_constructor): Also allow element modes explicitly |
| accepted by target vec_duplicate pattern. |
| |
| 2025-03-31 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/sse.md (*vmov<mode>_constm1_pternlog_false_dep): |
| Add mode attribute. |
| |
| 2025-03-31 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_sse_mov_fp_load, |
| znver5_sse_mov_fp_load): Also match ssemov2. |
| |
| 2025-03-31 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_sse_log_evex_store, |
| znver5_sse_log_evex_store): New reservations. |
| |
| 2025-03-31 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_sse_icvt): Use sseicvt. |
| (znver4_sse_icvt_store): Likewise. |
| (znver5_sse_icvt_store): Likewise. |
| (znver4_sse_icvt2): New. |
| |
| 2025-03-31 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_sse_div_pd, |
| znver4_sse_div_pd_load, znver5_sse_div_pd_load): Handle DFmode. |
| |
| 2025-03-31 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_sse_cmp_avx128, |
| znver5_sse_cmp_avx128): Handle TImode. |
| (znver4_sse_cmp_avx256, znver5_sse_cmp_avx256): Handle OImode. |
| (znver4_sse_cmp_avx512, znver5_sse_cmp_avx512): Handle XImode. |
| |
| 2025-03-31 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_sse_test): Drop test of |
| prefix_extra attribute. |
| |
| 2025-03-31 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_sse_log1): Rename to |
| znver4_sse_log1_store. |
| (znver5_sse_log1): Rename to znver5_sse_log1_store. |
| (znver4_sse_log1): New memory-less variant. |
| |
| 2025-03-30 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (New/Delete Builtins): Cleanup up the text and |
| explicitly list the builtins being documented. |
| |
| 2025-03-30 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/42270 |
| * doc/extend.texi (Numeric Builtins): Move Integer Overflow Builtins |
| section here, as a subsection. |
| |
| 2025-03-30 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/42270 |
| * doc/extend.texi (Atomic Memory Access): New section. |
| (__sync Builtins): Make it a subsection of the above. |
| (Atomic Memory Access): Likewise. |
| (x86 specific memory model extensions for transactional memory): |
| Delete this section, incorporating the text into the discussion |
| of __atomic builtins. |
| |
| 2025-03-30 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/42270 |
| * doc/extend.texi (Built-in Functions): Incorporate some text |
| formerly in "Other Builtins" into the introduction. Adjust |
| menu for new sections. |
| (Library Builtins): New section, split from "Other Builtins". |
| (Numeric Builtins): Likewise. |
| (Stack Allocation): Likewise. |
| (Constructing Calls): Move __builtin_call_with_static_chain here. |
| (Object Size Checking): Minor copy-editing. |
| (Other Builtins): Move text to new sections listed above. Delete |
| duplicate docs for object-size checking builtins. |
| * doc/invoke.texi (C dialect options): Update @xref for -fno-builtin. |
| |
| 2025-03-30 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/42270 |
| * doc/extend.texi (C Extensions): Move menu items for |
| builtin-related sections to... |
| (Built-in Functions): New chapter. |
| * doc/gcc.texi (Introduction): Add menu entry for new chapter. |
| |
| 2025-03-30 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/42270 |
| * doc/extend.texi (Attributes): New section. |
| (Function Attributes): Make it a subsection of the new section. |
| (Variable Attributes): Likewise. |
| (Type Attributes): Likewise. |
| (Label Attributes): Likewise. |
| (Enumerator Attributes): Likewise. |
| (Attribute Syntax): Likewise. |
| |
| 2025-03-30 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/42270 |
| * doc/extend.texi (Function Attributes): Merge text from "Target |
| Format Checks" into the main discussion of the format and |
| format_arg attributes. |
| (Target Format Checks): Delete section. |
| |
| 2025-03-30 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| PR target/117759 |
| * config/alpha/alpha-protos.h |
| (alpha_expand_unaligned_store_safe_partial): New prototype. |
| * config/alpha/alpha.cc (alpha_expand_movmisalign) |
| (alpha_expand_block_move, alpha_expand_block_clear): Handle |
| TARGET_SAFE_PARTIAL. |
| (alpha_expand_unaligned_store_safe_partial) |
| (alpha_expand_unaligned_store_words_safe_partial) |
| (alpha_expand_clear_safe_partial_nobwx): New functions. |
| * config/alpha/alpha.md (insvmisaligndi): Handle |
| TARGET_SAFE_PARTIAL. |
| * config/alpha/alpha.opt (msafe-partial): New option. |
| * config/alpha/alpha.opt.urls: Regenerate. |
| * doc/invoke.texi (Option Summary, DEC Alpha Options): Document |
| the new option. |
| |
| 2025-03-30 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| PR target/117759 |
| * config/alpha/alpha-modes.def (OI): New integer mode. |
| * config/alpha/alpha-protos.h (alpha_expand_mov_safe_bwa): New |
| prototype. |
| * config/alpha/alpha.cc (alpha_expand_mov_safe_bwa): New |
| function. |
| (alpha_secondary_reload): Handle TARGET_SAFE_BWA. |
| * config/alpha/alpha.md (aligned_store_safe_bwa) |
| (unaligned_store<mode>_safe_bwa, reload_out<mode>_safe_bwa) |
| (reload_out<mode>_unaligned_safe_bwa): New expanders. |
| (mov<mode>, movcqi, reload_out<mode>_aligned): Handle |
| TARGET_SAFE_BWA. |
| (reload_out<mode>): Guard against TARGET_SAFE_BWA. |
| * config/alpha/alpha.opt (msafe-bwa): New option. |
| * config/alpha/alpha.opt.urls: Regenerate. |
| * doc/invoke.texi (Option Summary, DEC Alpha Options): Document |
| the new option. |
| |
| 2025-03-30 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| * function.h (struct function): Add |
| `split_basic_blocks_after_reload' member. |
| * lra.cc (lra): Handle it. |
| * reload1.cc (reload): Likewise. |
| |
| 2025-03-30 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| * config/alpha/alpha-protos.h (alpha_emit_unlikely_jump): New |
| prototype. |
| * config/alpha/alpha.cc (emit_unlikely_jump): Rename to... |
| (alpha_emit_unlikely_jump): ... this. Return the insn emitted. |
| (alpha_split_atomic_op, alpha_split_compare_and_swap) |
| (alpha_split_compare_and_swap_12, alpha_split_atomic_exchange) |
| (alpha_split_atomic_exchange_12): Update call sites accordingly. |
| |
| 2025-03-30 LIU Hao <lh_mouse@126.com> |
| |
| * config/mingw/winnt.cc (mingw_pe_file_end): Add `.p2align`. |
| |
| 2025-03-29 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR cobol/119283 |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac: Check for host memrchr. |
| |
| 2025-03-29 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * doc/invoke.texi: Modify the description of '-mld-seq-sa'. |
| |
| 2025-03-29 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch-def.cc |
| (la464_align): Add settings for labels. |
| (la664_align): Likewise. |
| * config/loongarch/loongarch-opts.cc |
| (loongarch_target_option_override): Likewise. |
| * config/loongarch/loongarch-tune.h |
| (struct loongarch_align): Implement the function `label_`. |
| |
| 2025-03-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2025-03-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (gcc.srcextra): Use sed to turn .../gcc/gengtype-lex.l |
| in #line directives into just gengtype-lex.l. |
| |
| 2025-03-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| * range-op.cc (operator_mult::op1_range): If the LHS does not |
| contain zero, return non-zero. |
| |
| 2025-03-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119483 |
| * tree-tailcall.cc (find_tail_calls): Handle noreturn musttail |
| calls. |
| (eliminate_tail_call): Likewise. |
| (tree_optimize_tail_calls_1): If cfun->has_musttail and |
| diag_musttail, handle also basic blocks with no successors |
| with noreturn musttail calls. |
| * calls.cc (can_implement_as_sibling_call_p): Allow ECF_NORETURN |
| calls if they are musttail calls. |
| |
| 2025-03-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/119484 |
| * ipa-sra.cc (isra_analyze_call): Don't set m_return_ignored if |
| gimple_call_must_tail_p even if it doesn't have lhs. |
| |
| 2025-03-28 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.h (native_encode_real): Export. |
| * fold-const.cc (native_encode_real): Change API to take |
| mode and REAL_VALUE_TYPE. |
| (native_encode_expr): Adjust. |
| |
| 2025-03-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.cc (ix86_redzone_clobber): Use integer, not rtx |
| as the third argument of plus_constant. |
| |
| 2025-03-27 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_insn_both, znver5_insn_both): |
| New reservation for ALU ops with load and store. |
| |
| 2025-03-27 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_sse_add, znver4_sse_add_load, |
| znver5_sse_add_load, znver4_sse_add1, znver4_sse_add1_load, |
| znver5_sse_add1_load, znver4_sse_mul, znver4_sse_mul_load, |
| znver5_sse_mul_load, znver4_sse_cvt, znver4_sse_cvt_load, |
| znver5_sse_cvt_load, znver4_sse_shuf, znver5_sse_shuf, |
| znver4_sse_shuf_load, znver5_sse_shuf_load, |
| znver4_sse_cmp_avx128, znver5_sse_cmp_avx128, |
| znver4_sse_cmp_avx128_load, znver5_sse_cmp_avx128_load): |
| Also handle DFmode. |
| (znver4_sse_muladd_load, znver5_sse_muladd_load): Use |
| ssemuladd type. |
| |
| 2025-03-27 Tobias Burnus <tburnus@baylibre.com> |
| |
| * gimplify.cc (modify_call_for_omp_dispatch): Remove sorry. |
| |
| 2025-03-27 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/neon.md (<fmaxmin><mode>3): Move pattern from here... |
| * config/arm/vec-common.md (<fmaxmin><mode>3): ... to here. Convert |
| to define_expand and disable the pattern when denormal values might |
| get truncated to zero. Iterate on VF to add V4HF and V8HF variants. |
| |
| 2025-03-27 Hu, Lin1 <lin1.hu@intel.com> |
| |
| PR target/119425 |
| * config/i386/sse.md: |
| (vec_set<mode>_0): Set the alternative with constraint "jm"'s |
| attribute "addr" to "gpr16". |
| (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>): |
| Ditto. |
| (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ditto. |
| (avx2_pblendd<mode>): Ditto. |
| (aesenc): Ditto. |
| (aesenclast): Ditto. |
| (aesdec): Ditto. |
| (aesdeclast): Ditto. |
| (vaesdec_<mode>): Ditto. |
| (vaesdeclast_<mode>): Ditto. |
| (vaesenc_<mode>):: Ditto. |
| (vaesenclast_<mode>):: Ditto. |
| (aes<aesklvariant>u8): Ditto. |
| (*aes<aeswideklvariant>u8): Ditto. |
| |
| 2025-03-27 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/119408 |
| * config/loongarch/loongarch.cc |
| (loongarch_c_mode_for_suffix): New. |
| (TARGET_C_MODE_FOR_SUFFIX): Define. |
| |
| 2025-03-26 Jørgen Kvalsvik <j@lambda.is> |
| |
| * builtins.cc (expand_builtin_fork_or_exec): Call |
| coverage_instrumentation_p. |
| * ipa-inline.cc (can_early_inline_edge_p): Likewise. |
| * passes.cc (finish_optimization_passes): Likewise. |
| * profile.cc (coverage_instrumentation_p): New function. |
| * profile.h (coverage_instrumentation_p): New declaration. |
| * tree-profile.cc (tree_profiling): Call |
| coverage_instrumentation_p. |
| (pass_ipa_tree_profile::gate): Likewise. |
| * value-prof.h (coverage_instrumentation_p): New declaration. |
| |
| 2025-03-26 Jørgen Kvalsvik <j@lambda.is> |
| |
| * Makefile.in (OBJS): Add prime-paths.o, path-coverage.o. |
| (GTFILES): Add prime-paths.cc, path-coverage.cc |
| (GCOV_OBJS): Add graphds.o, prime-paths.o, bitmap.o |
| * builtins.cc (expand_builtin_fork_or_exec): Check |
| path_coverage_flag. |
| * collect2.cc (main): Add -fno-path-coverage to OBSTACK. |
| * common.opt: Add new options -fpath-coverage, |
| -fpath-coverage-limit, -Wcoverage-too-many-paths |
| * doc/gcov.texi: Add --prime-paths, --prime-paths-lines, |
| --prime-paths-source documentation. |
| * doc/invoke.texi: Add -fpath-coverage, -fpath-coverage-limit, |
| -Wcoverage-too-many-paths documentation. |
| * gcc.cc: Link gcov on -fpath-coverage. |
| * gcov-counter.def (GCOV_COUNTER_PATHS): New. |
| * gcov-io.h (GCOV_TAG_PATHS): New. |
| (GCOV_TAG_PATHS_LENGTH): New. |
| (GCOV_TAG_PATHS_NUM): New. |
| * gcov.cc (class path_info): New. |
| (struct coverage_info): Add paths, paths_covered. |
| (find_prime_paths): New. |
| (add_path_counts): New. |
| (find_arc): New. |
| (print_usage): Add -e, --prime-paths, --prime-paths-lines, |
| --prime-paths-source. |
| (process_args): Likewise. |
| (json_set_prime_path_coverage): New. |
| (output_json_intermediate_file): Call |
| json_set_prime_path_coverage. |
| (process_all_functions): Call find_prime_paths. |
| (generate_results): Call add_path_counts. |
| (read_graph_file): Read path counters. |
| (read_count_file): Likewise. |
| (function_summary): Print path counts. |
| (file_summary): Likewise. |
| (print_source_line): New. |
| (print_prime_path_lines): New. |
| (print_inlined_separator): New. |
| (print_prime_path_source): New. |
| (output_path_coverage): New. |
| (output_lines): Print path coverage. |
| * ipa-inline.cc (can_early_inline_edge_p): Check |
| path_coverage_flag. |
| * passes.cc (finish_optimization_passes): Likewise. |
| * profile.cc (branch_prob): Likewise. |
| * selftest-run-tests.cc (selftest::run_tests): Run path coverage |
| tests. |
| * selftest.h (path_coverage_cc_tests): New declaration. |
| * tree-profile.cc (tree_profiling): Check path_coverage_flag. |
| (pass_ipa_tree_profile::gate): Likewise. |
| * path-coverage.cc: New file. |
| * prime-paths.cc: New file. |
| |
| 2025-03-26 Jørgen Kvalsvik <j@lambda.is> |
| |
| * gcov.cc (generate_results): Count branches, conditions. |
| (function_summary): Output branch, calls, condition count. |
| |
| 2025-03-26 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR driver/101544 |
| * gcc.cc (driver_handle_option): Forward host '-lstdc++' to |
| offloading compilation. |
| * config/gcn/mkoffload.cc (main): Adjust. |
| * config/nvptx/mkoffload.cc (main): Likewise. |
| |
| 2025-03-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119417 |
| * tree-ssa-math-opts.cc (convert_mult_to_widen): Before changing |
| typeN because actual_precision/from_unsignedN differs cast rhsN |
| to typeN if it has a different type. |
| (convert_plusminus_to_widen): Before changing |
| typeN because actual_precision/from_unsignedN differs cast mult_rhsN |
| to typeN if it has a different type. |
| |
| 2025-03-26 Jakub Jelinek <jakub@redhat.com> |
| Andi Kleen <ak@gcc.gnu.org> |
| |
| PR gcov-profile/118442 |
| * profile.cc (branch_prob): Ignore EDGE_FAKE edges from musttail calls |
| to EXIT. |
| |
| 2025-03-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/119450 |
| * config/i386/i386.md (narrow test peephole2): Test for |
| offsettable_memref_p in condition. |
| |
| 2025-03-26 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_sse_mov_fp, znver4_sse_mov_fp_load, |
| znver5_sse_mov_fp_load, znver4_sse_mov_fp_store, |
| znver5_sse_mov_fp_store): Also match V1SF and DF. |
| |
| 2025-03-26 Richard Biener <rguenther@suse.de> |
| |
| PR target/119010 |
| * config/i386/zn4zn5.md (znver4_imov_double_store, |
| znver5_imov_double_store, znver4_imov_store, znver5_imov_store): |
| New reservations for integer stores. |
| |
| 2025-03-26 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/118795 |
| * match.pd (vec_perm <vec_perm <a, b>> -> vec_perm <a, b>): |
| Use the appropriate check to see whether the original |
| outer permute was supported. |
| |
| 2025-03-26 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2-512convertintrin.h (_mm512_mask_cvtx2ps_ph): Formatting fixes |
| (_mm512_mask_cvtx_round2ps_ph): Ditto |
| (_mm512_maskz_cvtx_round2ps_ph): Ditto |
| (_mm512_cvtbiassph_bf8): Rename to _mm512_cvts_biasph_bf8. |
| (_mm512_mask_cvtbiassph_bf8): Rename to _mm512_mask_cvts_biasph_bf8. |
| (_mm512_maskz_cvtbiassph_bf8): Rename to _mm512_maskz_cvts_biasph_bf8. |
| (_mm512_cvtbiassph_hf8): Rename to _mm512_cvts_biasph_hf8. |
| (_mm512_mask_cvtbiassph_hf8): Rename to _mm512_mask_cvts_biasph_hf8. |
| (_mm512_maskz_cvtbiassph_hf8): Rename to _mm512_maskz_cvts_biasph_hf8. |
| (_mm512_cvts2ph_bf8): Rename to _mm512_cvts_2ph_bf8. |
| (_mm512_mask_cvts2ph_bf8): Rename to _mm512_mask_cvts_2ph_bf8. |
| (_mm512_maskz_cvts2ph_bf8): Rename to _mm512_maskz_cvts_2ph_bf8. |
| (_mm512_cvts2ph_hf8): Rename to _mm512_cvts_2ph_hf8. |
| (_mm512_mask_cvts2ph_hf8): Rename to _mm512_mask_cvts_2ph_hf8. |
| (_mm512_maskz_cvts2ph_hf8): Rename to _mm512_maskz_cvts_2ph_hf8. |
| (_mm512_cvtsph_bf8): Rename to _mm512_cvts_ph_bf8. |
| (_mm512_mask_cvtsph_bf8): Rename to _mm512_mask_cvts_ph_bf8. |
| (_mm512_maskz_cvtsph_bf8): Rename to _mm512_maskz_cvts_ph_bf8. |
| (_mm512_cvtsph_hf8): Rename to _mm512_cvts_ph_hf8. |
| (_mm512_mask_cvtsph_hf8): Rename to _mm512_mask_cvts_ph_hf8. |
| (_mm512_maskz_cvtsph_hf8): Rename to _mm512_maskz_cvts_ph_hf8. |
| * config/i386/avx10_2convertintrin.h |
| (_mm_cvtbiassph_bf8): Rename to _mm_cvts_biasph_bf8. |
| (_mm_mask_cvtbiassph_bf8): Rename to _mm_mask_cvts_biasph_bf8. |
| (_mm_maskz_cvtbiassph_bf8): Rename to _mm_maskz_cvts_biasph_bf8. |
| (_mm256_cvtbiassph_bf8): Rename to _mm256_cvts_biasph_bf8. |
| (_mm256_mask_cvtbiassph_bf8): Rename to _mm256_mask_cvts_biasph_bf8. |
| (_mm256_maskz_cvtbiassph_bf8): Rename to _mm256_maskz_cvts_biasph_bf8. |
| (_mm_cvtbiassph_hf8): Rename to _mm_cvts_biasph_hf8. |
| (_mm_mask_cvtbiassph_hf8): Rename to _mm_mask_cvts_biasph_hf8. |
| (_mm_maskz_cvtbiassph_hf8): Rename to _mm_maskz_cvts_biasph_hf8. |
| (_mm256_cvtbiassph_hf8): Rename to _mm256_cvts_biasph_hf8. |
| (_mm256_mask_cvtbiassph_hf8): Rename to _mm256_mask_cvts_biasph_hf8. |
| (_mm256_maskz_cvtbiassph_hf8): Rename to _mm256_maskz_cvts_biasph_hf8. |
| (_mm_cvts2ph_bf8): Rename to _mm_cvts_2ph_bf8. |
| (_mm_mask_cvts2ph_bf8): Rename to _mm_mask_cvts_2ph_bf8. |
| (_mm_maskz_cvts2ph_bf8): Rename to _mm_maskz_cvts_2ph_bf8. |
| (_mm256_cvts2ph_bf8): Rename to _mm256_cvts_2ph_bf8. |
| (_mm256_mask_cvts2ph_bf8): Rename to _mm256_mask_cvts_2ph_bf8. |
| (_mm256_maskz_cvts2ph_bf8): Rename to _mm256_maskz_cvts_2ph_bf8. |
| (_mm_cvts2ph_hf8): Rename to _mm_cvts_2ph_hf8. |
| (_mm_mask_cvts2ph_hf8): Rename to _mm_mask_cvts_2ph_hf8. |
| (_mm_maskz_cvts2ph_hf8): Rename to _mm_maskz_cvts_2ph_hf8. |
| (_mm256_cvts2ph_hf8): Rename to _mm256_cvts_2ph_hf8. |
| (_mm256_mask_cvts2ph_hf8): Rename to _mm256_mask_cvts_2ph_hf8. |
| (_mm256_maskz_cvts2ph_hf8): Rename to _mm256_maskz_cvts_2ph_hf8. |
| (_mm_cvtsph_bf8): Rename to _mm_cvts_ph_bf8. |
| (_mm_mask_cvtsph_bf8): Rename to _mm_mask_cvts_ph_bf8. |
| (_mm_maskz_cvtsph_bf8): Rename to _mm_maskz_cvts_ph_bf8. |
| (_mm256_cvtsph_bf8): Rename to _mm256_cvts_ph_bf8. |
| (_mm256_mask_cvtsph_bf8): Rename to _mm256_mask_cvts_ph_bf8. |
| (_mm256_maskz_cvtsph_bf8): Rename to _mm256_maskz_cvts_ph_bf8. |
| (_mm_cvtsph_hf8): Rename to _mm_cvts_ph_hf8. |
| (_mm_mask_cvtsph_hf8): Rename to _mm_mask_cvts_ph_hf8. |
| (_mm_maskz_cvtsph_hf8): Rename to _mm_maskz_cvts_ph_hf8. |
| (_mm256_cvtsph_hf8): Rename to _mm256_cvts_ph_hf8. |
| (_mm256_mask_cvtsph_hf8): Rename to _mm256_mask_cvts_ph_hf8. |
| (_mm256_maskz_cvtsph_hf8): Rename to _mm256_maskz_cvts_ph_hf8. |
| |
| 2025-03-25 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * gcov.cc (get_gcov_intermediate_filename): Use lbasename(). |
| |
| 2025-03-25 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR other/119250 |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac: Match the configure test in libiberty when checking |
| the basename decl. |
| |
| 2025-03-25 Sandra Loosemore <sloosemore@baylibre.com> |
| Tobias Burnus <tburnus@baylibre.com> |
| |
| * gimplify.cc (modify_call_for_omp_dispatch): Adjust arguments. |
| Remove the "sorry" for the case where new interop objects must be |
| constructed, and add code to make it work instead. |
| (expand_variant_call_expr): Adjust arguments and call to |
| modify_call_for_omp_dispatch. |
| (gimplify_variant_call_expr): Simplify logic for calling |
| expand_variant_call_expr. |
| |
| 2025-03-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/96226 |
| PR target/119428 |
| * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask, |
| splitter after *<rotate_insn><mode>3_mask_1): Revert 2020-12-05 |
| changes. |
| |
| 2025-03-25 Vineet Gupta <vineetg@rivosinc.com> |
| |
| PR target/119224 |
| * config/riscv/autovec.md: Disable abd splitter. |
| |
| 2025-03-25 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR middle-end/119325 |
| * doc/install.texi (gcn): Change ROCm > 6.3.2 to >6.3.3 for generic |
| support; mention Newlib commit that fixes a SIMD math issue. |
| |
| 2025-03-25 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR middle-end/118627 |
| * omp-general.cc (omp_parse_access_method): Change to return void. |
| (omp_parse_access_methods): Return void; remove 'if' around a |
| function call. |
| (omp_parse_expr): Remove 'if' around a function call. |
| |
| 2025-03-25 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.md (<US>mull): Add alternatives that allow Rs |
| to be tied to either Rdlo or Rdhi. |
| |
| 2025-03-25 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR middle-end/117811 |
| * optabs.cc (expand_binop_directly): Remove LAST as an argument, |
| instead record the last insn on entry. Only delete insns if |
| we need to restart and restart by calling ourself, not expand_binop. |
| (expand_binop): Update callers to expand_binop_directly. If it |
| fails to expand the operation, delete back to LAST. |
| |
| 2025-03-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/119376 |
| * tree-tailcall.cc (suitable_for_tail_opt_p): Add DIAG_MUSTTAIL |
| argument, propagate it down to maybe_error_musttail. |
| (suitable_for_tail_call_opt_p): Likewise. |
| (maybe_error_musttail): Add DIAG_MUSTTAIL argument. Don't emit error |
| for gimple_call_must_tail_p calls if it is false. |
| (find_tail_calls): Add DIAG_MUSTTAIL argument, propagate it down to |
| maybe_error_musttail, suitable_for_tail_opt_p, |
| suitable_for_tail_call_opt_p and find_tail_calls calls. |
| (tree_optimize_tail_calls_1): Add DIAG_MUSTTAIL argument, propagate |
| it down to find_tail_calls and if set, clear cfun->has_musttail flag |
| at the end. Rename OPT_MUSTCALL argument to OPT_MUSTTAIL. |
| (execute_tail_calls): Pass true to DIAG_MUSTTAIL |
| tree_optimize_tail_calls_1 argument. |
| (pass_tail_recursion::execute): Pass false to DIAG_MUSTTAIL |
| tree_optimize_tail_calls_1 argument. |
| (pass_musttail::gate): Don't test flag_optimize_sibling_calls. |
| (pass_musttail::execute): Pass true to DIAG_MUSTTAIL |
| tree_optimize_tail_calls_1 argument. |
| |
| 2025-03-24 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118616 |
| * tree-vect-generic.cc (expand_vector_conversion): Add |
| an assert that converts vect is non empty if |
| supportable_indirect_convert_operation returns true. |
| |
| 2025-03-24 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/101544 |
| * config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls) |
| [ACCEL_COMPILER]: Special-case certain host-setup symbol aliases. |
| * varasm.cc (do_assemble_alias) [ACCEL_COMPILER]: Adjust. |
| |
| 2025-03-24 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx.cc (default_ptx_version_option): Default at |
| least to '-mptx=6.3'. |
| * doc/invoke.texi (Nvidia PTX Options): Update '-mptx=[...]'. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/cpuinfo.h |
| (get_available_features): Change to FEATURE_AVX10_1. |
| * common/config/i386/i386-common.cc |
| (OPTION_MASK_ISA2_AVX10_1_512_SET): Renamed to ... |
| (OPTION_MASK_ISA2_AVX10_1_SET): ... this. |
| (OPTION_MASK_ISA2_AVX10_2_SET): Use renamed macro. |
| (OPTION_MASK_ISA2_AVX10_1_UNSET): Ditto. |
| (ix86_handle_option): Ditto. |
| (processor_alias_table): Use P_PROC_AVX10_1. |
| * common/config/i386/i386-cpuinfo.h |
| (enum feature_priority): Rename from AVX10_1_512 to AVX10_1. |
| (enum processor_features): Ditto. |
| * common/config/i386/i386-isas.h: Add avx10.1. |
| * config/i386/driver-i386.cc |
| (host_detect_local_cpu): Use renamed enum. |
| * config/i386/i386-c.cc |
| (ix86_target_macros_internal): Rename to avx10.1. |
| * config/i386/i386-isa.def (AVX10_1_512): Rename to ... |
| (AVX10_1): ... this. |
| * config/i386/i386-options.cc (isa2_opts): Rename to avx10.1. |
| (ix86_valid_target_attribute_inner_p): Add avx10.1. |
| (ix86_option_override_internal): Rename to AVX10_1. |
| Revise warnings to mention behavior change for option |
| combination in GCC 16. |
| * config/i386/i386.h (PTA_DIAMONDRAPIDS): Use AVX10_1. |
| * config/i386/i386.opt: Add avx10.1. |
| Add deprecate warnings for mevex512 and mavx10.1-256/512. |
| * config/i386/i386.opt.urls: Add avx10.1. |
| * doc/extend.texi: Ditto. |
| * doc/sourcebuild.texi: Ditto. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/cpuinfo.h |
| (get_available_features): Revise the logic AVX10 version. |
| * common/config/i386/i386-common.cc |
| (OPTION_MASK_ISA2_AVX10_2_256_SET): Removed. |
| (OPTION_MASK_ISA2_AVX10_2_512_SET): Ditto. |
| (OPTION_MASK_ISA2_AVX10_2_SET): New. |
| (OPTION_MASK_ISA2_AMX_AVX512_SET): Use AVX10.2 macro. |
| (OPTION_MASK_ISA2_AVX10_2_UNSET): Ditto. |
| (ix86_handle_option): Remove avx10.2-256 part. Adjust avx10.2. |
| * common/config/i386/i386-cpuinfo.h |
| (enum processor_features): Remove FEATURE_AVX10_2_256 and skip |
| the value for it. Change the name from FEATURE_AVX10_2_512 to |
| FEATURE_AVX10_2. |
| * common/config/i386/i386-isas.h: Remove avx10.2-256/512. |
| * config/i386/avx10_2-512bf16intrin.h: Use avx10.2 instead of |
| avx10.2-256/512. |
| * config/i386/avx10_2-512convertintrin.h: Ditto. |
| * config/i386/avx10_2-512mediaintrin.h: Ditto. |
| * config/i386/avx10_2-512minmaxintrin.h: Ditto. |
| * config/i386/avx10_2-512satcvtintrin.h: Ditto. |
| * config/i386/avx10_2bf16intrin.h: Ditto. |
| * config/i386/avx10_2convertintrin.h: Ditto. |
| * config/i386/avx10_2mediaintrin.h: Ditto. |
| * config/i386/avx10_2minmaxintrin.h: Ditto. |
| * config/i386/avx10_2satcvtintrin.h: Ditto. |
| * config/i386/movrsintrin.h: Ditto. |
| * config/i386/sm4intrin.h: Ditto. |
| * config/i386/cpuid.h (bit_AVX10_256): Removed. |
| (bit_AVX10_512): Ditto. |
| * config/i386/driver-i386.cc (host_detect_local_cpu): Adjust |
| Diamond Rapids and -march=native condition. |
| * config/i386/i386-builtin.def (BDESC): Use AVX10.2 macro |
| instead of AVX10.2-256/512. |
| * config/i386/i386-c.cc (ix86_target_macros_internal): Ditto. |
| * config/i386/i386-expand.cc |
| (ix86_expand_branch): Use TARGET_AVX10_2 instead of specifying |
| vector size. |
| (ix86_prepare_fp_compare_args): Ditto. |
| (ix86_expand_fp_compare): Ditto. |
| (ix86_ssecom_setcc): Ditto. |
| (ix86_expand_sse_comi): Ditto. |
| (ix86_expand_sse_comi_round): Ditto. |
| (ix86_check_builtin_isa_match): Ditto. |
| * config/i386/i386.cc (ix86_fp_compare_code_to_integer): Ditto. |
| (ix86_get_mask_mode): Ditto. |
| * config/i386/i386.h (SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P): Ditto. |
| * config/i386/i386.md: Ditto. |
| * config/i386/mmx.md: Ditto. |
| * config/i386/sse.md: Ditto. |
| * config/i386/predicates.md: Ditto. |
| * config/i386/i386-isa.def (AVX10_2_256): Removed. |
| (AVX10_2_512): Removed. |
| (AVX10_2): New. |
| * config/i386/i386-options.cc |
| (isa2_opts): Remove avx10.2-256/512. |
| (ix86_valid_target_attribute_inner_p): Ditto. |
| (PTA_DIAMONDRAPIDS): Use PTA_AVX10_2. |
| * config/i386/i386.opt: Remove avx10.2-256/512. |
| * config/i386/i386.opt.urls: Ditto. |
| * doc/extend.texi: Ditto. |
| * doc/invoke.texi: Ditto. |
| * doc/sourcebuild.texi: Ditto. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config.gcc: Add avx10_2roundingintrin.h. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle |
| V4DF_FTYPE_V4DF_V4DF_V4DF_UQI_INT, V8SF_FTYPE_V8SF_V8SF_V8SF_UQI_INT, |
| V16HF_FTYPE_V16HF_V16HF_V16HF_UHI_INT, UQI_FTYPE_V4DF_V4DF_INT_UQI_INT, |
| UHI_FTYPE_V16HF_V16HF_INT_UHI_INT, UQI_FTYPE_V8SF_V8SF_INT_UQI_INT. |
| * config/i386/immintrin.h: Include avx10_2roundingintrin.h. |
| * config/i386/sse.md: Change subst_attr name due to renaming. |
| * config/i386/subst.md: |
| (<round_mode512bit_condition>): Add condition check for avx10.2 |
| rounding control 256bit intrins and renamed to ... |
| (<round_mode_condition>): ...this. |
| (round_saeonly_mode512bit_condition): Add condition check for |
| avx10.2 rounding control 256 bit intris and renamed to ... |
| (round_saeonly_mode_condition): ...this. |
| * config/i386/avx10_2roundingintrin.h: New file. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: Add new intrins. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle |
| V8SF_FTYPE_V8SI_V8SF_UQI_INT, V4SF_FTYPE_V4DF_V4SF_UQI_INT, |
| V8HF_FTYPE_V8SI_V8HF_UQI_INT, V8HF_FTYPE_V4DF_V8HF_UQI_INT. |
| * config/i386/sse.md: |
| (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode><mask_name><round_name>): |
| Add condition check. |
| (avx512fp16_vcvtpd2ph_v4df_mask_round): New expand. |
| (*avx512fp16_vcvt<castmode>2ph_<mode>_mask): Change name to |
| avx512fp16_vcvt<castmode>2ph_<mode>_mask<round_name>_1 |
| and extend pattern to generate 256bit insns. |
| (avx_cvtpd2ps256<mask_name>): Change name to |
| avx_cvtpd2ps256<mask_name><round_name> and extend pattern to |
| generate 256bit insns. |
| * config/i386/subst.md (round_applied): New condition. |
| (round_suff): New iterator. |
| (round_mode_condition): Add V32HI check for 512bit. |
| (round_saeonly_mode_condition): Ditto. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: Add new intrins. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle |
| V4DI_FTYPE_V4DF_V4DI_UQI_INT, V4SI_FTYPE_V4DF_V4SI_UQI_INT. |
| * config/i386/sse.md: |
| (avx_cvtpd2dq256<mask_name>): Change name to |
| avx_cvtpd2dq256<mask_name><round_name> and extend pattern to |
| generate 256bit insns. |
| (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>): |
| Add round_mode_condition. |
| * config/i386/subst.md (round_pd2udqsuff): New iterator. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle |
| V8SF_FTYPE_V8HF_V8SF_UQI_INT, V8SI_FTYPE_V8HF_V8SI_UQI_INT, |
| V4DF_FTYPE_V8HF_V4DF_UQI_INT, V4DI_FTYPE_V8HF_V4DI_UQI_INT. |
| * config/i386/sse.md: |
| (avx512fp16_float_extend_ph<mode>2<mask_name><round_saeonly_name>): |
| Add condition check. |
| (avx512fp16_vcvtph2<sseintconvertsignprefix><sseintconvert>_<mode> |
| <mask_name><round_name>): |
| Ditto. |
| (avx512fp16_float_extend_ph<mode>2<mask_name>): Extend round saeonly. |
| (vcvtph2ps256<mask_name>): Ditto. |
| * config/i386/subst.md |
| (round_saeonly_applied): New condition. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle |
| V16HI_FTYPE_V16HF_V16HI_UHI_INT, V4DF_FTYPE_V4SF_V4DF_UQI_INT |
| V8HF_FTYPE_V8SF_V8HF_UQI_INT. |
| * config/i386/sse.md |
| (avx512fp16_vcvt<castmode>2ph_<mode><mask_name><round_name>): |
| Add round condition check. |
| * config/i386/subst.md (round_mode_condition): Add V16HI check for |
| 256bit. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle |
| V8SI_FTYPE_V8SF_V8SI_UQI_INT, V4DI_FTYPE_V4SF_V4DI_UQI_INT. |
| * config/i386/sse.md |
| (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>): |
| Extend to round. |
| (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>): |
| Add round condition check. |
| * config/i386/subst.md (round_constraint4): New. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle |
| V4DF_FTYPE_V4DI_V4DF_UQI_INT, V4SF_FTYPE_V4DI_V4SF_UQI_INT, |
| V8HF_FTYPE_V4DI_V8HF_UQI_INT. |
| * config/i386/sse.md: |
| (avx512fp16_vcvt<floatsuffix>qq2ph_v4di_mask_round): New expand. |
| (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask): |
| Extend round control and add "_1" suffix. |
| (float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>): |
| Add condition check. |
| (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>): |
| Ditto. |
| (float<floatunssuffix><mode><ssePSmode2lower>2<mask_name><round_name>): |
| Limit suffix output. |
| (unspec_fix_truncv4dfv4si2<mask_name>): Extend round control. |
| (unspec_fixuns_truncv4dfv4si2<mask_name>): Ditto. |
| * config/i386/subst.md (round_qq2pssuff): New iterator. |
| (round_saeonly_suff): Ditto. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/sse.md (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name>): |
| Extend round control for 256bit. |
| (unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<mask_name>): |
| Ditto. |
| (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name><round_saeonly_name>): |
| Add condition check. |
| * config/i386/subst.md |
| (round_saeonly_mode_condition): Add V16HI check for 256bit. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/sse.md |
| (unspec_fix_truncv8sfv8si2<mask_name>): Extend rounding control. |
| (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>): |
| Ditto. |
| (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>): |
| Add condition check. |
| (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>): |
| Remove round_saeonly_name. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle |
| V16HF_FTYPE_V16HI_V16HF_UHI_INT. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle |
| V16HF_FTYPE_V16HF_V16HF_INT, V16HF_FTYPE_V16HF_V16HF_V16HF_INT, |
| V16HF_FTYPE_V16HF_V16HF_V16HF_UQI_INT, |
| V4DF_FTYPE_V4DF_V4DF_V4DI_INT_UQI_INT, |
| V8SF_FTYPE_V8SF_V8SF_V8SI_INT_UQI_INT. |
| * config/i386/sse.md: |
| (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): |
| Add condition check. |
| (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Ditto. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/sse.md: |
| (<avx512>_fmadd_<mode>_mask3<round_name>): Add condition check. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/sse.md: |
| (<avx512>_fmaddsub_<mode>_mask<round_name>): Add condition check. |
| (<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/sse.md: |
| (<avx512>_fmsub_<mode>_mask<round_name>): Add condition check. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/sse.md: |
| (<avx512>_fnmsub_<mode>_mask3<round_name>): Add condition check. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle |
| V8SF_FTYPE_V8SF_V8SF_UQI_INT, V4DF_FTYPE_V4DF_V4DF_UQI_INT, |
| V16HF_FTYPE_V16HF_V16HF_UHI_INT, V16HF_FTYPE_V16HF_INT_V16HF_UHI_INT, |
| V4DF_FTYPE_V4DF_INT_V4DF_UQI_INT, V8SF_FTYPE_V8SF_INT_V8SF_UQI_INT. |
| * config/i386/sse.md: |
| (<avx512>_getexp<mode><mask_name><round_saeonly_name>): |
| Add condition check. |
| (<avx512>_getmant<mode><mask_name><round_saeonly_name>): |
| Ditto. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_round_builtin): |
| Handle V8SF_FTYPE_V8SF_V8SF_INT_V8SF_UQI_INT, |
| V4DF_FTYPE_V4DF_V4DF_INT_V4DF_UQI_INT. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/sse.md: |
| (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): |
| Add condition check. |
| (<avx512>_rndscale<mode><mask_name><round_saeonly_name>): Ditto. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/sse.md: |
| (<avx512>_scalef<mode><mask_name><round_name>): Add condition check. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| Revert: |
| 2024-08-19 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2roundingintrin.h: New intrins. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/avx10_2satcvtintrin.h: Remove rounding intrins. |
| Use non-round intrins. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| |
| 2025-03-24 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/avx10_2convertintrin.h: Remove rounding intrins. |
| Use non-round builtins. |
| * config/i386/avx10_2minmaxintrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/i386-builtin-types.def: Remove unused type. |
| * config/i386/i386-expand.cc |
| (ix86_expand_args_builtin): Ditto. |
| (ix86_expand_round_builtin): Ditto. |
| |
| 2025-03-23 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/42270 |
| * doc/extend.texi (Nonlocal Gotos): Group with other built-ins |
| sections. |
| (Constructing Calls): Likewise. |
| (Pragmas): Move earlier in the section, before the built-ins docs. |
| (Thread-Local): Likewise. |
| (OpenMP): Likewise. |
| (OpenACC): Likewise. |
| |
| 2025-03-23 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/42270 |
| * doc/extend.texi (Syntax Extensions): New section. |
| (Statement Exprs): Make it a subsection of the above. |
| (Local Labels): Likewise. |
| (Labels as Values): Likewise. |
| (Nested Functions): Likewise. |
| (Typeof): Likewise. |
| (Offsetof): Likewise. |
| (Alignment): Likewise. |
| (Incomplete Enums): Likewise. |
| (Variadic Macros): Likewise. |
| (Conditionals): Likewise. |
| (Case Ranges): Likewise. |
| (Mixed Labels and Declarations): Likewise. |
| (C++ Comments): Likewise. |
| (Escaped Newlines): Likewise. |
| (Hex Floats): Likewise. |
| (Binary constants): Likewise. |
| (Dollar Signs): Likewise. |
| (Character Escapes): Likewise. |
| (Alternate Keywords): Likewise. |
| (Function Names): Likewise. |
| (Semantic Extensions): New section. |
| (Function Prototypes): Make it a subsection of the above. |
| (Pointer Arith): Likewise. |
| (Variadic Pointer Args): Likewise. |
| (Pointers to Arrays): Likewise. |
| (Const and Volatile Functions): Likewise. |
| |
| 2025-03-23 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/42270 |
| * doc/extend.texi (Aggregate Types): New section. |
| (Variable Length): Make it a subsection of the above. |
| (Zero Length): Likewise. |
| (Empty Structures): Likewise. |
| (Flexible Array Members in Unions): Likewise. |
| (Flexible Array Members alone in Structures): Likewise. |
| (Unnamed Fields): Likewise. |
| (Cast to Union): Likewise. |
| (Subscripting): Likewise. |
| (Initializers): Likewise. |
| (Compound Literals): Likewise. |
| (Designated Inits): Likewise. |
| |
| 2025-03-23 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/42270 |
| * doc/extend.texi (Additional Numeric Types): New section. |
| (__int128): Make it a subsection of the above. |
| (Long Long): Likewise. |
| (Complex): Likewise. |
| (Floating Types): Likewise. |
| (Half-Precision): Likewise. |
| (Decimal Float): Likewise. |
| (Fixed-Point): Likewise. |
| |
| 2025-03-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-mcus.def: Add AVR32SD20, AVR32SD28, AVR32SD32, |
| AVR64SD28, AVR64SD32, AVR64SD48. |
| * doc/avr-mmcu.texi: Rebuild. |
| |
| 2025-03-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/invoke.texi (AVR Optimization Options) |
| <-maccumulate-args>: Refer to -fdefer-pop. |
| <-muse-nonzero-bits>: Re-formulate what the option does. |
| |
| 2025-03-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_option_override): Use |
| "avr-peep2-after-fuse-move" as dump name instead of "peephole2". |
| |
| 2025-03-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt.urls: Add -muse-nonzero-bits. |
| |
| 2025-03-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/119421 |
| * config/avr/avr.opt (-muse-nonzero-bits): New option. |
| * config/avr/avr-protos.h (avr_nonzero_bits_lsr_operands_p): New. |
| (make_avr_pass_split_nzb): New. |
| * config/avr/avr.cc (avr_nonzero_bits_lsr_operands_p): New function. |
| (avr_rtx_costs_1): Return costs for the new insns. |
| * config/avr/avr.md (nzb): New insn attribute. |
| (*nzb=1.<code>...): New insns to better support some bit |
| operations for <code> in AND, IOR, XOR. |
| * config/avr/avr-passes.def (avr_pass_split_nzb): Insert pass |
| atfer combine. |
| * config/avr/avr-passes.cc (avr_pass_data_split_nzb). New pass data. |
| (avr_pass_split_nzb): New pass. |
| (make_avr_pass_split_nzb): New function. |
| * common/config/avr/avr-common.cc (avr_option_optimization_table): |
| Enable -muse-nonzero-bits for -O2 and higher. |
| * doc/invoke.texi (AVR Options): Document -muse-nonzero-bits. |
| |
| 2025-03-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_attrs_section_name): New function. |
| (avr_insert_attributes): Add "used" attribute to functions |
| in .initN and .finiN. |
| |
| 2025-03-22 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (DL_LIBRARY): New. |
| |
| 2025-03-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.cc (warn_switch_unreachable_and_auto_init_r): Add missing |
| space in the middle of diagnostics. |
| * tree-vect-stmts.cc (vectorizable_load): Add missing space in the |
| middle of debug dump message. |
| * sym-exec/sym-exec-state.cc (state::check_args_compatibility): |
| Likewise. |
| |
| 2025-03-21 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/116028 |
| PR rtl-optimization/118615 |
| * lra-constraints.cc (first_call_insn): New variable. |
| (split_reg): Spill register before first_call_insn if call_save_p |
| and the call is in a different bb in the ebb. |
| (split_if_necessary): Formatting fix. |
| (inherit_in_ebb): Set first_call_insn when handling a CALL_INSN. |
| For successful split_if_necessary with before_p, only change |
| use_insn if it emitted any new instructions before curr_insn. |
| Clear first_call_insn before returning. |
| |
| 2025-03-21 Paul-Antoine Arras <parras@baylibre.com> |
| Tobias Burnus <tburnus@baylibre.com> |
| |
| * builtin-types.def |
| (BT_FN_VOID_INT_INT_PTR_PTR_PTR_INT_PTR_INT_PTR_UINT_PTR): New. |
| * gimple-low.cc (lower_stmt): Handle GIMPLE_OMP_INTEROP. |
| * gimple-pretty-print.cc (dump_gimple_omp_interop): New function. |
| (pp_gimple_stmt_1): Handle GIMPLE_OMP_INTEROP. |
| * gimple.cc (gimple_build_omp_interop): New function. |
| (gimple_copy): Handle GIMPLE_OMP_INTEROP. |
| * gimple.def (GIMPLE_OMP_INTEROP): Define. |
| * gimple.h (gimple_build_omp_interop): Declare. |
| (gimple_omp_interop_clauses): New function. |
| (gimple_omp_interop_clauses_ptr): Likewise. |
| (gimple_omp_interop_set_clauses): Likewise. |
| (gimple_return_set_retval): Handle GIMPLE_OMP_INTEROP. |
| * gimplify.cc (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_INIT, |
| OMP_CLAUSE_USE and OMP_CLAUSE_DESTROY. |
| (gimplify_omp_interop): New function. |
| (gimplify_expr): Replace sorry with call to gimplify_omp_interop. |
| * omp-builtins.def (BUILT_IN_GOMP_INTEROP): Define. |
| * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_INIT, |
| OMP_CLAUSE_USE and OMP_CLAUSE_DESTROY. |
| (scan_omp_1_stmt): Handle GIMPLE_OMP_INTEROP. |
| (lower_omp_interop_action_clauses): New function. |
| (lower_omp_interop): Likewise. |
| (lower_omp_1): Handle GIMPLE_OMP_INTEROP. |
| |
| 2025-03-21 Jason Merrill <jason@redhat.com> |
| |
| PR c++/114992 |
| * multiple_target.cc (create_dispatcher_calls): |
| remove_from_same_comdat_group before add_to_same_comdat_group. |
| |
| 2025-03-21 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/aarch64-cores.def (olympus): New entry. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi (AArch64 Options): Document the above. |
| |
| 2025-03-21 Antoni Boucher <bouanto@zoho.com> |
| |
| * config/i386/i386-rust-and-jit.inc: New file. |
| * config/i386/i386-rust.cc: Move code to i386-rust-and-jit.inc. |
| |
| 2025-03-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/119376 |
| * ipa-icf-gimple.cc (func_checker::compare_gimple_call): Return false |
| for gimple_call_must_tail_p mismatches. |
| |
| 2025-03-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/119376 |
| * ipa-split.cc (split_function): Call gimple_call_set_must_tail |
| on the call to outlined partition if has_musttail and |
| !add_tsan_func_exit. |
| |
| 2025-03-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/119376 |
| * tree-inline.cc (remap_gimple_stmt): Silently clear |
| gimple_call_must_tail_p on inlined call stmts if id->call_stmt |
| is a call without that flag set. |
| |
| 2025-03-21 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR target/119235 |
| * config/s390/s390.cc (s390_hard_regno_mode_ok): Accept only |
| Pmode for registers AP/FP/RA. |
| |
| 2025-03-21 Richard Biener <rguenther@suse.de> |
| |
| * cgraphunit.cc (symbol_table::finalize_compilation_unit): |
| Put early debug generation under TV_SYMOUT. |
| |
| 2025-03-21 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR rtl-optimization/118914 |
| * combine.cc (recog_for_combine): Add old_nregs and new_nregs |
| argument (defaulting to 0). Update call to recog_for_combine_1. |
| (combine_split_insns): Add old_nregs and new_nregs arguments, |
| store the old and new max registers to them. |
| (try_combine): Update calls to combine_split_insns and |
| pass old_nregs and new_nregs for the i3 call to recog_for_combine. |
| (find_split_point): Update call to combine_split_insns; ignoring |
| the values there. |
| (recog_for_combine_1): Add old_nregs and new_nregs arguments, |
| if the insn was recognized (and not to no-op move), add the |
| REG_DEAD notes to pnotes argument. |
| |
| 2025-03-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119389 |
| * tree-ssa-sccvn.cc (dominated_by_p_w_unex): Limit the number |
| of predecessors of a CFG merge we try to skip. |
| |
| 2025-03-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| Revert: |
| 2025-03-11 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config.gcc: Fail in case of option --with-mode=esa. |
| * config/s390/s390.cc (s390_option_override_internal): Default |
| to z/Architecture mode. |
| * config/s390/s390.h (DRIVER_SELF_SPECS): Ditto. |
| * config/s390/s390.opt: Emit a warning for option -mesa. |
| * doc/invoke.texi: Document the change. |
| |
| 2025-03-20 Filip Kastl <fkastl@suse.cz> |
| |
| * gimple-ssa-sccopy.cc (scc_copy_prop::propagate): Don't |
| increment after vec::unordered_remove(). |
| |
| 2025-03-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-core.h (function_decl_type): Make a scoped enum. |
| * tree.h (set_function_decl_type): Adjust. |
| (DECL_IS_OPERATOR_NEW_P): Likewise. |
| (DECL_SET_IS_OPERATOR_NEW): Likewise. |
| (DECL_IS_OPERATOR_DELETE_P): Likewise. |
| (DECL_SET_IS_OPERATOR_DELETE): Likewise. |
| (DECL_LAMBDA_FUNCTION_P): Likewise. |
| (DECL_SET_LAMBDA_FUNCTION): Likewise. |
| * lto-streamer-out.cc (hash_tree): Hash all of |
| FUNCTION_DECL_DECL_TYPE. |
| * tree-streamer-out.cc (pack_ts_function_decl_value_fields): |
| Adjust. |
| * config/aarch64/aarch64-simd-pragma-builtins.def (vcombine_mf8): |
| Use literal zero instead of NONE. |
| |
| 2025-03-20 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/117452 |
| * config/i386/i386.md (cbranchbf4): Use |
| ix86_fp_comparison_operator instead of comparison_operator. |
| |
| 2025-03-20 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2-512satcvtintrin.h: Add "s_" before |
| intrinsics' core name. |
| * config/i386/avx10_2satcvtintrin.h: Ditto. |
| |
| 2025-03-20 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2-512satcvtintrin.h: Add new intrinsics. |
| * config/i386/avx10_2satcvtintrin.h: Ditto. |
| * config/i386/i386-builtin-types.def: |
| Add DEF_FUNCTION_TYPE (V32HI, V32HF, V32HI, USI), |
| (V16SI, V16SF, V16SI, UHI), (V8DI, V8SF, V8DI, UQI), |
| (V8DI, V8DF, V8DI, UQI), (V8SI, V8DF, V8SI, UQI). |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/i386-expand.cc: Handle V16SI_FTYPE_V16SF_V16SI_UHI, |
| V32HI_FTYPE_V32HF_V32HI_USI, V8DI_FTYPE_V8SF_V8DI_UQI, |
| V8DI_FTYPE_V8DF_V8DI_UQI, V8SI_FTYPE_V8DF_V8SI_UQI. |
| |
| 2025-03-20 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2-512satcvtintrin.h: Change *i[u]bs's type suffix |
| of intrin name. |
| * config/i386/avx10_2satcvtintrin.h: Ditto. |
| |
| 2025-03-19 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/119270 |
| * ira-costs.cc (calculate_equiv_gains): Ignore equiv init insns |
| only for invariants. |
| |
| 2025-03-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c/119366 |
| * diagnostic-format-sarif.cc (test_message_with_embedded_link): |
| Convert diagnostic_context from one urlifier to a stack of |
| urlifiers, where each node in the stack tracks whether the |
| urlifier is owned or borrowed. |
| * diagnostic.cc (diagnostic_context::initialize): Likewise. |
| (diagnostic_context::finish): Likewise. |
| (diagnostic_context::set_urlifier): Delete. |
| (diagnostic_context::push_owned_urlifier): New. |
| (diagnostic_context::push_borrowed_urlifier): New. |
| (diagnostic_context::pop_urlifier): New. |
| (diagnostic_context::get_urlifier): Reimplement in terms of stack. |
| (diagnostic_context::override_urlifier): Delete. |
| * diagnostic.h (diagnostic_context::set_urlifier): Delete decl. |
| (diagnostic_context::override_urlifier): Delete decl. |
| (diagnostic_context::push_owned_urlifier): New decl. |
| (diagnostic_context::push_borrowed_urlifier): New decl. |
| (diagnostic_context::pop_urlifier): New decl. |
| (diagnostic_context::get_urlifier): Make return value const; hide |
| implementation. |
| (diagnostic_context::m_urlifier): Replace with... |
| (diagnostic_context::urlifier_stack_node): ... this and... |
| (diagnostic_context::m_urlifier_stack): ...this. |
| * gcc-urlifier.cc |
| (auto_override_urlifier::auto_override_urlifier): Reimplement. |
| (auto_override_urlifier::~auto_override_urlifier): Reimplement. |
| * gcc-urlifier.h (class auto_override_urlifier): Reimplement. |
| (auto_urlify_attributes::auto_urlify_attributes): Update for |
| pass-by-reference. |
| * gcc.cc (driver::global_initializations): Update for |
| reimplementation of urlifiers in terms of a stack. |
| * toplev.cc (general_init): Likewise. |
| |
| 2025-03-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/119357 |
| * config/i386/sse.md (pmovmskb 0xffff to ptest splitter, |
| *pmovsk_ptest_<mode>_avx512): Force operands[0] into a REG. |
| |
| 2025-03-19 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-arches.def (...): Add SVE2p1. |
| * doc/invoke.texi (AArch64 Options): Document +sve2p1 in |
| -march=armv9.4-a. |
| |
| 2025-03-19 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add |
| fa0-fa7, ft0-ft16, and fs0-fs7. |
| |
| 2025-03-18 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/119355 |
| * config/avr/avr-passes.cc (memento_t::apply): Only |
| read values[p.arg] when it is actually used. |
| |
| 2025-03-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR cobol/119301 |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac: Add check for get_current_dir_name. |
| |
| 2025-03-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/116545 |
| * doc/extend.texi (musttail statement attribute): Document |
| that musttail GNU attribute can be used as well. |
| |
| 2025-03-18 Michael Matz <matz@suse.de> |
| |
| * config/rs6000/rs6000.opt.urls: Regenerate. |
| |
| 2025-03-18 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/sourcebuild.texi (dg-output-file): Document. |
| |
| 2025-03-18 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * gimple-ssa-sccopy.cc (scc_copy_prop::replace_scc_by_value): Dump |
| what is being replaced with what. |
| |
| 2025-03-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/119307 |
| * lra.cc (lra_rtx_hash): Handle SUBREG. |
| |
| 2025-03-18 Richard Biener <rguenther@suse.de> |
| |
| PR debug/101533 |
| * dwarf2out.cc (gen_type_die_with_usage): When we have |
| output the typedef already do nothing for a typedef variant. |
| Do not set TREE_ASM_WRITTEN on the type. |
| |
| 2025-03-18 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/riscv.md (equality shifted-arith splitter): Do not |
| create op AND -1 as it won't be cleaned up post-reload. |
| |
| 2025-03-18 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * configure: Regenerate. |
| * configure.ac: s/gcc_cv_ld64_macosx_version_min/gcc_cv_ld64_macos_version_min/. |
| |
| 2025-03-17 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/riscv/bitmanip.md (*<or_optab>i<mode>_extrabit): Reject cases |
| where we only need to twiddle one bit. Fix formatting. |
| (*andi<mode>extrabit): Likewise. |
| |
| 2025-03-17 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/119285 |
| * ira-costs.cc (equiv_can_be_consumed_p): Use 2 ways for |
| recognizing a valid insn after equiv insertion. |
| |
| 2025-03-17 Michael Matz <matz@suse.de> |
| |
| PR target/112980 |
| * config/rs6000/rs6000.opt (msplit-patch-nops): New option. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Document it. |
| * config/rs6000/rs6000.h (machine_function.stop_patch_area_print): |
| New member. |
| * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): |
| Emit split nops under control of that one. |
| * config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue): |
| Add handling of split patch nops. |
| |
| 2025-03-17 Michal Jires <mjires@suse.cz> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2025-03-17 Michal Jires <mjires@suse.cz> |
| |
| * doc/invoke.texi: (Optimize Options): |
| Add incremental LTO flags. |
| |
| 2025-03-17 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/119114 |
| * config/riscv/autovec.md: Apply & 0x1 mask when initializing |
| bitmask vector. |
| |
| 2025-03-17 Ayan Shafqat <ayan.x.shafqat@gmail.com> |
| |
| * config/aarch64/arm_acle.h (__fma, __fmaf): New functions. |
| |
| 2025-03-17 Richard Biener <rguenther@suse.de> |
| |
| * opts.cc (gen_producer_string): Record -D and -U |
| with _FORTIFY_SOURCE prefix. |
| |
| 2025-03-16 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/116256 |
| * config/riscv/riscv.md (reassociation splitters): Do not load the |
| adjusted addend into a register if it fits in a simm12. |
| |
| 2025-03-16 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/113546 |
| * tree-cfg.cc (first_non_label_stmt): Rename to ... |
| (first_non_label_nondebug_stmt): This and use gsi_start_nondebug_after_labels_bb. |
| (assign_discriminators): Update call to first_non_label_nondebug_stmt. |
| |
| 2025-03-16 Iain Sandoe <iain@sandoe.co.uk> |
| |
| Backported from master: |
| 2025-03-16 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/119172 |
| * config.in: Regenerate. |
| * config/darwin.h (DARWIN_PLATFORM_ID): Add the option to |
| use -macos_version_min where available. |
| * configure: Regenerate. |
| * configure.ac: Check for ld64 support of -macos_version_min. |
| |
| 2025-03-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/116572 |
| * cgraph.cc (cgraph_update_edges_for_call_stmt): Do not update |
| edges of clones that are unexpanded thunk. Assert that the node |
| passed as the parameter is not an unexpanded thunk. |
| |
| 2025-03-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119287 |
| * match.pd (((X >> C1) & C2) * (1 << C1) to X & (C2 << C1)): Use |
| (convert @0) instead of @0 in the substitution. |
| |
| 2025-03-14 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR target/92713 |
| PR target/101544 |
| * config/gcn/gcn.h (LIBSTDCXX): Don't set. |
| * config/nvptx/nvptx.h (LIBSTDCXX): Likewise. |
| |
| 2025-03-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119274 |
| * tree-ssa-sccvn.cc (dominated_by_p_w_unex): Handle the |
| top block being the only executable forwarder to a CFG |
| merge. |
| |
| 2025-03-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-slp.cc (vect_build_slp_instance): Pass the new group |
| size (i) rather than 1 to vect_slp_prefer_store_lanes_p. |
| (vect_analyze_slp): Only force the use of load-lanes and |
| store-lanes if that is preferred for at least one load/store pair. |
| |
| 2025-03-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119155 |
| * tree-vect-stmts.cc (vectorizable_store): Do not always |
| use vector element alignment for VMAT_STRIDED_SLP but |
| a more correct alignment towards both ends. |
| (vectorizable_load): Likewise. |
| |
| 2025-03-14 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (Alternate Keywords): Clean up text and remove |
| discussion of "restrict", which is not a GNU extension at all. |
| * doc/invoke.texi (C Dialect Options): Remove detailed discussion. |
| |
| 2025-03-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/119147 |
| * ipa-inline.cc: Include ipa-modref-tree.h and |
| ipa-modref.h. |
| (speculation_useful_p): If target is a clone, speculation is usef; |
| fix mixup of caller and callee; speculate also calls not considered |
| hot; consider modref summary also possibly useful for optimization. |
| * ipa-profile.cc (ipa_profile): Keep non-hot speculations. |
| |
| 2025-03-13 Richard Biener <rguenther@suse.de> |
| |
| * tree.h (DECL_NOT_GIMPLE_REG_P): Update description. |
| |
| 2025-03-13 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * common/config/aarch64/cpuinfo.h: Remove FEAT_PREDRES and FEAT_LS64*. |
| * config/aarch64/aarch64-option-extensions.def: Remove FMV support |
| for PREDRES. |
| |
| 2025-03-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * match.pd: Extend pointer alignment folds so that they handle |
| the case where a constant is added before or after the alignment. |
| |
| 2025-03-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * match.pd: Fold ((X >> C1) & C2) * (1 << C1) to X & (C2 << C1). |
| |
| 2025-03-13 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/119115 |
| * config/riscv/riscv-vsetvl.cc (reg_used): New function. |
| (reg_single_use_in_avl): Ditto. |
| (pre_vsetvl::fuse_local_vsetvl_info): Use reg_single_use_in_avl |
| when checking if vsetvl can be deleted. |
| |
| 2025-03-13 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/117955 |
| * config/riscv/riscv-vsetvl.cc: Use LMUL/ratio from vsetvl with |
| larger SEW. |
| |
| 2025-03-13 Matthias Klose <doko@ubuntu.com> |
| |
| * configure.ac: Add option --enable-versioned-jit. |
| * configure: Regenerate. |
| * Makefile.in: Move from jit/Make-lang.in, setting value from |
| configure.ac. |
| * doc/install.texi: Document option --enable-versioned-jit. |
| |
| 2025-03-13 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/119238 |
| * config/loongarch/simd.md (<su>dot_prod<wvec_half><mode>): |
| Stop using structured binding. |
| |
| 2025-03-12 Alex Coplan <alex.coplan@arm.com> |
| |
| PR rtl-optimization/116564 |
| * df-problems.cc (df_simulate_defs): For partial defs, mark the |
| register live (treat it as a RMW operation). |
| |
| 2025-03-12 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/115439 |
| * config/arm/predicates.md (vpr_register_operand): Allow type-punning |
| subregs. |
| |
| 2025-03-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/116901 |
| * config/aarch64/aarch64.cc (aarch64_vector_costs::count_ops): Allow |
| stmt_info to be null. |
| (aarch64_vector_costs::add_stmt_cost): Call count_ops even if |
| stmt_info is null. |
| |
| 2025-03-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/116901 |
| * tree-vect-loop.cc (vectorizable_reduction): Set ncopies to |
| SLP_TREE_NUMBER_OF_VEC_STMTS for SLP. |
| |
| 2025-03-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.def (RAW_DATA_CST): Document meaning of NULL RAW_DATA_OWNER. |
| (CONSTRUCTOR): Document meaning of RAW_DATA_CST used as element |
| value. |
| |
| 2025-03-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/119204 |
| PR middle-end/119219 |
| * builtins.cc (fold_builtin_2): Pass type as another argument |
| to fold_builtin_strspn and fold_builtin_strcspn. |
| (fold_builtin_strspn): Add type argument, use it instead of |
| size_type_node. |
| (fold_builtin_strcspn): Add type argument, use it instead of |
| TREE_TYPE (expr). |
| |
| 2025-03-12 Jeff Law <jlaw@ventanamicro.com> |
| |
| Revert: |
| 2025-03-09 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/117467 |
| * ext-dce.cc (ext_dce_process_uses): When trivially possible advance |
| the iterator over the destination of a SET. |
| |
| 2025-03-11 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR target/119131 |
| * config/aarch64/aarch64.cc (aarch64_valid_fp_move): Remove check |
| for !DECIMAL_FLOAT_MODE_P. |
| (aarch64_float_const_representable_p): Reject decimal floating modes. |
| * config/aarch64/aarch64.md (mov<mode>): Likewise. |
| |
| 2025-03-11 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/extend.texi (Common Variable Attributes): Fix grammar in |
| final sentence of -ftrivial-auto-var-init description. |
| |
| 2025-03-11 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/s390.cc (s390_delegitimize_address): Add missing case. |
| |
| 2025-03-11 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-ssa-alias.cc (ao_compare::compare_ao_refs): Fix a |
| copy-and-paste error. |
| |
| 2025-03-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.cc (gen_compile_unit_die): Use DW_LANG_Cobol85 if |
| language_string is "GCC COBOL" rather than "Cobol". |
| |
| 2025-03-11 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/119204 |
| * builtins.cc (fold_builtin_strcspn): Preserve the original |
| expression type. |
| |
| 2025-03-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/119183 |
| * tree.cc (skip_simple_arithmetic): If first operand of binary |
| expr is TREE_CONSTANT or TREE_READONLY with no side-effects, call |
| tree_invariant_p on that operand first instead of on the second. |
| |
| 2025-03-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/119190 |
| * tree-complex.cc (update_complex_assignment, tree_lower_complex): |
| Perform simple dce on dce_worklist only if optimize. |
| |
| 2025-03-11 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config.gcc: Fail in case of option --with-mode=esa. |
| * config/s390/s390.cc (s390_option_override_internal): Default |
| to z/Architecture mode. |
| * config/s390/s390.h (DRIVER_SELF_SPECS): Ditto. |
| * config/s390/s390.opt: Emit a warning for option -mesa. |
| * doc/invoke.texi: Document the change. |
| |
| 2025-03-11 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR target/115835 |
| * config/s390/s390.cc (s390_insn_cost): Implement. |
| (TARGET_INSN_COST): Define. |
| |
| 2025-03-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119166 |
| * tree-vect-stmts.cc (get_load_store_type): Guard SLP tree |
| access. |
| |
| 2025-03-11 James K. Lowden <jklowden@symas.com> |
| |
| * doc/contrib.texi: Update for gcobol. |
| * doc/frontends.texi: Likewise. |
| * doc/install.texi: Likewise. |
| * doc/invoke.texi: Likewise. |
| * doc/sourcebuild.texi: Likewise. |
| * doc/standards.texi: Likewise. |
| |
| 2025-03-11 James K. Lowden <jklowden@symas.com> |
| |
| * Makefile.in (installdirs): Create man3 directory. |
| * common.opt (static-libgcobol): New driver option. |
| * dwarf2out.cc (gen_compile_unit_die): Support Cobol as |
| source language. |
| |
| 2025-03-10 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| PR target/115258 |
| * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use |
| d.one_vector_p to decide whether op1 should be a copy of op0. |
| |
| 2025-03-10 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/114991 |
| * ira-costs.cc (equiv_can_be_consumed_p): Add new argument invariant_p. |
| Add code for dealing with the invariant. |
| (calculate_equiv_gains): Don't consider init insns. Pass the new |
| argument to equiv_can_be_consumed_p. Don't treat invariant as |
| memory. |
| |
| 2025-03-10 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/invoke.texi (Instrumentation Options): Fix typo introduced |
| in commit 313edeeeb607fe32da5633cfb6f91977add446f6. |
| |
| 2025-03-10 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/115439 |
| * config/arm/mve.md (vec_vcmp, vec_vcmpu, vcond_mask): Use |
| vpr_register_operand predicate for MVE_VPRED operands. |
| |
| 2025-03-10 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/119127 |
| * config/loongarch/loongarch.cc |
| (loongarch_reassoc_shift_bitwise): Sign extend mask to mode, |
| specially handle the case it's extended to -1. |
| * config/loongarch/loongarch.md |
| (loongarch_reassoc_shift_bitwise): Update the comment for the |
| special case. |
| |
| 2025-03-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/117178 |
| * gimple-ssa-warn-access.cc (maybe_warn_nonstring_arg): Look through |
| multi-dimensional array types, stop at the innermost ARRAY_TYPE. |
| |
| 2025-03-09 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/117467 |
| * ext-dce.cc (ext_dce_process_sets): Handle FP destinations better. |
| |
| 2025-03-09 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/117467 |
| * ext-dce.cc (ext_dce_process_uses): When trivially possible advance |
| the iterator over the destination of a SET. |
| |
| 2025-03-09 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118922 |
| * tree-ssa-phiopt.cc (value_replacement): Set empty_or_with_defined_p |
| to false when there is phi nodes for the middle bb. |
| |
| 2025-03-09 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR middle-end/118457 |
| * gimplify.cc (modify_call_for_omp_dispatch): New, containing |
| code split from gimplify_call_expr and modified to emit tree |
| instead of gimple. Remove the error for falling through to a call |
| to the base function. |
| (expand_variant_call_expr): New, split from gimplify_variant_call_expr. |
| Call modify_call_for_omp_dispatch on calls to |
| variants in a dispatch construct context. |
| (gimplify_variant_call_expr): Make it call expand_variant_call_expr |
| to do the actual work. |
| (gimplify_call_expr): Remove sorry for calls involving both |
| dynamic/late selectors and adjust_args/append_args, and adjust |
| for new interface. Move adjust_args/append_args code to |
| modify_call_for_omp_dispatch. |
| (gimplify_omp_dispatch): Add some comments. |
| |
| 2025-03-08 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (Basic Asm): Document that AssemblerInstructions |
| can be an asm constexpr. |
| (Extended Asm): Move the notes about asm constexprs for |
| AssemblerTemplate and Clobbers to the corresponding subsections. |
| Remove the notes for OutputOperands and InputOperands and reword |
| misleading descriptions of the list item syntax. Note that |
| constraint strings can be asm constexprs. |
| (Asm constexprs): Use "title case" for subsection name. Be |
| explicit about what parts of the asm syntax this applies to and |
| that the parentheses are required. Correct markup and terminology. |
| |
| 2025-03-08 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/67301 |
| * doc/extend.texi (Extended Asm): Clarify that the square brackets |
| around the asmSymbolicName of operands are a required part of |
| the syntax. |
| |
| 2025-03-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/117178 |
| * tree.cc (get_attr_nonstring_decl): Look through all ARRAY_REFs, not |
| just one and handle COMPONENT_REF and MEM_REF after skipping those |
| rather than only when there wasn't ARRAY_REF. Formatting fix. |
| |
| 2025-03-07 Kees Cook <kees@kernel.org> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/117178 |
| * doc/invoke.texi (Wunterminated-string-initialization): Document |
| the new interaction between this warning and -Wc++-compat and that |
| initialization of decls with nonstring attribute aren't warned about. |
| |
| 2025-03-07 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR sanitizer/56682 |
| * doc/invoke.texi (Instrumentation Options): Document that -g |
| is useful with -fsanitize=thread and -fsanitize=address. |
| Also mention -fno-omit-frame-pointer per the asan wiki. |
| |
| 2025-03-07 Richard Sandiford <richard.sandiford@arm.com> |
| Jan Hubicka <hubicka@ucw.cz> |
| H.J. Lu <hjl.tools@gmail.com> |
| |
| PR rtl-optimization/117477 |
| * config/aarch64/aarch64.cc (aarch64_count_saves): New function. |
| (aarch64_count_above_hard_fp_saves, aarch64_callee_save_cost) |
| (aarch64_frame_allocation_cost): Likewise. |
| (TARGET_CALLEE_SAVE_COST): Define. |
| (TARGET_FRAME_ALLOCATION_COST): Likewise. |
| * config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale): |
| Replace with... |
| (ix86_callee_save_cost): ...this new hook. |
| (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete. |
| (TARGET_CALLEE_SAVE_COST): Define. |
| * target.h (spill_cost_type, frame_cost_type): New enums. |
| * target.def (callee_save_cost, frame_allocation_cost): New hooks. |
| (ira_callee_saved_register_cost_scale): Delete. |
| * doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete. |
| (TARGET_CALLEE_SAVE_COST, TARGET_FRAME_ALLOCATION_COST): New hooks. |
| * doc/tm.texi: Regenerate. |
| * hard-reg-set.h (hard_reg_set_popcount): New function. |
| * ira-color.cc (allocated_memory_p): New variable. |
| (allocated_callee_save_regs): Likewise. |
| (record_allocation): New function. |
| (assign_hard_reg): Use targetm.frame_allocation_cost to model |
| the cost of the first spill or first caller save. Use |
| targetm.callee_save_cost to model the cost of using new callee-saved |
| registers. Apply the exit rather than entry frequency to the cost |
| of restoring a register or deallocating the frame. Update the |
| new variables above. |
| (improve_allocation): Use record_allocation. |
| (color): Initialize allocated_callee_save_regs. |
| (ira_color): Initialize allocated_memory_p. |
| * targhooks.h (default_callee_save_cost): Declare. |
| (default_frame_allocation_cost): Likewise. |
| * targhooks.cc (default_callee_save_cost): New function. |
| (default_frame_allocation_cost): Likewise. |
| |
| 2025-03-07 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR target/116708 |
| * doc/invoke.texi (x86 Options): Clarify how -msse4 and -mno-sse4 |
| interact with other SSE options. |
| |
| 2025-03-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/118318 |
| * ipa-cp.cc (adjust_clone_incoming_counts): Add a compatible_p check. |
| |
| 2025-03-07 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm_neon.h: Try harder to detect if we have |
| the softfp ABI enabled. |
| |
| 2025-03-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/112960 |
| PR c/117029 |
| * doc/extend.texi (Complex): Add I and J suffixes to the list of |
| complex suffixes, adjust for all of those being part of ISO C2Y, |
| clarify that for -fno-ext-numeric-literals none of those are |
| recognized as GNU extensions and for C++14 i is considered UDL |
| even for -fext-numeric-literals when <complex> is included. |
| |
| 2025-03-07 Simon Martin <simon@nasilyan.com> |
| |
| * tree-vect-data-refs.cc: Define INCLUDE_ALGORITHM. |
| |
| 2025-03-07 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/118464 |
| PR tree-optimization/116855 |
| * doc/invoke.texi (min-pagesize): Update docs with vectorizer use. |
| * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Delay |
| checks. |
| (vect_compute_data_ref_alignment): Remove alignment checks and move to |
| get_load_store_type, increase group access alignment. |
| (vect_enhance_data_refs_alignment): Add note to comment needing |
| investigating. |
| (vect_analyze_data_refs_alignment): Likewise. |
| (vect_supportable_dr_alignment): For group loads look at first DR. |
| * tree-vect-stmts.cc (get_load_store_type): |
| Perform safety checks for early break pfa. |
| * tree-vectorizer.h (dr_set_safe_speculative_read_required, |
| dr_safe_speculative_read_required, DR_SCALAR_KNOWN_BOUNDS): New. |
| (need_peeling_for_alignment): Renamed to... |
| (safe_speculative_read_required): .. This |
| (class dr_vec_info): Add scalar_access_known_in_bounds. |
| |
| 2025-03-07 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/118464 |
| PR tree-optimization/116855 |
| * config/aarch64/aarch64-sve.md (@extract_<last_op>_<mode>, |
| @fold_extract_<last_op>_<mode>, |
| @aarch64_fold_extract_vector_<last_op>_<mode>): Change SVE_FULL to |
| SVE_ALL. |
| * config/aarch64/iterators.md (vccore): Add more partial types. |
| |
| 2025-03-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119145 |
| * tree-vectorizer.cc (try_vectorize_loop_1): Avoid BB |
| vectorizing an if-converted loop body when there's a .MASK_CALL |
| in the loop body. |
| |
| 2025-03-07 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/115485 |
| * config/arm/arm.cc (require_pic_register): Fix typos in |
| comment. Handle fixed arm_pic_register. |
| |
| 2025-03-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/116125 |
| * tree-vect-data-refs.cc (vect_prune_runtime_alias_test_list): Make |
| the dr_with_seg_len alignment fields describe tha access sizes as |
| well as the pointer alignment. |
| * tree-data-ref.cc (create_intersect_range_checks): Don't compensate |
| for invalid alignment fields here. |
| |
| 2025-03-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/119133 |
| * config/aarch64/aarch64.md |
| (*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>): Use |
| force_lowpart_subreg. |
| |
| 2025-03-07 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/118801 |
| * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Prune |
| sequences of uninterrupted DEBUG BEGIN_STMTs, keeping only |
| the last of a set with unique location. |
| |
| 2025-03-07 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/113515 |
| * doc/invoke.texi (Warning Options): Improve -Wstringop-overflow |
| documentation. |
| |
| 2025-03-07 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/avx10_2-512convertintrin.h |
| (_mm512_mask_cvtbf8_ph): Correct mask width. |
| (_mm512_maskz_cvtbf8_ph): Ditto. |
| * config/i386/avx10_2convertintrin.h |
| (_mm256_mask_cvtbf8_ph): Ditto. |
| (_mm256_maskz_cvtbf8_ph): Ditto. |
| |
| 2025-03-06 Alexey Merzlyakov <alexey.merzlyakov@samsung.com> |
| |
| PR rtl-optimization/119099 |
| * ext-dce.cc (ext_dce_rd_transfer_n): Do not allow the livein |
| set to shrink. |
| |
| 2025-03-06 Simon Martin <simon@nasilyan.com> |
| |
| * config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Fix |
| comment typo, paramter -> parameter. |
| * config/lm32/lm32.cc (lm32_std_gimplify_va_arg_expr): Likewise. |
| |
| 2025-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR target/118351 |
| PR other/38768 |
| * common/config/aarch64/aarch64-common.cc: Enable early scheduling with |
| -O3 and higher. |
| * doc/invoke.texi (-fschedule-insns): Update comment. |
| |
| 2025-03-06 Richard Sandiford <richard.sandiford@arm.com> |
| |
| Revert: |
| 2025-03-06 Richard Sandiford <richard.sandiford@arm.com> |
| Jan Hubicka <hubicka@ucw.cz> |
| |
| PR rtl-optimization/117477 |
| * config/aarch64/aarch64.cc (aarch64_count_saves): New function. |
| (aarch64_count_above_hard_fp_saves, aarch64_callee_save_cost) |
| (aarch64_frame_allocation_cost): Likewise. |
| (TARGET_CALLEE_SAVE_COST): Define. |
| (TARGET_FRAME_ALLOCATION_COST): Likewise. |
| * config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale): |
| Replace with... |
| (ix86_callee_save_cost): ...this new hook. |
| (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete. |
| (TARGET_CALLEE_SAVE_COST): Define. |
| * target.h (spill_cost_type, frame_cost_type): New enums. |
| * target.def (callee_save_cost, frame_allocation_cost): New hooks. |
| (ira_callee_saved_register_cost_scale): Delete. |
| * doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete. |
| (TARGET_CALLEE_SAVE_COST, TARGET_FRAME_ALLOCATION_COST): New hooks. |
| * doc/tm.texi: Regenerate. |
| * hard-reg-set.h (hard_reg_set_popcount): New function. |
| * ira-color.cc (allocated_memory_p): New variable. |
| (allocated_callee_save_regs): Likewise. |
| (record_allocation): New function. |
| (assign_hard_reg): Use targetm.frame_allocation_cost to model |
| the cost of the first spill or first caller save. Use |
| targetm.callee_save_cost to model the cost of using new callee-saved |
| registers. Apply the exit rather than entry frequency to the cost |
| of restoring a register or deallocating the frame. Update the |
| new variables above. |
| (improve_allocation): Use record_allocation. |
| (color): Initialize allocated_callee_save_regs. |
| (ira_color): Initialize allocated_memory_p. |
| * targhooks.h (default_callee_save_cost): Declare. |
| (default_frame_allocation_cost): Likewise. |
| * targhooks.cc (default_callee_save_cost): New function. |
| (default_frame_allocation_cost): Likewise. |
| |
| 2025-03-06 Richard Biener <rguenther@suse.de> |
| |
| PR lto/114501 |
| * ipa-free-lang-data.cc (find_decls_types_r): Explicitly |
| handle CONSTRUCTORs as walk_tree handling of those is |
| incomplete. |
| |
| 2025-03-06 Alex Coplan <alex.coplan@arm.com> |
| |
| PR rtl-optimization/114492 |
| * pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Check for singleton |
| move range before calling restrict_movement. |
| (pair_fusion::try_promote_writeback): Likewise. |
| |
| 2025-03-06 Richard Sandiford <richard.sandiford@arm.com> |
| Jan Hubicka <hubicka@ucw.cz> |
| |
| PR rtl-optimization/117477 |
| * config/aarch64/aarch64.cc (aarch64_count_saves): New function. |
| (aarch64_count_above_hard_fp_saves, aarch64_callee_save_cost) |
| (aarch64_frame_allocation_cost): Likewise. |
| (TARGET_CALLEE_SAVE_COST): Define. |
| (TARGET_FRAME_ALLOCATION_COST): Likewise. |
| * config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale): |
| Replace with... |
| (ix86_callee_save_cost): ...this new hook. |
| (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete. |
| (TARGET_CALLEE_SAVE_COST): Define. |
| * target.h (spill_cost_type, frame_cost_type): New enums. |
| * target.def (callee_save_cost, frame_allocation_cost): New hooks. |
| (ira_callee_saved_register_cost_scale): Delete. |
| * doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete. |
| (TARGET_CALLEE_SAVE_COST, TARGET_FRAME_ALLOCATION_COST): New hooks. |
| * doc/tm.texi: Regenerate. |
| * hard-reg-set.h (hard_reg_set_popcount): New function. |
| * ira-color.cc (allocated_memory_p): New variable. |
| (allocated_callee_save_regs): Likewise. |
| (record_allocation): New function. |
| (assign_hard_reg): Use targetm.frame_allocation_cost to model |
| the cost of the first spill or first caller save. Use |
| targetm.callee_save_cost to model the cost of using new callee-saved |
| registers. Apply the exit rather than entry frequency to the cost |
| of restoring a register or deallocating the frame. Update the |
| new variables above. |
| (improve_allocation): Use record_allocation. |
| (color): Initialize allocated_callee_save_regs. |
| (ira_color): Initialize allocated_memory_p. |
| * targhooks.h (default_callee_save_cost): Declare. |
| (default_frame_allocation_cost): Likewise. |
| * targhooks.cc (default_callee_save_cost): New function. |
| (default_frame_allocation_cost): Likewise. |
| |
| 2025-03-06 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/119119 |
| * gimplify.cc (is_gimple_mem_rhs_or_call): All empty CTORs |
| are OK when not a register type. |
| |
| 2025-03-05 Hannes Braun <hannes@hannesbraun.net> |
| |
| PR target/118942 |
| * config/arm/arm_neon.h (vld1q_s8_x3): Use int8_t instead of |
| uint16_t. |
| (vld1q_s16_x3): Use int16_t instead of uint16_t. |
| (vld1q_s8_x4): Likewise. |
| (vld1q_s16_x4): Likewise. |
| |
| 2025-03-05 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/119046 |
| * config/aarch64/aarch64.cc (aarch64_evpc_dup): Use VOIDmode for |
| PARALLEL. |
| |
| 2025-03-05 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/119046 |
| * rtlanal.cc (may_trap_p_1): Don't mark FP-mode PARALLELs as trapping. |
| |
| 2025-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/118953 |
| * value-range.cc (irange::union_bitmask): Update m_bitmask if |
| get_bitmask () is unknown_p and m_bitmask is not even when the |
| semantic bitmask didn't change and returning false. |
| |
| 2025-03-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/97323 |
| * tree.cc (gimple_canonical_types_compatible_p): Ignore |
| TYPE_MODE also for ARRAY_TYPE. |
| (verify_type): Likewise. |
| |
| 2025-03-05 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/119084 |
| * config/loongarch/lasx.md (UNSPEC_LASX_XVLDX): Remove. |
| (lasx_xvldx): Remove. |
| * config/loongarch/lsx.md (UNSPEC_LSX_VLDX): Remove. |
| (lsx_vldx): Remove. |
| * config/loongarch/simd.md (QIVEC): New define_mode_iterator. |
| (<simd_isa>_<x>vldx): New define_expand. |
| * config/loongarch/loongarch.cc (loongarch_address_insns_1): New |
| static function with most logic factored out from ... |
| (loongarch_address_insns): ... here. Call |
| loongarch_address_insns_1 with reg_reg_cost = 1. |
| (loongarch_address_cost): Call loongarch_address_insns_1 with |
| reg_reg_cost = la_addr_reg_reg_cost. |
| |
| 2025-03-04 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/invoke.texi (AVR Optimization Options): New @subsubsection |
| for pure optimization options. |
| |
| 2025-03-04 Oscar Gustafsson <oscar.gustafsson@gmail.com> |
| |
| * doc/extend.texi: Improve example for __builtin_bswap16. |
| |
| 2025-03-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_TZCNT): New macro. |
| (TARGET_AVOID_FALSE_DEP_FOR_BLS): New macro. |
| * config/i386/i386.md (*bmi_blsi_<mode>): Add splitter for false |
| dependency. |
| (*bmi_blsi_<mode>_ccno): Add splitter for false dependency. |
| (*bmi_blsi_<mode>_falsedep): New pattern. |
| (*bmi_blsmsk_<mode>): Add splitter for false dependency. |
| (*bmi_blsmsk_<mode>_falsedep): New pattern. |
| (*bmi_blsr_<mode>): Add splitter for false dependency. |
| (*bmi_blsr_<mode>_cmp): Add splitter for false dependency |
| (*bmi_blsr_<mode>_cmp_falsedep): New pattern. |
| * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_TZCNT): New tune. |
| (X86_TUNE_AVOID_FALSE_DEP_FOR_BLS): New tune. |
| |
| 2025-03-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.h (TARGET_FUSE_ALU_AND_BRANCH_MEM): New macro. |
| (TARGET_FUSE_ALU_AND_BRANCH_MEM_IMM): New macro. |
| (TARGET_FUSE_ALU_AND_BRANCH_RIP_RELATIVE): New macro. |
| * config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Support |
| non-single-set. |
| (ix86_macro_fusion_pair_p): Allow ALU which only clobbers; |
| be more careful about immediates; check TARGET_FUSE_ALU_AND_BRANCH_MEM, |
| TARGET_FUSE_ALU_AND_BRANCH_MEM_IMM, TARGET_FUSE_ALU_AND_BRANCH_RIP_RELATIVE; |
| verify that we never use unsigned checks with inc/dec. |
| * config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): New tune. |
| (X86_TUNE_FUSE_ALU_AND_BRANCH_MEM): New tune. |
| (X86_TUNE_FUSE_ALU_AND_BRANCH_MEM_IMM): New tune. |
| (X86_TUNE_FUSE_ALU_AND_BRANCH_RIP_RELATIVE): New tune. |
| |
| 2025-03-04 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/118892 |
| * config/aarch64/aarch64.md (copysign<GPF:mode>3): Use |
| force_lowpart_subreg instead of lowpart_subreg. |
| |
| 2025-03-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/118976 |
| * fold-const.cc (const_unop): Use ~ rather than - for BIT_NOT_EXPR. |
| * config/aarch64/aarch64.cc (aarch64_test_sve_folding): New function. |
| (aarch64_run_selftests): Run it. |
| |
| 2025-03-04 Richard Sandiford <richard.sandiford@arm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/119002 |
| * simplify-rtx.cc |
| (simplify_context::simplify_logical_relational_operation): Handle |
| comparisons between CC values. If there is no evidence that the |
| CC values are unsigned, restrict the fold to always-true or |
| always-false results. |
| |
| 2025-03-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119096 |
| * tree-vect-loop.cc (vect_transform_reduction): Use the |
| correct else value for .COND_fn. |
| |
| 2025-03-03 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc |
| (struct aarch64_extension_info): Add field. |
| (aarch64_get_required_features): New. |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_simd_switcher::aarch64_simd_switcher): Rename to... |
| (aarch64_target_switcher::aarch64_target_switcher): ...this, |
| and extend to handle sve, nosimd and target pragmas. |
| (aarch64_simd_switcher::~aarch64_simd_switcher): Rename to... |
| (aarch64_target_switcher::~aarch64_target_switcher): ...this, |
| and extend to handle sve, nosimd and target pragmas. |
| (handle_arm_acle_h): Use aarch64_target_switcher. |
| (handle_arm_neon_h): Rename switcher and pass explicit flags. |
| (aarch64_general_init_builtins): Ditto. |
| * config/aarch64/aarch64-protos.h |
| (class aarch64_simd_switcher): Rename to... |
| (class aarch64_target_switcher): ...this, and add new members. |
| (aarch64_get_required_features): New prototype. |
| * config/aarch64/aarch64-sve-builtins.cc |
| (sve_switcher::sve_switcher): Delete |
| (sve_switcher::~sve_switcher): Delete |
| (sve_alignment_switcher::sve_alignment_switcher): New |
| (sve_alignment_switcher::~sve_alignment_switcher): New |
| (register_builtin_types): Use alignment switcher |
| (init_builtins): Rename switcher. |
| (handle_arm_neon_sve_bridge_h): Ditto. |
| (handle_arm_sme_h): Ditto. |
| (handle_arm_sve_h): Ditto, and use alignment switcher. |
| * config/aarch64/aarch64-sve-builtins.h |
| (class sve_switcher): Delete. |
| (class sme_switcher): Delete. |
| (class sve_alignment_switcher): New. |
| * config/aarch64/t-aarch64 (aarch64-builtins.o): Add $(REGS_H). |
| (aarch64-sve-builtins.o): Remove $(REG_H). |
| |
| 2025-03-03 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/thumb1.md (split patterns for GEU and LEU): New. |
| |
| 2025-03-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| Revert: |
| 2025-03-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * combine.cc (distribute_notes): |
| Reverse negative logic in ternary operators. |
| |
| 2025-03-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * combine.cc (distribute_notes): |
| Reverse negative logic in ternary operators. |
| |
| 2025-03-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/118739 |
| * combine.cc (distribute_notes) <case REG_UNUSED>: Correct the |
| logic when the register is used by I3. |
| |
| 2025-03-03 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/118785 |
| * ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): Handle non-conversion |
| unary operations separately before doing any conversions. Check |
| expr_type_first_operand_type_p for non-unary operations too. Fix type |
| of op_res. |
| |
| 2025-03-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/119057 |
| * tree-vect-loop.cc (check_reduction_path): Add argument |
| specifying whether we're analyzing the inner loop of a |
| double reduction. Do not allow extra uses outside of the |
| double reduction cycle in this case. |
| (vect_is_simple_reduction): Adjust. |
| |
| 2025-03-03 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/119067 |
| * ipa-devirt.cc (odr_types_equivalent_p): Check |
| TYPE_VECTOR_SUBPARTS for vectors. |
| |
| 2025-03-02 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/118934 |
| * config/riscv/corev.md (cv_branch): Adjust output template. |
| (branch): Likewise. |
| * config/riscv/riscv.md (branch): Likewise. |
| * config/riscv/riscv.cc (riscv_asm_output_opcode): Handle 'r' rather |
| than 'n'. |
| |
| 2025-03-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR translation/118991 |
| * config/avr/avr.cc (avr_print_operand): Print ival into |
| a temporary buffer and use %s in output_operand_lossage to make |
| the diagnostics translatable. |
| |
| 2025-03-02 Filip Kastl <fkastl@suse.cz> |
| |
| PR tree-optimization/117919 |
| * gimple-ssa-sccopy.cc (scc_copy_prop::propagate): Prune |
| statements that 'replace_uses_by ()' removed. |
| |
| 2025-03-01 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| PR target/69374 |
| * doc/install.texi (Specific, *-*-freebsd*): Simplify description. |
| |
| 2025-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR jit/117047 |
| * ggc-common.cc (ggc_internal_cleared_alloc_no_dtor): Pass size |
| rather than s as the first argument to ggc_internal_cleared_alloc. |
| |
| 2025-03-01 Yuriy Kolerov <Yuriy.Kolerov@synopsys.com> |
| |
| PR target/118906 |
| * common/config/riscv/riscv-common.cc: fix zce to zcf |
| implication. |
| |
| 2025-03-01 Jan Dubiec <jdx@o2.pl> |
| |
| PR target/114222 |
| * config/h8300/h8300.cc (h8300_init_libfuncs): For HImode override |
| calls to external ffs() (from newlib) with calls to __ffshi2() from |
| libgcc. The implementation of ffs() in newlib calls __builtin_ffs() |
| what causes infinite recursion and finally a stack overflow. |
| |
| 2025-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR other/119052 |
| * input.cc (check_line): Don't call sscanf on non-null terminated |
| buffer, instead copy line.length () bytes from line.get_buffer () |
| to a local buffer, null terminate it and call sscanf on that. |
| Formatting fix. |
| (test_replacement): Just allocate maxline * 5 rather than maxline * 15 |
| bytes for the file. Formatting fix. |
| |
| 2025-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR jit/117047 |
| * acinclude.m4 (gcc_CHECK_ATTRIBUTE_ALIAS): New. |
| * configure.ac: Add gcc_CHECK_ATTRIBUTE_ALIAS. |
| * ggc.h (ggc_internal_alloc): Remove ATTRIBUTE_MALLOC from |
| overload with finalizer pointer. Call ggc_internal_alloc_no_dtor |
| in inline overload without finalizer pointer. |
| (ggc_internal_alloc_no_dtor): Declare. |
| (ggc_internal_cleared_alloc): Remove ATTRIBUTE_MALLOC from |
| overload with finalizer pointer. Call |
| ggc_internal_cleared_alloc_no_dtor in inline overload without |
| finalizer pointer. |
| (ggc_internal_cleared_alloc_no_dtor): Declare. |
| (ggc_alloc): Call ggc_internal_alloc_no_dtor if no finalization |
| is needed. |
| (ggc_alloc_no_dtor): Call ggc_internal_alloc_no_dtor. |
| (ggc_cleared_alloc): Call ggc_internal_cleared_alloc_no_dtor if no |
| finalization is needed. |
| (ggc_vec_alloc): Call ggc_internal_alloc_no_dtor if no finalization |
| is needed. |
| (ggc_cleared_vec_alloc): Call ggc_internal_cleared_alloc_no_dtor if no |
| finalization is needed. |
| * ggc-page.cc (ggc_internal_alloc): If HAVE_ATTRIBUTE_ALIAS, turn |
| overload with finalizer into alias to ggc_internal_alloc_ and |
| rename it to ... |
| (ggc_internal_alloc_): ... this, make it extern "C". |
| (ggc_internal_alloc_no_dtor): New alias if HAVE_ATTRIBUTE_ALIAS, |
| otherwise new noinline wrapper. |
| * ggc-common.cc (ggc_internal_cleared_alloc): If HAVE_ATTRIBUTE_ALIAS, |
| turn overload with finalizer into alias to ggc_internal_alloc_ and |
| rename it to ... |
| (ggc_internal_cleared_alloc_): ... this, make it extern "C". |
| (ggc_internal_cleared_alloc_no_dtor): New alias if |
| HAVE_ATTRIBUTE_ALIAS, otherwise new noinline wrapper. |
| * ggc-none.cc (ggc_internal_alloc): If HAVE_ATTRIBUTE_ALIAS, turn |
| overload with finalizer into alias to ggc_internal_alloc_ and |
| rename it to ... |
| (ggc_internal_alloc_): ... this, make it extern "C". |
| (ggc_internal_alloc_no_dtor): New alias if HAVE_ATTRIBUTE_ALIAS, |
| otherwise new wrapper. |
| (ggc_internal_cleared_alloc): If HAVE_ATTRIBUTE_ALIAS, turn overload |
| with finalizer into alias to ggc_internal_alloc_ and rename it to ... |
| (ggc_internal_cleared_alloc_): ... this, make it extern "C". |
| (ggc_internal_cleared_alloc_no_dtor): New alias if |
| HAVE_ATTRIBUTE_ALIAS, otherwise new wrapper. |
| * genmatch.cc (ggc_internal_cleared_alloc, ggc_free): Formatting fix. |
| (ggc_internal_cleared_alloc_no_dtor): Define. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| |
| 2025-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/115871 |
| * omp-simd-clone.cc (simd_clone_adjust): For SIMD_CLONE_ARG_TYPE_MASK |
| and sc->mask_mode not VOIDmode, set elem_type to the characteristic |
| type rather than boolean_type_node. |
| |
| 2025-03-01 Jan Dubiec <jdx@o2.pl> |
| |
| PR target/109189 |
| * config/h8300/h8300.cc (h8300_print_operand): Replace %ld format |
| strings with HOST_WIDE_INT_PRINT_DEC macro in order to silence |
| -Wformat warnings when building on Windows/MinGW64. |
| |
| 2025-02-28 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/118243 |
| * ipa-sra.cc (pull_accesses_from_callee): New parameters |
| caller_ipcp_ts and param_idx. Check that scalar pulled accesses would |
| not clash with a known IPA-CP aggregate constant. |
| (param_splitting_across_edge): Pass IPA-CP transformation summary and |
| caller parameter index to pull_accesses_from_callee. |
| |
| 2025-02-28 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/111245 |
| * ipa-modref.cc (modref_access_analysis::analyze_store): Do |
| not guard the check of whether the stmt could throw by |
| cfun->can_throw_non_call_exceptions. |
| |
| 2025-02-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/117712 |
| * expr.cc (force_operand): Handle {,UNSIGNED_}FIX with |
| FIX operand using expand_fix on the inner FIX operand. |
| |
| 2025-02-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/87984 |
| * tree-ssa-dom.cc (dom_opt_dom_walker::optimize_stmt): Do |
| not perform redundant store elimination to hard register |
| variables. |
| * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): |
| Likewise. |
| |
| 2025-02-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/66279 |
| * gimplify.cc (gimplify_asm_expr): Copy TREE_PURPOSE before |
| rewriting it for "+" processing. |
| |
| 2025-02-28 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): |
| Moved to ... |
| * config/i386/i386.cc (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): |
| Here. |
| |
| 2025-02-27 Pan Li <pan2.li@intel.com> |
| |
| PR target/118931 |
| * config/riscv/riscv-v.cc (expand_const_vector): Add overflow to |
| smode check and clean up highest bits if overflow. |
| |
| 2025-02-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/119030 |
| * gimple-fold.cc (fold_truth_andor_for_ifcombine): Fix a pasto, |
| ll_unsignedp -> rl_unsignedp. |
| |
| 2025-02-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/118860 |
| * input.h (file_cache::tune): No longer static. Rename argument |
| from num_file_slots_ to num_file_slots. Formatting fix. |
| (file_cache::num_file_slots): Renamed to ... |
| (file_cache::m_num_file_slots): ... this. No longer static. |
| * input.cc (file_cache_slot::tune): Change return type from void to |
| size_t, return previous file_cache_slot::line_record_size value. |
| Formatting fixes. |
| (file_cache::tune): Rename argument from num_file_slots_ to |
| num_file_slots. Set m_num_file_slots rather than num_file_slots. |
| If m_num_file_slots or file_cache_slot::line_record_size changes, |
| delete[] m_file_slots and new it again. |
| (file_cache::num_file_slots): Remove definition. |
| (file_cache::lookup_file): Use m_num_file_slots rather than |
| num_file_slots. |
| (file_cache::evicted_cache_tab_entry): Likewise. |
| (file_cache::file_cache): Likewise. Initialize m_num_file_slots |
| to 16. |
| (file_cache::dump): Use m_num_file_slots rather than num_file_slots. |
| (file_cache_slot::get_next_line): Formatting fixes. |
| (file_cache_slot::read_line_num): Likewise. |
| (get_source_text_between): Likewise. |
| * toplev.cc (toplev::main): Call global_dc->get_file_cache ().tune |
| rather than file_cache::tune. |
| |
| 2025-02-27 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx.h (MAX_FIXED_MODE_SIZE): '#define'. |
| |
| 2025-02-27 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx.opt (-mfake-ptx-alloca): New. |
| * config/nvptx/nvptx-protos.h (nvptx_output_fake_ptx_alloca): |
| Declare. |
| * config/nvptx/nvptx.cc (nvptx_output_fake_ptx_alloca): New. |
| * config/nvptx/nvptx.md (define_insn "@nvptx_alloca_<mode>") |
| [!(TARGET_PTX_7_3 && TARGET_SM52)]: Use it for |
| '-mfake-ptx-alloca'. |
| |
| 2025-02-27 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx.md (define_expand "allocate_stack") |
| [!TARGET_SOFT_STACK]: Move |
| 'sorry ("dynamic stack allocation not supported");'... |
| (define_insn "@nvptx_alloca_<mode>"): ... here. |
| |
| 2025-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/108369 |
| * doc/invoke.texi: Add a note to clarify. Adjust some wording. |
| |
| 2025-02-27 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/x86-tune.def |
| (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): Add GNR, GNR-D, DMR. |
| (X86_TUNE_AVOID_256FMA_CHAINS): Ditto. |
| (X86_TUNE_AVX512_MOVE_BY_PIECES): Ditto. |
| (X86_TUNE_AVX512_STORE_BY_PIECES): Ditto. |
| |
| 2025-02-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-range-phi.cc (phi_analyzer::process_phi): Fix comment typo, |
| dpoesn;t -> doesn't. |
| |
| 2025-02-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR testsuite/116143 |
| * Makefile.in (EXTRA_BACKEND_OBJS): New variable. |
| (BACKEND): Use it before libbackend.a. |
| |
| 2025-02-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/118819 |
| * alias.cc (memrefs_conflict_p): Perform arithmetics on c, xsize and |
| ysize in poly_offset_int and return -1 if it is not representable in |
| poly_int64. |
| |
| 2025-02-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/119001 |
| * varasm.cc (output_constructor_regular_field): Don't fail |
| assertion if next is non-NULL and FIELD_DECL if |
| TREE_CODE (local->type) is UNION_TYPE. |
| |
| 2025-02-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/114870 |
| * ginclude/stddef.h (__STDC_VERSION_STDDEF_H__, unreachable): Don't |
| redefine multiple times if stddef.h is first included without __need_* |
| defines and later with them. Move nullptr_t and unreachable and |
| __STDC_VERSION_STDDEF_H__ definitions into the same |
| defined (__STDC_VERSION__) && __STDC_VERSION__ > 201710L #if block. |
| |
| 2025-02-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/119002 |
| * config/arm/arm.h (REVERSE_CONDITION): Use CODE - the macro |
| argument - in the macro rather than code. |
| |
| 2025-02-26 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR middle-end/119021 |
| * lra.cc (lra_asm_insn_error): Use lra_invalidate_insn_data |
| instead of lra_update_insn_regno_info. |
| * lra-assigns.cc (lra_split_hard_reg_for): Restore old code. |
| |
| 2025-02-26 Alexandre Oliva <oliva@adacore.com> |
| |
| * doc/sourcebuild.texi: Add x86 effective target. |
| |
| 2025-02-26 Alexandre Oliva <oliva@adacore.com> |
| |
| * doc/sourcebuild.texi (dg-do-if): Document. |
| |
| 2025-02-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR testsuite/116143 |
| * simple-diagnostic-path.h (simple_diagnostic_path::num_events): Define |
| inline. |
| (simple_diagnostic_path::num_threads): Likewise. |
| * simple-diagnostic-path.cc (simple_diagnostic_path::num_events): |
| Remove out of line definition. |
| (simple_diagnostic_path::num_threads): Likewise. |
| |
| 2025-02-25 Jason Merrill <jason@redhat.com> |
| |
| * doc/install.texi: 10.5 won't bootstrap with C++98. |
| |
| 2025-02-25 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/115458 |
| * lra-int.h (LRA_MAX_FAILED_SPLITS): Define and check its value. |
| (lra_split_hard_reg_for): Change prototype. |
| * lra.cc (lra): Try to split hard reg range several times after a |
| failure. |
| * lra-assigns.cc (lra_split_hard_reg_for): Add an arg, a flag of |
| giving up. Report asm error and nullify the asm insn depending on |
| the arg value. |
| |
| 2025-02-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR translation/118991 |
| * config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Use %wd |
| instead of %" HOST_WIDE_INT_PRINT "d to print a hwi in error. |
| |
| 2025-02-25 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/118654 |
| * config/i386/i386-d.cc (ix86_d_target_versions): Predefine GNU_CET. |
| (ix86_d_handle_target_cf_protection): New. |
| (ix86_d_register_target_info): Add 'CET' TargetInfo key. |
| |
| 2025-02-24 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/114516 |
| * config/riscv/riscv-vector-costs.cc (compute_estimated_lmul): |
| Add pattern statements to program points. |
| |
| 2025-02-24 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR middle-end/118950 |
| * tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Use |
| original LHS's type. |
| |
| 2025-02-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/118915 |
| * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): For |
| highj == NULL_TREE use TYPE_MAX_VALUE (TREE_TYPE (lowj)) rather |
| than TYPE_MAX_VALUE (type). |
| |
| 2025-02-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118973 |
| * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Calls |
| that alter control flow in unpredictable ways need to be |
| preserved. |
| |
| 2025-02-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/118993 |
| * gimplify.cc (gimplify_scan_omp_clauses): Fix diagnostics typo, |
| undfined -> undefined. |
| |
| 2025-02-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/117023 |
| * builtin-attrs.def (ATTR_NONNULL_IF_NONZERO): New DEF_ATTR_IDENT. |
| (ATTR_NOTHROW_NONNULL_IF12_LEAF, ATTR_NOTHROW_NONNULL_IF13_LEAF, |
| ATTR_NOTHROW_NONNULL_IF123_LEAF, ATTR_NOTHROW_NONNULL_IF23_LEAF, |
| ATTR_NOTHROW_NONNULL_1_IF23_LEAF, ATTR_PURE_NOTHROW_NONNULL_IF12_LEAF, |
| ATTR_PURE_NOTHROW_NONNULL_IF13_LEAF, |
| ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF, |
| ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF, |
| ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF): New |
| DEF_ATTR_TREE_LIST. |
| * builtins.def (BUILT_IN_STRNDUP): Use |
| ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF instead of |
| ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF. |
| (BUILT_IN_STRNCAT, BUILT_IN_STRNCAT_CHK): Use |
| ATTR_NOTHROW_NONNULL_1_IF23_LEAF instead of ATTR_NOTHROW_NONNULL_LEAF. |
| (BUILT_IN_BCOPY, BUILT_IN_MEMCPY, BUILT_IN_MEMCPY_CHK, |
| BUILT_IN_MEMMOVE, BUILT_IN_MEMMOVE_CHK, BUILT_IN_STRNCPY, |
| BUILT_IN_STRNCPY_CHK): Use ATTR_NOTHROW_NONNULL_IF123_LEAF instead of |
| ATTR_NOTHROW_NONNULL_LEAF. |
| (BUILT_IN_MEMPCPY, BUILT_IN_MEMPCPY_CHK, BUILT_IN_STPNCPY, |
| BUILT_IN_STPNCPY_CHK): Use ATTR_NOTHROW_NONNULL_IF123_LEAF instead of |
| ATTR_RETNONNULL_NOTHROW_LEAF. |
| (BUILT_IN_BZERO, BUILT_IN_MEMSET, BUILT_IN_MEMSET_CHK): Use |
| ATTR_NOTHROW_NONNULL_IF13_LEAF instead of ATTR_NOTHROW_NONNULL_LEAF. |
| (BUILT_IN_BCMP, BUILT_IN_MEMCMP, BUILT_IN_STRNCASECMP, |
| BUILT_IN_STRNCMP): Use ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF instead of |
| ATTR_PURE_NOTHROW_NONNULL_LEAF. |
| (BUILT_IN_STRNLEN): Use ATTR_PURE_NOTHROW_NONNULL_IF12_LEAF instead of |
| ATTR_PURE_NOTHROW_NONNULL_LEAF. |
| (BUILT_IN_MEMCHR): Use ATTR_PURE_NOTHROW_NONNULL_IF13_LEAF instead of |
| ATTR_PURE_NOTHROW_NONNULL_LEAF. |
| |
| 2025-02-24 Lino Hsing-Yu Peng <linopeng@andestech.com> |
| |
| * config/riscv/riscv.cc: Set multi push regs bits. |
| |
| 2025-02-22 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/bpf/bpf.md (define_expand "allocate_stack"): Emit |
| 'sorry, unimplemented: dynamic stack allocation not supported'. |
| * config/nvptx/nvptx.md (define_expand "allocate_stack") |
| [!TARGET_SOFT_STACK && !(TARGET_PTX_7_3 && TARGET_SM52)]: Likewise. |
| |
| 2025-02-21 H.J. Lu <hjl.tools@gmail.com> |
| |
| * sese.cc (debug_edge): Append a newline. |
| |
| 2025-02-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118954 |
| * tree-predcom.cc (ref_at_iteration): Make sure to not |
| associate the constant offset with DR_BASE_ADDRESS when |
| that is an offsetted pointer. |
| |
| 2025-02-20 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-core.h: Add comments making clear that these |
| functions implicitly use global_dc. |
| |
| 2025-02-20 David Malcolm <dmalcolm@redhat.com> |
| |
| * libsarifreplay.cc |
| (sarif_replayer::make_plain_text_within_result_message): Capture |
| which json::string was used. When reporting on unescaped "{" or |
| "}" in SARIF message strings, use that string rather than the |
| message object, and refer the user to §3.11.5 ("Messages with |
| placeholders") rather than §3.11.11 ("arguments"). Ideally we'd |
| place the error at the precise character, but that can't be done |
| without reworking json-parsing.cc's lexer::lex_string, which is |
| too invasive for stage 4. |
| (sarif_replayer::get_plain_text_from_mfms): Capture which |
| json::string was used. |
| (sarif_replayer::lookup_plain_text_within_result_message): |
| Likewise. |
| |
| 2025-02-20 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| PR target/69374 |
| * doc/install.texi (Specific, aarch64*-*-*): Drop note for |
| Binutils pre 2.24. |
| |
| 2025-02-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vec_cmp_float): |
| Remove can_invert_p argument and change return type to void. |
| * config/aarch64/aarch64.cc (aarch64_expand_sve_vec_cmp_float): |
| Likewise. |
| * config/aarch64/aarch64-sve.md (vec_cmp<mode><vpred>): Update call |
| accordingly. |
| |
| 2025-02-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118521 |
| * tree-scalar-evolution.cc (final_value_replacement_loop): |
| Fold uses of the replaced PHI def. |
| |
| 2025-02-20 Filip Kastl <fkastl@suse.cz> |
| |
| * doc/invoke.texi: Fix typo file-cache-files -> |
| file-cache-lines. |
| |
| 2025-02-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/86270 |
| * tree-outof-ssa.cc (insert_backedge_copies): Pattern |
| match a single conflict in a loop condition and adjust |
| that avoiding the conflict if possible. |
| |
| 2025-02-20 H.J. Lu <hjl.tools@gmail.com> |
| |
| Revert: |
| 2025-02-16 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/109780 |
| PR target/109093 |
| * config/i386/i386.cc (ix86_update_stack_alignment): New. |
| (ix86_find_all_reg_use_1): Likewise. |
| (ix86_find_all_reg_use): Likewise. |
| (ix86_find_max_used_stack_alignment): Also check memory accesses |
| from registers defined by stack or frame registers. |
| |
| 2025-02-20 H.J. Lu <hjl.tools@gmail.com> |
| |
| Revert: |
| 2025-02-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.cc (ix86_find_all_reg_use): |
| Scan only for SET RTX in PARALLEL. |
| |
| 2025-02-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/118919 |
| * input.cc (file_cache_slot::m_file_path): Make non-const. |
| (file_cache_slot::evict): Free m_file_path. |
| (file_cache_slot::create): Store a copy of file_path if non-null. |
| (file_cache_slot::~file_cache_slot): Free m_file_path. |
| |
| 2025-02-19 Pan Li <pan2.li@intel.com> |
| |
| PR middle-end/116351 |
| * tree-vect-loop.cc (vect_verify_loop_lens): Return false if the |
| loop_vinfo has relevant mode such as DImode. |
| |
| 2025-02-19 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/lasx.md (UNSPEC_LASX_XVSRARI): Remove. |
| (UNSPEC_LASX_XVSRLRI): Remove. |
| (lasx_xvsrari_<lsxfmt>): Remove. |
| (lasx_xvsrlri_<lsxfmt>): Remove. |
| * config/loongarch/lsx.md (UNSPEC_LSX_VSRARI): Remove. |
| (UNSPEC_LSX_VSRLRI): Remove. |
| (lsx_vsrari_<lsxfmt>): Remove. |
| (lsx_vsrlri_<lsxfmt>): Remove. |
| * config/loongarch/simd.md (simd_<optab>_imm_round_<mode>): New |
| define_insn. |
| (<simd_isa>_<x>v<insn>ri_<simdfmt>): New define_expand. |
| |
| 2025-02-19 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/simd.md (wvec_half): New define_mode_attr. |
| (<su>dot_prod<wvec_half><mode>): New define_expand. |
| |
| 2025-02-19 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/simd.md (even_odd): New define_int_attr. |
| (vec_widen_<su>mult_<even_odd>_<mode>): New define_expand. |
| |
| 2025-02-19 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/simd.md (LVEC): New define_mode_attr. |
| (simdfmt_as_i): Make it same as simdfmt for integer vector |
| modes. |
| (_f): New define_mode_attr. |
| * config/loongarch/lsx.md (lsx_vpickev_b): Remove. |
| (lsx_vpickev_h): Remove. |
| (lsx_vpickev_w): Remove. |
| (lsx_vpickev_w_f): Remove. |
| (lsx_vpickod_b): Remove. |
| (lsx_vpickod_h): Remove. |
| (lsx_vpickod_w): Remove. |
| (lsx_vpickev_w_f): Remove. |
| (lsx_pick_evod_<mode>): New define_insn. |
| (lsx_<x>vpick<ev_od>_<simdfmt_as_i><_f>): New |
| define_expand. |
| |
| 2025-02-19 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/lasx.md (UNSPEC_LASX_XVMADDWEV): Remove. |
| (UNSPEC_LASX_XVMADDWEV2): Remove. |
| (UNSPEC_LASX_XVMADDWEV3): Remove. |
| (UNSPEC_LASX_XVMADDWOD): Remove. |
| (UNSPEC_LASX_XVMADDWOD2): Remove. |
| (UNSPEC_LASX_XVMADDWOD3): Remove. |
| (lasx_xvmaddwev_h_b<u>): Remove. |
| (lasx_xvmaddwev_w_h<u>): Remove. |
| (lasx_xvmaddwev_d_w<u>): Remove. |
| (lasx_xvmaddwev_q_d): Remove. |
| (lasx_xvmaddwod_h_b<u>): Remove. |
| (lasx_xvmaddwod_w_h<u>): Remove. |
| (lasx_xvmaddwod_d_w<u>): Remove. |
| (lasx_xvmaddwod_q_d): Remove. |
| (lasx_xvmaddwev_q_du): Remove. |
| (lasx_xvmaddwod_q_du): Remove. |
| (lasx_xvmaddwev_h_bu_b): Remove. |
| (lasx_xvmaddwev_w_hu_h): Remove. |
| (lasx_xvmaddwev_d_wu_w): Remove. |
| (lasx_xvmaddwev_q_du_d): Remove. |
| (lasx_xvmaddwod_h_bu_b): Remove. |
| (lasx_xvmaddwod_w_hu_h): Remove. |
| (lasx_xvmaddwod_d_wu_w): Remove. |
| (lasx_xvmaddwod_q_du_d): Remove. |
| * config/loongarch/lsx.md (UNSPEC_LSX_VMADDWEV): Remove. |
| (UNSPEC_LSX_VMADDWEV2): Remove. |
| (UNSPEC_LSX_VMADDWEV3): Remove. |
| (UNSPEC_LSX_VMADDWOD): Remove. |
| (UNSPEC_LSX_VMADDWOD2): Remove. |
| (UNSPEC_LSX_VMADDWOD3): Remove. |
| (lsx_vmaddwev_h_b<u>): Remove. |
| (lsx_vmaddwev_w_h<u>): Remove. |
| (lsx_vmaddwev_d_w<u>): Remove. |
| (lsx_vmaddwev_q_d): Remove. |
| (lsx_vmaddwod_h_b<u>): Remove. |
| (lsx_vmaddwod_w_h<u>): Remove. |
| (lsx_vmaddwod_d_w<u>): Remove. |
| (lsx_vmaddwod_q_d): Remove. |
| (lsx_vmaddwev_q_du): Remove. |
| (lsx_vmaddwod_q_du): Remove. |
| (lsx_vmaddwev_h_bu_b): Remove. |
| (lsx_vmaddwev_w_hu_h): Remove. |
| (lsx_vmaddwev_d_wu_w): Remove. |
| (lsx_vmaddwev_q_du_d): Remove. |
| (lsx_vmaddwod_h_bu_b): Remove. |
| (lsx_vmaddwod_w_hu_h): Remove. |
| (lsx_vmaddwod_d_wu_w): Remove. |
| (lsx_vmaddwod_q_du_d): Remove. |
| * config/loongarch/simd.md (simd_maddw_evod_<mode>_<su>): |
| New define_insn. |
| (<simd_isa>_<x>vmaddw<ev_od>_<simdfmt_w>_<simdfmt><u>): New |
| define_expand. |
| (simd_maddw_evod_<mode>_hetero): New define_insn. |
| (<simd_isa>_<x>vmaddw<ev_od>_<simdfmt_w>_<simdfmt>u_<simdfmt>): |
| New define_expand. |
| (<simd_isa>_maddw<ev_od>_q_d<u>_punned): New define_expand. |
| (<simd_isa>_maddw<ev_od>_q_du_d_punned): New define_expand. |
| * config/loongarch/loongarch-builtins.cc |
| (CODE_FOR_lsx_vmaddwev_q_d): Define as a macro to override it |
| with the punned expand. |
| (CODE_FOR_lsx_vmaddwev_q_du): Likewise. |
| (CODE_FOR_lsx_vmaddwev_q_du_d): Likewise. |
| (CODE_FOR_lsx_vmaddwod_q_d): Likewise. |
| (CODE_FOR_lsx_vmaddwod_q_du): Likewise. |
| (CODE_FOR_lsx_vmaddwod_q_du_d): Likewise. |
| (CODE_FOR_lasx_xvmaddwev_q_d): Likewise. |
| (CODE_FOR_lasx_xvmaddwev_q_du): Likewise. |
| (CODE_FOR_lasx_xvmaddwev_q_du_d): Likewise. |
| (CODE_FOR_lasx_xvmaddwod_q_d): Likewise. |
| (CODE_FOR_lasx_xvmaddwod_q_du): Likewise. |
| (CODE_FOR_lasx_xvmaddwod_q_du_d): Likewise. |
| |
| 2025-02-19 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/lasx.md (UNSPEC_LASX_XVHADDW_Q_D): Remove. |
| (UNSPEC_LASX_XVHSUBW_Q_D): Remove. |
| (UNSPEC_LASX_XVHADDW_QU_DU): Remove. |
| (UNSPEC_LASX_XVHSUBW_QU_DU): Remove. |
| (lasx_xvh<addsub:optab>w_h<u>_b<u>): Remove. |
| (lasx_xvh<addsub:optab>w_w<u>_h<u>): Remove. |
| (lasx_xvh<addsub:optab>w_d<u>_w<u>): Remove. |
| (lasx_xvhaddw_q_d): Remove. |
| (lasx_xvhsubw_q_d): Remove. |
| (lasx_xvhaddw_qu_du): Remove. |
| (lasx_xvhsubw_qu_du): Remove. |
| (reduc_plus_scal_v4di): Call gen_lasx_haddw_q_d_punned instead |
| of gen_lasx_xvhaddw_q_d. |
| (reduc_plus_scal_v8si): Likewise. |
| * config/loongarch/lsx.md (UNSPEC_LSX_VHADDW_Q_D): Remove. |
| (UNSPEC_ASX_VHSUBW_Q_D): Remove. |
| (UNSPEC_ASX_VHADDW_QU_DU): Remove. |
| (UNSPEC_ASX_VHSUBW_QU_DU): Remove. |
| (lsx_vh<addsub:optab>w_h<u>_b<u>): Remove. |
| (lsx_vh<addsub:optab>w_w<u>_h<u>): Remove. |
| (lsx_vh<addsub:optab>w_d<u>_w<u>): Remove. |
| (lsx_vhaddw_q_d): Remove. |
| (lsx_vhsubw_q_d): Remove. |
| (lsx_vhaddw_qu_du): Remove. |
| (lsx_vhsubw_qu_du): Remove. |
| (reduc_plus_scal_v2di): Change the temporary register mode to |
| V1TI, and pun the mode calling gen_vec_extractv2didi. |
| (reduc_plus_scal_v4si): Change the temporary register mode to |
| V1TI. |
| * config/loongarch/simd.md (simd_h<optab>w_<mode>_<su>): New |
| define_insn. |
| (<simd_isa>_<x>vh<optab>w_<simdfmt_w><u>_<simdfmt><u>): New |
| define_expand. |
| (<simd_isa>_h<optab>w_q<u>_d<u>_punned): New define_expand. |
| * config/loongarch/loongarch-builtins.cc |
| (CODE_FOR_lsx_vhaddw_q_d): Define as a macro to override with |
| punned expand. |
| (CODE_FOR_lsx_vhaddw_qu_du): Likewise. |
| (CODE_FOR_lsx_vhsubw_q_d): Likewise. |
| (CODE_FOR_lsx_vhsubw_qu_du): Likewise. |
| (CODE_FOR_lasx_xvhaddw_q_d): Likewise. |
| (CODE_FOR_lasx_xvhaddw_qu_du): Likewise. |
| (CODE_FOR_lasx_xvhsubw_q_d): Likewise. |
| (CODE_FOR_lasx_xvhsubw_qu_du): Likewise. |
| |
| 2025-02-19 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/lasx.md (UNSPEC_LASX_XVADDWEV): Remove. |
| (UNSPEC_LASX_XVADDWEV2): Remove. |
| (UNSPEC_LASX_XVADDWEV3): Remove. |
| (UNSPEC_LASX_XVSUBWEV): Remove. |
| (UNSPEC_LASX_XVSUBWEV2): Remove. |
| (UNSPEC_LASX_XVMULWEV): Remove. |
| (UNSPEC_LASX_XVMULWEV2): Remove. |
| (UNSPEC_LASX_XVMULWEV3): Remove. |
| (UNSPEC_LASX_XVADDWOD): Remove. |
| (UNSPEC_LASX_XVADDWOD2): Remove. |
| (UNSPEC_LASX_XVADDWOD3): Remove. |
| (UNSPEC_LASX_XVSUBWOD): Remove. |
| (UNSPEC_LASX_XVSUBWOD2): Remove. |
| (UNSPEC_LASX_XVMULWOD): Remove. |
| (UNSPEC_LASX_XVMULWOD2): Remove. |
| (UNSPEC_LASX_XVMULWOD3): Remove. |
| (lasx_xv<addsubmul:optab>wev_h_b<u>): Remove. |
| (lasx_xv<addsubmul:optab>wev_w_h<u>): Remove. |
| (lasx_xv<addsubmul:optab>wev_d_w<u>): Remove. |
| (lasx_xvaddwev_q_d): Remove. |
| (lasx_xvsubwev_q_d): Remove. |
| (lasx_xvmulwev_q_d): Remove. |
| (lasx_xv<addsubmul:optab>wod_h_b<u>): Remove. |
| (lasx_xv<addsubmul:optab>wod_w_h<u>): Remove. |
| (lasx_xv<addsubmul:optab>wod_d_w<u>): Remove. |
| (lasx_xvaddwod_q_d): Remove. |
| (lasx_xvsubwod_q_d): Remove. |
| (lasx_xvmulwod_q_d): Remove. |
| (lasx_xvaddwev_q_du): Remove. |
| (lasx_xvsubwev_q_du): Remove. |
| (lasx_xvmulwev_q_du): Remove. |
| (lasx_xvaddwod_q_du): Remove. |
| (lasx_xvsubwod_q_du): Remove. |
| (lasx_xvmulwod_q_du): Remove. |
| (lasx_xv<addmul:optab>wev_h_bu_b): Remove. |
| (lasx_xv<addmul:optab>wev_w_hu_h): Remove. |
| (lasx_xv<addmul:optab>wev_d_wu_w): Remove. |
| (lasx_xv<addmul:optab>wod_h_bu_b): Remove. |
| (lasx_xv<addmul:optab>wod_w_hu_h): Remove. |
| (lasx_xv<addmul:optab>wod_d_wu_w): Remove. |
| (lasx_xvaddwev_q_du_d): Remove. |
| (lasx_xvsubwev_q_du_d): Remove. |
| (lasx_xvmulwev_q_du_d): Remove. |
| (lasx_xvaddwod_q_du_d): Remove. |
| (lasx_xvsubwod_q_du_d): Remove. |
| * config/loongarch/lsx.md (UNSPEC_LSX_XVADDWEV): Remove. |
| (UNSPEC_LSX_VADDWEV2): Remove. |
| (UNSPEC_LSX_VADDWEV3): Remove. |
| (UNSPEC_LSX_VSUBWEV): Remove. |
| (UNSPEC_LSX_VSUBWEV2): Remove. |
| (UNSPEC_LSX_VMULWEV): Remove. |
| (UNSPEC_LSX_VMULWEV2): Remove. |
| (UNSPEC_LSX_VMULWEV3): Remove. |
| (UNSPEC_LSX_VADDWOD): Remove. |
| (UNSPEC_LSX_VADDWOD2): Remove. |
| (UNSPEC_LSX_VADDWOD3): Remove. |
| (UNSPEC_LSX_VSUBWOD): Remove. |
| (UNSPEC_LSX_VSUBWOD2): Remove. |
| (UNSPEC_LSX_VMULWOD): Remove. |
| (UNSPEC_LSX_VMULWOD2): Remove. |
| (UNSPEC_LSX_VMULWOD3): Remove. |
| (lsx_v<addsubmul:optab>wev_h_b<u>): Remove. |
| (lsx_v<addsubmul:optab>wev_w_h<u>): Remove. |
| (lsx_v<addsubmul:optab>wev_d_w<u>): Remove. |
| (lsx_vaddwev_q_d): Remove. |
| (lsx_vsubwev_q_d): Remove. |
| (lsx_vmulwev_q_d): Remove. |
| (lsx_v<addsubmul:optab>wod_h_b<u>): Remove. |
| (lsx_v<addsubmul:optab>wod_w_h<u>): Remove. |
| (lsx_v<addsubmul:optab>wod_d_w<u>): Remove. |
| (lsx_vaddwod_q_d): Remove. |
| (lsx_vsubwod_q_d): Remove. |
| (lsx_vmulwod_q_d): Remove. |
| (lsx_vaddwev_q_du): Remove. |
| (lsx_vsubwev_q_du): Remove. |
| (lsx_vmulwev_q_du): Remove. |
| (lsx_vaddwod_q_du): Remove. |
| (lsx_vsubwod_q_du): Remove. |
| (lsx_vmulwod_q_du): Remove. |
| (lsx_v<addmul:optab>wev_h_bu_b): Remove. |
| (lsx_v<addmul:optab>wev_w_hu_h): Remove. |
| (lsx_v<addmul:optab>wev_d_wu_w): Remove. |
| (lsx_v<addmul:optab>wod_h_bu_b): Remove. |
| (lsx_v<addmul:optab>wod_w_hu_h): Remove. |
| (lsx_v<addmul:optab>wod_d_wu_w): Remove. |
| (lsx_vaddwev_q_du_d): Remove. |
| (lsx_vsubwev_q_du_d): Remove. |
| (lsx_vmulwev_q_du_d): Remove. |
| (lsx_vaddwod_q_du_d): Remove. |
| (lsx_vsubwod_q_du_d): Remove. |
| (lsx_vmulwod_q_du_d): Remove. |
| * config/loongarch/loongarch-modes.def: Add V4TI and V1DI. |
| * config/loongarch/loongarch-protos.h |
| (loongarch_gen_stepped_int_parallel): New function prototype. |
| * config/loongarch/loongarch.cc (loongarch_print_operand): |
| Accept 'O' for printing "ev" or "od." |
| (loongarch_gen_stepped_int_parallel): Implement. |
| * config/loongarch/predicates.md |
| (vect_par_cnst_even_or_odd_half): New define_predicate. |
| * config/loongarch/simd.md (WVEC_HALF): New define_mode_attr. |
| (simdfmt_w): Likewise. |
| (zero_one): New define_int_iterator. |
| (ev_od): New define_int_attr. |
| (simd_<optab>w_evod_<mode:IVEC>_<su>): New define_insn. |
| (<simd_isa>_<x>v<optab>w<ev_od>_<simdfmt_w>_<simdfmt><u>): New |
| define_expand. |
| (simd_<optab>w_evod_<mode>_hetero): New define_insn. |
| (<simd_isa>_<x>v<optab>w<ev_od>_<simdfmt_w>_<simdfmt>u_<simdfmt>): |
| New define_expand. |
| (DIVEC): New define_mode_iterator. |
| (<simd_isa>_<optab>w<ev_od>_q_d<u>_punned): New define_expand. |
| (<simd_isa>_<optab>w<ev_od>_q_du_d_punned): Likewise. |
| * config/loongarch/loongarch-builtins.cc |
| (CODE_FOR_lsx_vaddwev_q_d): Define as a macro to override it |
| with the punned expand. |
| (CODE_FOR_lsx_vaddwev_q_du): Likewise. |
| (CODE_FOR_lsx_vsubwev_q_d): Likewise. |
| (CODE_FOR_lsx_vsubwev_q_du): Likewise. |
| (CODE_FOR_lsx_vmulwev_q_d): Likewise. |
| (CODE_FOR_lsx_vmulwev_q_du): Likewise. |
| (CODE_FOR_lsx_vaddwod_q_d): Likewise. |
| (CODE_FOR_lsx_vaddwod_q_du): Likewise. |
| (CODE_FOR_lsx_vsubwod_q_d): Likewise. |
| (CODE_FOR_lsx_vsubwod_q_du): Likewise. |
| (CODE_FOR_lsx_vmulwod_q_d): Likewise. |
| (CODE_FOR_lsx_vmulwod_q_du): Likewise. |
| (CODE_FOR_lsx_vaddwev_q_du_d): Likewise. |
| (CODE_FOR_lsx_vmulwev_q_du_d): Likewise. |
| (CODE_FOR_lsx_vaddwod_q_du_d): Likewise. |
| (CODE_FOR_lsx_vmulwod_q_du_d): Likewise. |
| (CODE_FOR_lasx_xvaddwev_q_d): Likewise. |
| (CODE_FOR_lasx_xvaddwev_q_du): Likewise. |
| (CODE_FOR_lasx_xvsubwev_q_d): Likewise. |
| (CODE_FOR_lasx_xvsubwev_q_du): Likewise. |
| (CODE_FOR_lasx_xvmulwev_q_d): Likewise. |
| (CODE_FOR_lasx_xvmulwev_q_du): Likewise. |
| (CODE_FOR_lasx_xvaddwod_q_d): Likewise. |
| (CODE_FOR_lasx_xvaddwod_q_du): Likewise. |
| (CODE_FOR_lasx_xvsubwod_q_d): Likewise. |
| (CODE_FOR_lasx_xvsubwod_q_du): Likewise. |
| (CODE_FOR_lasx_xvmulwod_q_d): Likewise. |
| (CODE_FOR_lasx_xvmulwod_q_du): Likewise. |
| (CODE_FOR_lasx_xvaddwev_q_du_d): Likewise. |
| (CODE_FOR_lasx_xvmulwev_q_du_d): Likewise. |
| (CODE_FOR_lasx_xvaddwod_q_du_d): Likewise. |
| (CODE_FOR_lasx_xvmulwod_q_du_d): Likewise. |
| |
| 2025-02-19 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/lsx.md (mov<LSX:mode>): Remove. |
| (movmisalign<LSX:mode>): Remove. |
| (mov<LSX:mode>_lsx): Remove. |
| * config/loongarch/lasx.md (mov<LASX:mode>): Remove. |
| (movmisalign<LASX:mode>): Remove. |
| (mov<LASX:mode>_lasx): Remove. |
| * config/loongarch/loongarch-modes.def (V1TI): Add. |
| (V2TI): Mention in the comment. |
| * config/loongarch/loongarch.md (mode): Add V1TI and V2TI. |
| * config/loongarch/simd.md (ALLVEC_TI): New mode iterator. |
| (mov<ALLVEC_TI:mode): New define_expand. |
| (movmisalign<ALLVEC_TI:mode>): Likewise. |
| (mov<ALLVEC_TI:mode>_simd): New define_insn_and_split. |
| |
| 2025-02-19 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch-protos.h |
| (loongarch_const_vector_vrepli): New function prototype. |
| * config/loongarch/loongarch.cc (loongarch_const_vector_vrepli): |
| Implement. |
| (loongarch_const_insns): Call loongarch_const_vector_vrepli |
| instead of loongarch_const_vector_same_int_p. |
| (loongarch_split_vector_move_p): Likewise. |
| (loongarch_output_move): Use loongarch_const_vector_vrepli to |
| pun operend[1] into a better mode if it's a const int vector, |
| and decide the suffix of [x]vrepli with the new mode. |
| * config/loongarch/constraints.md (YI): Call |
| loongarch_const_vector_vrepli instead of |
| loongarch_const_vector_same_int_p. |
| |
| 2025-02-19 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/115478 |
| * config/loongarch/loongarch.md (any_or_plus): New |
| define_code_iterator. |
| (bstrins_<mode>_for_ior_mask): Use any_or_plus instead of ior. |
| (bytepick_w_<bytepick_imm>): Likewise. |
| (bytepick_d_<bytepick_imm>): Likewise. |
| (bytepick_d_<bytepick_imm>_rev): Likewise. |
| |
| 2025-02-19 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR middle-end/113525 |
| * doc/invoke.texi (dump-rtl-sibling): Drop documentation for pass |
| removed long ago. |
| (dump-rtl-unshare): Likewise. |
| |
| 2025-02-18 Andi Kleen <ak@gcc.gnu.org> |
| |
| * doc/invoke.texi: |
| |
| 2025-02-18 David Malcolm <dmalcolm@redhat.com> |
| |
| * opts-diagnostic.cc (sarif_scheme_handler::make_sink): Put |
| properties in alphabetical order. |
| |
| 2025-02-18 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/115703 |
| * config/riscv/riscv-vsetvl.cc: Use max_sew for calculating the |
| new LMUL. |
| |
| 2025-02-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/108840 |
| * late-combine.cc (late_combine::check_register_pressure): |
| Take only allocatable registers into account when checking |
| the permissiveness of register classes. |
| |
| 2025-02-18 Alex Coplan <alex.coplan@arm.com> |
| |
| PR rtl-optimization/118320 |
| * pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Tweak wording in dump |
| message when punting on invalid use arrays. |
| |
| 2025-02-18 Soumya AR <soumyaa@nvidia.com> |
| |
| * config/aarch64/tuning_models/generic_armv8_a.h: Updated prefetch |
| struct pointer. |
| |
| 2025-02-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/98845 |
| * tree-ssa-tail-merge.cc (stmt_local_def): Consider a |
| def with no uses not local. |
| |
| 2025-02-18 Pan Li <pan2.li@intel.com> |
| |
| PR target/118540 |
| * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): |
| Report error when cmd xlen is different with target attribute. |
| |
| 2025-02-18 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/i386.opt.urls: Adjust the order for avx10.2 |
| and avx10.2-512 due to their order change in i386.opt. |
| |
| 2025-02-18 Alexandre Oliva <oliva@adacore.com> |
| |
| PR tree-optimization/118805 |
| * gimple-fold.cc (fold_truth_andor_for_combine): Detect and |
| cope with zero-extension in signbit tests. Reject swapping |
| right-compare operands if rsignbit. |
| |
| 2025-02-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.cc (ix86_find_all_reg_use): |
| Scan only for SET RTX in PARALLEL. |
| |
| 2025-02-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/118288 |
| * builtins.cc (expand_builtin_crc_table_based): |
| Use gen_int_mode to emit constant integers with MSB set. |
| |
| 2025-02-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118895 |
| * tree-ssa-sccvn.cc (vn_nary_build_or_lookup_1): Only allow |
| CSE if we can verify the result is available. |
| |
| 2025-02-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/118764 |
| * config/avr/gen-avr-mmcu-specs.cc (print_mcu) |
| [has CVT]: Mention CVT in header comment of generated specs file. |
| |
| 2025-02-17 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/i386.opt.urls: Regenetated. |
| |
| 2025-02-17 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/i386-common.cc |
| (OPTION_MASK_ISA2_AVX10_1_UNSET): Adjust macro. |
| (OPTION_MASK_ISA2_AVX10_2_256_UNSET): Removed. |
| (OPTION_MASK_ISA2_AVX10_2_512_UNSET): Ditto. |
| (OPTION_MASK_ISA2_AVX10_2_UNSET): New. |
| (ix86_handle_option): Remove disable part for avx10.2-256. |
| Rename avx10.2-512 switch case to avx10.2 and adjust disable |
| part macro. |
| * common/config/i386/i386-isas.h: Adjust avx10.2 and |
| avx10.2-512. |
| * config/i386/driver-i386.cc |
| (host_detect_local_cpu): Do not append -mno-avx10.x-256 |
| for -march=native. |
| * config/i386/i386-options.cc |
| (ix86_valid_target_attribute_inner_p): Adjust avx10.2 and |
| avx10.2-512. |
| * config/i386/i386.opt: Reject Negative for mavx10.2-256. |
| Alias mavx10.2-512 to mavx10.2. Reject Negative for |
| mavx10.2-512. |
| * doc/extend.texi: Adjust documentation. |
| * doc/sourcebuild.texi: Ditto. |
| |
| 2025-02-17 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/i386-common.cc |
| (OPTION_MASK_ISA2_AVX2_UNSET): Change AVX10.1 unset macro. |
| (OPTION_MASK_ISA2_AVX10_1_256_UNSET): Removed. |
| (OPTION_MASK_ISA2_AVX10_1_512_UNSET): Removed. |
| (OPTION_MASK_ISA2_AVX10_1_UNSET): New. |
| (ix86_handle_option): Adjust AVX10.1 unset macro. |
| * common/config/i386/i386-isas.h: Remove avx10.1. |
| * config/i386/i386-options.cc |
| (ix86_valid_target_attribute_inner_p): Ditto. |
| (ix86_option_override_internal): Adjust warning message. |
| * config/i386/i386.opt: Remove mavx10.1. |
| * doc/extend.texi: Remove avx10.1 and adjust doc. |
| * doc/sourcebuild.texi: Ditto. |
| |
| 2025-02-17 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118815 |
| * config/i386/i386-options.cc (ix86_option_override_internal): |
| Do not check vector size conflict when AVX512 is not explicitly |
| set. |
| |
| 2025-02-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/118248 |
| * config/riscv/riscv-string.cc (riscv_block_move_straight): Only |
| allocate REGS buffer if it will be needed. |
| |
| 2025-02-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/118764 |
| * config/avr/avr-c.cc (avr_cpu_cpp_builtins) |
| [TARGET_CVT]: Define __AVR_CVT__. |
| * doc/invoke.texi (AVR Built-in Macros): Document __AVR_CVT__. |
| |
| 2025-02-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_result_regno_unused_p): New static function. |
| (avr_out_bitop): Only output result bytes that are used. |
| (avr_out_plus_1): Same. |
| |
| 2025-02-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-protos.h (avr_builtin_supported_p): Remove. |
| * config/avr/avr.cc (avr_init_builtins): Don't initialize |
| non-available built-ins with NULL_TREE. |
| (avr_builtin_supported_p): Move to... |
| * config/avr/avr-c.cc: ...here. |
| (avr_resolve_overloaded_builtin): Run avr_builtin_supported_p. |
| |
| 2025-02-16 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/109780 |
| PR target/109093 |
| * config/i386/i386.cc (ix86_update_stack_alignment): New. |
| (ix86_find_all_reg_use_1): Likewise. |
| (ix86_find_all_reg_use): Likewise. |
| (ix86_find_max_used_stack_alignment): Also check memory accesses |
| from registers defined by stack or frame registers. |
| |
| 2025-02-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/98028 |
| * vr-values.cc (check_for_binary_op_overflow): Try to use a known |
| relationship betwen op0/op1 to statically determine overflow state. |
| |
| 2025-02-15 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| * config/riscv/autovec-opt.md |
| (*single_widen_first_<any_widen_binop:optab><any_extend:su><mode>): |
| New combine "bridge" pattern. |
| |
| 2025-02-15 Keith Packard <keithp@keithp.com> |
| |
| * config/rx/rx.md (rx_cmpstrn): Correctly handle len=0 case. |
| |
| 2025-02-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * libsarifreplay.cc (sarif_replayer::handle_result_obj): Call |
| handle_fix_object if we see a single-element "fixes" array. |
| (sarif_replayer::handle_fix_object): New. |
| (sarif_replayer::handle_artifact_change_object): New. |
| |
| 2025-02-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * libsarifreplay.cc (should_add_rule_p): New. |
| (sarif_replayer::handle_result_obj): Use it to filter out rules |
| that don't make sense. |
| |
| 2025-02-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * libsarifreplay.cc (sarif_replayer::handle_result_obj): Treat any |
| relatedLocations without messages as secondary ranges within the |
| diagnostic. Doing so requires stashing the notes until after |
| the diagnostic has been finished, so that relatedLocations can be |
| walked in one pass. |
| |
| 2025-02-15 David Malcolm <dmalcolm@redhat.com> |
| |
| PR sarif-replay/118881 |
| * doc/libgdiagnostics/topics/physical-locations.rst: Add |
| diagnostic_physical_location_get_file. |
| * libgdiagnostics++.h (physical_location::get_file): New wrapper. |
| (diagnostic::add_location): Likewise. |
| * libgdiagnostics.cc (diagnostic_manager::get_file_by_name): New. |
| (diagnostic_physical_location::get_file): New. |
| (diagnostic_physical_location_get_file): New. |
| * libgdiagnostics.h (diagnostic_physical_location_get_file): New. |
| * libgdiagnostics.map (diagnostic_physical_location_get_file): New. |
| * libsarifreplay.cc (class annotation): New. |
| (add_any_annotations): New. |
| (sarif_replayer::handle_result_obj): Collect vectors of |
| annotations in the calls to handle_location_object and apply them |
| to "err" and to "note" as appropriate. |
| (sarif_replayer::handle_thread_flow_location_object): Pass nullptr |
| for annotations. |
| (sarif_replayer::handle_location_object): Handle §3.28.6 |
| "annotations" property, using it to populate a new |
| "out_annotations" param. |
| |
| 2025-02-15 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * config/nvptx/nvptx.cc (nvptx_record_needed_fndecl): Tag as |
| 'static'. |
| |
| 2025-02-15 Jin Ma <jinma@linux.alibaba.com> |
| |
| PR target/118872 |
| * config/riscv/riscv.cc (riscv_fntype_abi): Strengthen the logic |
| of the check to avoid missing the error report. |
| |
| 2025-02-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/118878 |
| * config/avr/avr.cc (avr_out_plus_1): Don't ICE on result of |
| paradoxical reg's register allocation. |
| |
| 2025-02-14 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/94282 |
| PR target/113331 |
| * common/config/gcn/gcn-common.cc (gcn_except_unwind_info): 'return UI_TARGET;'. |
| * config/gcn/gcn.cc (gcn_asm_init_sections): New function. |
| (TARGET_ASM_INIT_SECTIONS): '#define'. |
| |
| 2025-02-14 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/86660 |
| * common/config/nvptx/nvptx-common.cc (nvptx_except_unwind_info): |
| 'return UI_TARGET;'. |
| * config/nvptx/nvptx.cc (nvptx_assemble_integer): Handle |
| 'exception_section'. |
| (nvptx_output_section_asm_op, nvptx_asm_init_sections): New |
| functions. |
| (TARGET_ASM_INIT_SECTIONS): '#define'. |
| * config/nvptx/nvptx.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): |
| Don't '#define'. |
| (ASM_OUTPUT_DWARF_DELTA): '#define'. |
| |
| 2025-02-14 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx.cc (init_frag): New 'bool active' member. |
| (output_init_frag, nvptx_assemble_value, nvptx_assemble_integer) |
| (nvptx_output_skip, nvptx_assemble_decl_begin) |
| (nvptx_assemble_decl_end): Sanity-check its state. |
| |
| 2025-02-14 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx.cc (nvptx_output_skip): Clarify case of |
| no or incomplete initializer. |
| |
| 2025-02-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118852 |
| * tree-vect-slp.cc (vect_analyze_slp): For early-break |
| forced-live IVs make sure we create an appropriate |
| entry into the SLP graph. |
| |
| 2025-02-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/118790 |
| * tree.cc (struct gt_value_expr_mark_data): New type. |
| (gt_value_expr_mark_2): Don't call ggc_set_mark, instead check |
| ggc_marked_p. Treat data as gt_value_expr_mark_data * with pset |
| in it rather than address of the pset itself and push to be marked |
| VAR_DECLs into to_mark vec. |
| (gt_value_expr_mark_1): Change argument from hash_set<tree> * |
| to gt_value_expr_mark_data * and find pset in it. |
| (gt_value_expr_mark): Pass to traverse_noresize address of |
| gt_value_expr_mark_data object rather than hash_table<tree> and |
| for all entries in the to_mark vector after the traversal call |
| gt_ggc_mx. |
| |
| 2025-02-14 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/genopts/loongarch.opt.in: Add |
| option '-maddr-reg-reg-cost='. |
| * config/loongarch/loongarch-def.cc |
| (loongarch_rtx_cost_data::loongarch_rtx_cost_data): Initialize |
| addr_reg_reg_cost to 3. |
| * config/loongarch/loongarch-opts.cc |
| (loongarch_target_option_override): If '-maddr-reg-reg-cost=' |
| is not used, set it to the initial value. |
| * config/loongarch/loongarch-tune.h |
| (struct loongarch_rtx_cost_data): Add the member |
| addr_reg_reg_cost and its assignment function to the structure |
| loongarch_rtx_cost_data. |
| * config/loongarch/loongarch.cc (loongarch_address_insns): |
| Use la_addr_reg_reg_cost to set the cost of ADDRESS_REG_REG. |
| * config/loongarch/loongarch.opt: Regenerate. |
| * config/loongarch/loongarch.opt.urls: Regenerate. |
| * doc/invoke.texi: Add description of '-maddr-reg-reg-cost='. |
| |
| 2025-02-14 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/118843 |
| * config/loongarch/loongarch-c.cc |
| (loongarch_update_cpp_builtins): Fix macro definition issues. |
| |
| 2025-02-14 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/118828 |
| * config/loongarch/loongarch-c.cc (loongarch_pragma_target_parse): |
| Update the predefined macros. |
| |
| 2025-02-14 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch-c.cc (builtin_undef): New macro. |
| (loongarch_cpu_cpp_builtins): Split to loongarch_update_cpp_builtins |
| and loongarch_define_unconditional_macros. |
| (loongarch_def_or_undef): New functions. |
| (loongarch_define_unconditional_macros): Likewise. |
| (loongarch_update_cpp_builtins): Likewise. |
| |
| 2025-02-14 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch-target-attr.cc |
| (loongarch_pragma_target_parse): Move to ... |
| (loongarch_register_pragmas): Move to ... |
| * config/loongarch/loongarch-c.cc |
| (loongarch_pragma_target_parse): ... here. |
| (loongarch_register_pragmas): ... here. |
| * config/loongarch/loongarch-protos.h |
| (loongarch_process_target_attr): Function Declaration. |
| |
| 2025-02-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90579 |
| * tree-ssa-forwprop.cc (simplify_bitfield_ref): Move to |
| match.pd. |
| (pass_forwprop::execute): Adjust. |
| * match.pd (bit_field_ref (vec_perm ...)): New pattern |
| modeled after simplify_bitfield_ref. |
| * tree-vect-loop.cc (vect_expand_fold_left): Fold the |
| element extract stmt, combining it with the vector def. |
| |
| 2025-02-13 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| PR target/118832 |
| * config/riscv/riscv-v.cc (expand_const_vector): Expand as |
| vlmax insn during lra. |
| |
| 2025-02-13 Marek Polacek <polacek@redhat.com> |
| |
| PR driver/117739 |
| * doc/invoke.texi: Tweak wording for -Whardened. |
| * gcc.cc (driver_handle_option): If -z lazy or -z norelro was |
| specified, don't enable linker hardening. |
| (process_command): Don't check warn_hardened. |
| |
| 2025-02-13 Ed Catmur <ed@catmur.uk> |
| Jason Merrill <jason@redhat.com> |
| |
| PR c++/70536 |
| * dwarf2out.cc (gen_formal_parameter_pack_die): Add name attr. |
| |
| 2025-02-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/118790 |
| * gengtype.cc (write_roots): Remove cache variable, instead break from |
| the loop on match and test o for NULL. If the cache option has |
| non-empty string argument, call the specified function with v->name |
| as argument before calling gt_cleare_cache on it. |
| * tree.cc (gt_value_expr_mark_2, gt_value_expr_mark_1, |
| gt_value_expr_mark): New functions. |
| (value_expr_for_decl): Use GTY ((cache ("gt_value_expr_mark"))) rather |
| than just GTY ((cache)). |
| * doc/gty.texi (cache): Document optional argument of cache option. |
| |
| 2025-02-13 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/114522 |
| * config/arm/arm-builtins.cc (arm_fold_aes_op): New function. |
| (arm_general_gimple_fold_builtin): New function. |
| * config/arm/arm-builtins.h (arm_general_gimple_fold_builtin): New |
| prototype. |
| * config/arm/arm.cc (arm_gimple_fold_builtin): Call |
| arm_general_gimple_fold_builtin as needed. |
| |
| 2025-02-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/118822 |
| PR c++/118833 |
| * tree-iterator.h (tsi_split_stmt_list): Declare. |
| * tree-iterator.cc (tsi_split_stmt_list): New function. |
| |
| 2025-02-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_eh_frame_ciev3): Remove. |
| * configure, config.in: Regenerate. |
| * config/sol2.cc (solaris_override_options): Remove. |
| * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. |
| * config/sol2-protos.h (solaris_override_options): Remove. |
| |
| 2025-02-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/install.texi (Specific, *-*-solaris2*): Updates for newer |
| Solaris 11.4 SRUs and binutils 2.44. |
| |
| 2025-02-13 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR target/118835 |
| * config/s390/s390.cc (s390_valid_shift_count): Reject shift |
| count operands which do not trivially fit the scheme of |
| address operands. |
| |
| 2025-02-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118817 |
| * tree-ssa-sccvn.cc (vn_nary_simplify): Do not process |
| CONSTRUCTOR NARY or update from CONSTRUCTOR simplified |
| gimple_match_op. |
| |
| 2025-02-12 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR rtl-optimization/102150 |
| * loop-invariant.cc (find_invariant_insn): Treat inline-asm similar to |
| trapping instruction and only move them if always executed. |
| |
| 2025-02-12 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR rtl-optimization/102150 |
| * ifcvt.cc (cheap_bb_rtx_cost_p): Return false if the insn |
| has an inline-asm in it. |
| |
| 2025-02-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt.urls: Add -mcall-main. |
| |
| 2025-02-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/118806 |
| * config/avr/avr.opt (-mcall-main): New option and... |
| (avropt_call_main): ...variable. |
| * config/avr/avr.cc (avr_no_call_main_p): New variable. |
| (avr_insert_attributes) [-mno-call-main, main]: Add attributes |
| noreturn and section(".init9") to main. Set avr_no_call_main_p. |
| (avr_file_end) [avr_no_call_main_p]: Define symbol __call_main. |
| * doc/invoke.texi (AVR Options) <-mno-call-main>: Document. |
| <-mnodevicelib>: Extend explanation. |
| |
| 2025-02-12 Alex Coplan <alex.coplan@arm.com> |
| |
| PR tree-optimization/117790 |
| * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): |
| Set profile counts for {main,alt}_loop_exit_block. |
| |
| 2025-02-12 Vineet Gupta <vineetg@rivosinc.com> |
| |
| * config/riscv/vector.md: vncvt substitute vnsrl. |
| vnsrl with x0 replace with immediate 0. |
| vneg substitute vrsub. |
| |
| 2025-02-12 Jin Ma <jinma@linux.alibaba.com> |
| |
| PR target/118601 |
| * config/riscv/riscv-string.cc (expand_block_move): Check with new |
| constraint 'vl' instead of 'K'. |
| (expand_vec_setmem): Likewise. |
| (expand_vec_cmpmem): Likewise. |
| * config/riscv/riscv-v.cc (force_vector_length_operand): Likewise. |
| (expand_load_store): Likewise. |
| (expand_strided_load): Likewise. |
| (expand_strided_store): Likewise. |
| (expand_lanes_load_store): Likewise. |
| |
| 2025-02-12 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/install.texi: Add missing comma after @xref to fix warning. |
| |
| 2025-02-12 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi: Fix a bunch of typos and other writing bugs. |
| * doc/invoke.texi: Likewise. |
| |
| 2025-02-12 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * Makefile.in (TEXI_GCCINT_FILES): Remove interface.texi. |
| * doc/gccint.texi (Top): Remove menu entry for the "interface" node, |
| and include of interface.texi. |
| * doc/interface.texi: Delete. |
| |
| 2025-02-12 Yangyu Chen <cyy@cyyself.name> |
| |
| * config/riscv/riscv-feature-bits.h (RISCV_VENDOR_FEATURE_BITS_LENGTH): Drop. |
| (struct riscv_vendor_feature_bits): Drop. |
| |
| 2025-02-11 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/115478 |
| * config/aarch64/iterators.md (any_or_plus): New code iterator. |
| * config/aarch64/aarch64.md (extr<mode>5_insn): Use any_or_plus. |
| (extr<mode>5_insn_alt, extrsi5_insn_uxtw): Likewise. |
| (extrsi5_insn_uxtw_alt, extrsi5_insn_di): Likewise. |
| |
| 2025-02-11 Jason Merrill <jason@redhat.com> |
| |
| PR c++/188574 |
| * doc/invoke.texi: Adjust -frange-for-ext-temps documentation. |
| |
| 2025-02-11 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def |
| (SSVE_FP8FMA): Adjust formatting. |
| (FP8DOT4): Replace FP8FMA dependency with FP8. |
| (SSVE_FP8DOT4): Replace SSVE_FP8FMA dependency with SME2+FP8. |
| (FP8DOT2): Replace FP8DOT4 dependency with FP8. |
| (SSVE_FP8DOT2): Replace SSVE_FP8DOT4 dependency with SME2+FP8. |
| |
| 2025-02-11 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * omp-general.cc (omp_check_context_selector): Change |
| metadirective_p argument to a 3-way flag. Add extra check for |
| OMP_CTX_BEGIN_DECLARE_VARIANT. |
| * omp-general.h (enum omp_ctx_directive): New. |
| (omp_check_context_selector): Adjust declaration. |
| |
| 2025-02-11 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * omp-general.cc (omp_context_selector_props_compare): Handle |
| arbitrary expressions in the "user" and "device_num" selectors. |
| (omp_context_selector_set_compare): Detect mismatch when one |
| selector specifies a score and the other doesn't. |
| |
| 2025-02-11 Martin Jambor <mjambor@suse.cz> |
| |
| PR lto/118125 |
| * ipa-fnsummary.cc (redirect_to_unreachable): Add checking assert |
| that the builtin_unreachable decl has attribute cold. |
| |
| 2025-02-11 David Malcolm <dmalcolm@redhat.com> |
| |
| PR sarif-replay/118792 |
| * libsarifreplay.cc (sarif_replayer::handle_region_object): Fix |
| off-by-one in handling of endColumn property so that the code |
| matches the comment and the SARIF spec (§3.30.8). |
| |
| 2025-02-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118817 |
| * tree-ssa-pre.cc (fully_constant_expression): Fold into |
| the single caller. |
| (phi_translate_1): Refactor folded in fully_constant_expression. |
| * tree-ssa-sccvn.cc (vn_nary_simplify): Update the NARY with |
| the simplified expression. |
| |
| 2025-02-11 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/118825 |
| * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Replace x with |
| SYM. |
| |
| 2025-02-11 YunQiang Su <syq@debian.org> |
| |
| * config.gcc: Add mips*64*-linux-muslabi64 triple support. |
| |
| 2025-02-11 Jie Mei <jie.mei@oss.cipunited.com> |
| Xi Ruoyao <xry111@xry111.site> |
| |
| * config/mips/i6400.md (i6400_fpu_minmax): Include |
| fclass type. |
| (i6400_fpu_fadd): Include frint type. |
| * config/mips/mips.cc (AVAIL_NON_MIPS16): Add an entry |
| for __builtin_mipsr6_xxx. |
| (MIPSR6_BUILTIN_PURE): Same as above. |
| (CODE_FOR_mipsr6_min_a_s, CODE_FOR_mipsr6_min_a_d) |
| (CODE_FOR_mipsr6_max_a_s, CODE_FOR_mipsr6_max_a_d) |
| (CODE_FOR_mipsr6_class_s, CODE_FOR_mipsr6_class_d): |
| New code_aliasing macros. |
| (mips_builtins): Add mips32r6 min_a_s, min_a_d, max_a_s, |
| max_a_d, class_s, class_d builtins. |
| * config/mips/mips.h (ISA_HAS_FRINT): Define a new macro. |
| (ISA_HAS_FCLASS): Same as above. |
| * config/mips/mips.md (UNSPEC_FRINT): New unspec. |
| (UNSPEC_FCLASS): Same as above. |
| (type): Add frint and fclass. |
| (fmin_a_<mode>): Generates MINA.fmt instructions. |
| (fmax_a_<mode>): Generates MAXA.fmt instructions. |
| (rint<mode>2): Generates RINT.fmt instructions. |
| (fclass_<mode>): Generates CLASS.fmt instructions. |
| * config/mips/p6600.md (p6600_fpu_fadd): Include |
| frint type. |
| (p6600_fpu_fabs): Include fclass type. |
| |
| 2025-02-11 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118813 |
| * config/i386/avx512bwintrin.h: Fix wrong __OPTIMIZE__ |
| wrap. |
| |
| 2025-02-10 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/mkoffload.cc (enum elf_arch_code): Add |
| EF_AMDGPU_MACH_AMDGCN_NONE. |
| (elf_arch): Use enum elf_arch_code as type. |
| (tool_cleanup): Silence warning by removing tailing '.' from error. |
| (get_arch_name): Return enum elf_arch_code. |
| (check_for_missing_lib): New; print fatal error if the multilib |
| is not available but it is for the associate generic ISA. |
| (main): Call it. |
| |
| 2025-02-10 Tobias Burnus <tburnus@baylibre.com> |
| |
| * doc/install.texi (GCN): Update section about multilibs and |
| required LLVM version. |
| |
| 2025-02-10 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/118097 |
| * ipa-cp.cc (ipa_get_jf_arith_result): Adjust comment. |
| (ipa_get_jf_pass_through_result): Removed. |
| (ipa_value_from_jfunc): Use directly ipa_get_jf_arith_result, do |
| not specify operation type but make sure we check and possibly |
| convert the result. |
| (get_val_across_arith_op): Remove the last parameter, always pass |
| NULL_TREE to ipa_get_jf_arith_result in its last argument. |
| (propagate_vals_across_arith_jfunc): Do not pass res_type to |
| get_val_across_arith_op. |
| (propagate_vals_across_pass_through): Add checking assert that |
| parm_type is not NULL. |
| |
| 2025-02-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/118623 |
| * config/i386/i386.md (*bt<mode>): Represent bt as |
| compare:CCC of const0_rtx and zero_extract rather than |
| zero_extract and const0_rtx. |
| (*bt<SWI48:mode>_mask): Likewise. |
| (*jcc_bt<mode>): Likewise. Use LTU and GEU as flags test |
| instead of EQ and NE. |
| (*jcc_bt<mode>_mask): Likewise. |
| (*jcc_bt<SWI48:mode>_mask_1): Likewise. |
| (Help combine recognize bt followed by cmov splitter): Likewise. |
| (*bt<mode>_setcqi): Likewise. |
| (*bt<mode>_setncqi): Likewise. |
| (*bt<mode>_setnc<mode>): Likewise. |
| (*bt<mode>_setncqi_2): Likewise. |
| (*bt<mode>_setc<mode>_mask): Likewise. |
| |
| 2025-02-09 Dario Gjorgjevski <dario.gjorgjevski@gmail.com> |
| |
| PR middle-end/117263 |
| * genautomata.cc (output_statistics): Avoid set but unnused warnings |
| when compiling with NDEBUG. |
| |
| 2025-02-09 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/118146 |
| * config/riscv/riscv.cc (riscv_legitimize_move): Handle subreg |
| of vector source better to avoid ICE. |
| |
| 2025-02-08 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/118764 |
| * doc/invoke.texi (AVR Options): Fix typos. |
| |
| 2025-02-08 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/gcn/gcn.md (exception_receiver): 'define_expand'. |
| * config/nvptx/nvptx.md (exception_receiver): Likewise. |
| |
| 2025-02-08 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords): Clarify that |
| effective-target 'exceptions' and 'exceptions_enabled' are |
| orthogonal. |
| |
| 2025-02-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/118776 |
| * config/i386/sse.md (<code><mode>3_mask): Use VI1248_AVX512VLBW |
| iterator rather than VI48_AVX512VL. |
| (<mask_codefor><code><mode>3<mask_name>): Rename to ... |
| (*avx512bw_<code><mode>3<mask_name>): ... this. Use |
| nonimmediate_operand rather than register_operand predicate and %v |
| rather than v constraint for operand 1 and adjust condition to reject |
| MEMs in both operand 1 and 2. |
| |
| 2025-02-07 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR target/114522 |
| * config/aarch64/aarch64-builtins.cc (aarch64_fold_aes_op): New function. |
| (aarch64_general_gimple_fold_builtin): Call aarch64_fold_aes_op for crypto_aese |
| and crypto_aesd. |
| |
| 2025-02-07 Andi Kleen <ak@gcc.gnu.org> |
| |
| PR preprocessor/118168 |
| * input.cc (file_cache::m_line_recent, |
| m_line_recent_first, m_line_recent_last): Add. |
| (file_cache_slot::evict): Clear new fields. |
| (file_cache_slot::create): Clear new fields. |
| (file_cache_slot::file_cache_slot): Initialize new fields. |
| (file_cache_slot::~file_cache_slot): Release m_line_recent. |
| (file_cache_slot::get_next_line): Maintain ring buffer of lines |
| in m_line_recent. |
| (file_cache_slot::read_line_num): Use m_line_recent to look up |
| recent lines quickly. |
| |
| 2025-02-07 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/118089 |
| * config/arm/arm.cc (arm_emit_multi_reg_pop): Restructure. |
| Don't emit LDR on thumb2 when POP can be used for smaller code. |
| Don't add a CFA adjust note when SP is popped off the stack. |
| |
| 2025-02-07 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/118089 |
| * config/arm/arm.cc (arm_emit_multi_reg_pop): Add a CFA adjust |
| note to single-register POP instructions. |
| |
| 2025-02-07 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/116244 |
| * ira-build.cc (create_insn_allocnos): Do not restrict the check for |
| subreg uses to allocno creation time. Do it for all uses. |
| |
| 2025-02-07 Richard Biener <rguenther@suse.de> |
| |
| PR jit/118780 |
| * system.h: Check INCLUDE_DLFCN_H for including dlfcn.h instead |
| of ENABLE_PLUGIN. |
| * plugin.cc: Define INCLUDE_DLFCN_H. |
| |
| 2025-02-07 Pan Li <pan2.li@intel.com> |
| |
| PR target/118103 |
| * config/riscv/riscv.cc (riscv_conditional_register_usage): Add |
| the VXRM as the global_regs. |
| |
| 2025-02-07 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR target/118771 |
| * config/aarch64/aarch64.cc (aarch64_split_move): Assert that npieces is |
| greater than 0. |
| |
| 2025-02-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/115538 |
| * tree-vectorizer.h (vect_get_slp_scalar_def): Declare. |
| * tree-vect-slp.cc (vect_get_slp_scalar_def): New helper. |
| * tree-vect-generic.cc (expand_vector_conversion): Adjust. |
| * tree-vect-stmts.cc (vectorizable_conversion): For SLP |
| correctly look at ranges of the scalar defs of the SLP operand. |
| (supportable_indirect_convert_operation): Likewise. |
| |
| 2025-02-07 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Update |
| 'amdhsa.version' output to match used code version. |
| * config/gcn/gen-gcn-device-macros.awk: Add a comment to |
| crosslink. |
| |
| 2025-02-07 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.md |
| (*sel<code><GPR:mode>_using_<GPR2:mode>): Rename to ... |
| (*sel<code><GPR:mode>_using_<X:mode>): ... here. |
| (GPR2): Remove as nothing uses it now. |
| |
| 2025-02-07 Alexandre Oliva <oliva@adacore.com> |
| |
| PR tree-optimization/118514 |
| PR tree-optimization/118706 |
| * gimple-fold.cc (decode_field_reference): Refuse to consider |
| merging out-of-bounds BIT_FIELD_REFs. |
| (make_bit_field_load): Drop too-strict assert. |
| * tree-eh.cc (bit_field_ref_in_bounds_p): Rename to... |
| (access_in_bounds_of_type_p): ... this. Change interface, |
| export. |
| (tree_could_trap_p): Adjust. |
| * tree-eh.h (access_in_bounds_of_type_p): Declare. |
| |
| 2025-02-07 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn-devices.def (GCN_DEVICE): Add gfx9-generic, |
| gfx902, gfx904, gfx909, gfx1031, gfx1032, gfx1033, gfx1034, |
| gfx1035, gfx1101, gfx1102, gfx1150, gfx1151, gfx1152, and gfx1153. |
| Add a currently unused column linking, a specific ISA to a generic |
| one (if it exists). |
| * config/gcn/gcn-tables.opt: Regenerate |
| * doc/invoke.texi (AMD GCN): Add the the new gfc... and the older |
| gfx{10-3,11}-generic to -march= as 'experimental'. |
| |
| 2025-02-07 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn-devices.def (GCN_DEVICE): Change sramecc for |
| gfx906 to 'any'. |
| * config/gcn/gcn.cc (GCN_DEVICE): Add tailing ... to #define. |
| |
| 2025-02-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR rtl-optimization/111673 |
| PR rtl-optimization/115932 |
| PR rtl-optimization/116028 |
| PR rtl-optimization/117081 |
| PR rtl-optimization/117082 |
| PR rtl-optimization/118497 |
| * ira-color.cc (assign_hard_reg): Call the target hook for the |
| callee-saved register cost scale in epilogue and prologue. |
| * target.def (ira_callee_saved_register_cost_scale): New target |
| hook. |
| * targhooks.cc (default_ira_callee_saved_register_cost_scale): |
| New. |
| * targhooks.h (default_ira_callee_saved_register_cost_scale): |
| Likewise. |
| * config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale): |
| New. |
| (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Likewise. |
| * doc/tm.texi: Regenerated. |
| * doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): |
| New. |
| |
| 2025-02-06 Craig Blackmore <craig.blackmore@embecosm.com> |
| |
| * config/riscv/riscv.md: Move UNSPEC_SSP_SET and UNSPEC_SSP_TEST |
| to unspec enum. |
| |
| 2025-02-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt.urls: Add mcvt. |
| |
| 2025-02-06 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/118756 |
| * tree-ssa-loop-ivopts.cc (contain_complex_addr_expr): Remove. |
| |
| 2025-02-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/118764 |
| * config/avr/avr.opt (-mcvt): New target option. |
| * config/avr/avr-arch.h (AVR_CVT): New enum value. |
| * config/avr/avr-mcus.def: Add AVR_CVT flag for devices that |
| support it. |
| * config/avr/avr.cc (avr_handle_isr_attribute) [TARGET_CVT]: Issue |
| an error when a vector number larger that 3 is used. |
| * config/avr/gen-avr-mmcu-specs.cc (McuInfo.have_cvt): New property. |
| (print_mcu) <*avrlibc_startfile>: Use crt<mcu>-cvt.o depending |
| on -mcvt (or issue an error when the device doesn't support a CVT). |
| * doc/invoke.texi (AVR Options): Document -mcvt. |
| |
| 2025-02-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/117506 |
| * loop-iv.cc (get_biv_step_1): For {ZERO,SIGN}_EXTEND |
| of PLUS apply {ZERO,SIGN}_EXTEND to op1. |
| |
| 2025-02-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/118768 |
| * config/avr/genmultilib.awk: Parse the AVR_MCU lines in |
| a more robust way w.r.t. white spaces. |
| |
| 2025-02-06 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/118561 |
| * config/loongarch/loongarch-builtins.cc |
| (loongarch_expand_builtin_lsx_test_branch): |
| NULL_RTX will not be returned when an error is detected. |
| (loongarch_expand_builtin): Likewise. |
| |
| 2025-02-06 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/110449 |
| * tree-ssa-loop-manip.h (insert_iv_increment): Declare. |
| * tree-ssa-loop-manip.cc (insert_iv_increment): New function, |
| split out from... |
| (create_iv): ...here and generalized to gimple_seqs. |
| * tree-vect-loop.cc (vectorizable_induction): Use |
| standard_iv_increment_position and insert_iv_increment |
| to insert the IV increment. |
| |
| 2025-02-06 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/117922 |
| * fold-mem-offsets.cc (pass_fold_mem_offsets::execute): |
| Do nothing for a highly connected CFG. |
| |
| 2025-02-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118749 |
| * tree-vect-data-refs.cc (vector_alignment_reachable_p): Pass |
| in the vectorization factor, when that cannot maintain |
| the DRs target alignment do not claim we can reach that |
| by peeling. |
| |
| 2025-02-05 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/bfin/bfin.md (abssi): Disable pattern. |
| |
| 2025-02-05 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/115568 |
| * lra-remat.cc (create_cands): Check that output reload insn is |
| adjacent to given insn. Update a comment. |
| |
| 2025-02-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_insn_cost): Give PARALLELs |
| the same cost as the costliest SET. |
| |
| 2025-02-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/117239 |
| * cselib.cc (cselib_init): Remove spurious closing paren in |
| the #ifdef STACK_ADDRESS_OFFSET specific code. |
| |
| 2025-02-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/117239 |
| * cselib.cc: Include predict.h. |
| (callmem): Change type from rtx to rtx[2]. |
| (cselib_preserve_only_values): Use callmem[0] rather than callmem. |
| (cselib_invalidate_mem): Optimize and don't try to invalidate |
| for the mem_rtx == callmem[1] case MEMs which clearly can't be |
| below the stack pointer. |
| (cselib_process_insn): Use callmem[0] rather than callmem. |
| For const/pure calls also call cselib_invalidate_mem (callmem[1]) |
| in !ACCUMULATE_OUTGOING_ARGS or cfun->calls_alloca functions. |
| (cselib_init): Initialize callmem[0] rather than callmem and also |
| initialize callmem[1]. |
| |
| 2025-02-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/118089 |
| * config/arm/arm.cc (thumb2_expand_return): Use LDM SP!, {PC} |
| when optimizing for size, or when there's no performance benefit over |
| LDR PC, [SP], #4. |
| (arm_expand_epilogue): Likewise. |
| |
| 2025-02-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.md (*pop_multiple_with_writeback_and_return): Remove |
| constraints. Don't validate the first transfer register here. |
| |
| 2025-02-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.cc (decompose_addr_for_ldm_stm): New function. |
| (ldm_stm_operation_p): Rework to clarify logic. Allow single |
| registers to be pushed or popped using LDM/STM. |
| |
| 2025-02-05 Xi Ruoyao <xry111@xry111.site> |
| |
| PR tree-optimization/118727 |
| * tree-vect-patterns.cc (vect_recog_sad_pattern): Don't call |
| vect_look_through_possible_promotion on ABD inputs. |
| |
| 2025-02-05 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/arm/t-rtems: Add Cortex-M33 multilib. |
| |
| 2025-02-04 Andi Kleen <ak@gcc.gnu.org> |
| |
| * doc/invoke.texi: Document file cache tunables. |
| * params.opt: Move auto tuning description to lines. |
| |
| 2025-02-04 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * config/s390/s390.cc (print_operand): Remove the no longer |
| necessary 31-bit and weak symbol handling. |
| * config/s390/s390.md (*movdi_64): Do not use @PLT with larl. |
| (*movsi_larl): Likewise. |
| (main_base_64): Likewise. |
| (reload_base_64): Likewise. |
| |
| 2025-02-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/117113 |
| * gimple-loop-jam.cc (unroll_jam_possible_p): Detect when |
| we cannot handle virtual SSA update. |
| |
| 2025-02-04 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/116926 |
| * optabs-query.cc (find_widening_optab_handler_and_mode): Fix |
| limit for `vec-mode -> scalar-mode` case. |
| |
| 2025-02-04 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/117611 |
| * combine.cc (simplify_shift_const_1): Bail if not |
| scalar int mode. |
| |
| 2025-02-04 Richard Biener <rguenther@suse.de> |
| |
| PR lto/113207 |
| * ipa-free-lang-data.cc (free_lang_data_in_type): First drop |
| const/volatile qualifiers from function argument types, |
| then build a simplified type. |
| |
| 2025-02-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*sibcall_pop_memory): |
| Disable for TARGET_INDIRECT_BRANCH_REGISTER |
| * config/i386/predicates.md (call_insn_operand): Enable when |
| "satisfies_constraint_Bw (op)" is true, instead of open-coding |
| constraint here. |
| (sibcall_insn_operand): Ditto with "satisfies_constraint_Bs (op)" |
| |
| 2025-02-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_choose_vector_init_constant): |
| New function, split out from... |
| (aarch64_expand_vector_init_fallback): ...here. Use a bit- |
| reversed increment to find a constant index. Add support for |
| stepped constants. |
| |
| 2025-02-03 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR rtl-optimization/117248 |
| * config/pa/predicates.md (r25_operand): New predicate. |
| (r26_operand): Likewise. |
| * config/pa/pa.md: Use match_operand for r25 and r26 hard |
| register operands in mult, div, udiv, mod and umod millicode |
| patterns. |
| |
| 2025-02-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118717 |
| * tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): |
| Do not common stores referencing abnormal SSA names. |
| * tree-ssa-sink.cc (sink_common_stores_to_bb): Likewise. |
| |
| 2025-02-03 Andi Kleen <ak@gcc.gnu.org> |
| |
| * input.cc (check_line): New. |
| (test_replacement): New function to test line caching. |
| (input_cc_tests): Call test_replacement |
| |
| 2025-02-03 Andi Kleen <ak@gcc.gnu.org> |
| |
| PR preprocessor/118168 |
| * input.cc (file_cache_slot::get_next_line): Implement |
| dynamic sizing of m_line_record based on input length. |
| * params.opt: (param_file_cache_lines): Set to 0 to size |
| dynamically. |
| |
| 2025-02-03 Andi Kleen <ak@gcc.gnu.org> |
| |
| PR preprocessor/118168 |
| * input.cc (total_lines_num): Remove. |
| (file_cache_slot::evict): Ditto. |
| (file_cache_slot::create): Ditto. |
| (file_cache_slot::set_content): Ditto. |
| (file_cache_slot::file_cache_slot): Ditto. |
| (file_cache_slot::dump): Ditto. |
| |
| 2025-02-03 Andi Kleen <ak@gcc.gnu.org> |
| |
| PR preprocessor/118168 |
| * input.cc (file_cache_slot::get_next_line): Use new algorithm |
| to maintain |
| (file_cache_slot::read_line_num): Use binary search for lookup. |
| |
| 2025-02-03 Andi Kleen <ak@gcc.gnu.org> |
| |
| PR preprocessor/118168 |
| * input.cc (file_cache::tune): New function. |
| * input.h (class file_cache): Make tunables non const. |
| * params.opt: Add new tunables. |
| * toplev.cc (toplev::main): Initialize input buffer context |
| tunables. |
| |
| 2025-02-02 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/117411 |
| * doc/gm2.texi (Exception handling): New section. |
| (The ISO system module): Add description of COFF_T. |
| (Assembler language): Tidy up last sentance. |
| |
| 2025-02-02 Lewis Hyatt <lhyatt@gmail.com> |
| |
| PR middle-end/115913 |
| * optc-save-gen.awk (cl_optimization_compare): Skip options with |
| CL_WARNING flag. |
| |
| 2025-02-01 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/118713 |
| * config/i386/i386-expand.cc (ix86_expand_call): Change "if |
| (TARGET_X32 ...)" back to "else if (TARGET_X32 ...)". |
| |
| 2025-02-01 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/118713 |
| * config/i386/constraints.md (Bs): Always disable if |
| TARGET_INDIRECT_BRANCH_REGISTER is true. |
| (Bw): Likewise. |
| * config/i386/i386-expand.cc (ix86_expand_call): Force indirect |
| call via register for x32 GOT slot call if |
| TARGET_INDIRECT_BRANCH_REGISTER is true. |
| * config/i386/i386-protos.h (ix86_nopic_noplt_attribute_p): New. |
| * config/i386/i386.cc (ix86_nopic_noplt_attribute_p): Make it |
| global. |
| * config/i386/i386.md (*call_got_x32): Disable indirect call via |
| memory for TARGET_INDIRECT_BRANCH_REGISTER. |
| (*call_value_got_x32): Likewise. |
| (*sibcall_value_pop_memory): Likewise. |
| * config/i386/predicates.md (constant_call_address_operand): |
| Return false if both TARGET_INDIRECT_BRANCH_REGISTER and |
| ix86_nopic_noplt_attribute_p are true. |
| |
| 2025-02-01 David Malcolm <dmalcolm@redhat.com> |
| |
| * libsarifreplay.cc (sarif_replayer::handle_run_obj): Pass run to |
| handle_result_obj. |
| (sarif_replayer::handle_result_obj): Add run_obj param and pass it |
| to handle_location_object and handle_thread_flow_object. |
| (sarif_replayer::handle_thread_flow_object): Add run_obj param and |
| pass it to handle_thread_flow_location_object. |
| (sarif_replayer::handle_thread_flow_location_object): Add run_obj |
| param and pass it to handle_location_object. |
| (sarif_replayer::handle_location_object): Add run_obj param and |
| pass it to handle_logical_location_object. |
| (sarif_replayer::handle_logical_location_object): Add run_obj |
| param. If the run_obj is non-null and has "logicalLocations", |
| then use these "cached" logical locations if we see an "index" |
| property, as per §3.33.3 |
| |
| 2025-02-01 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR tree-optimization/114277 |
| * match.pd (a * (a || b) -> a): New pattern. |
| (a * !(a || b) -> 0): Likewise. |
| |
| 2025-01-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/117432 |
| * ipa-icf-gimple.cc (func_checker::compare_asm_inputs_outputs): |
| Also return_false if operands have incompatible types. |
| (func_checker::compare_gimple_call): Check fntype1 vs. fntype2 |
| compatibility for all non-internal calls and assume fntype1 and |
| fntype2 are non-NULL for those. For calls to non-prototyped |
| calls or for stdarg_p functions after the last named argument (if any) |
| check type compatibility of call arguments. |
| |
| 2025-01-31 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/116234 |
| * lra-constraints.cc (multiple_insn_refs_p): New function. |
| (curr_insn_transform): Use it. |
| |
| 2025-01-31 Richard Biener <rguenther@suse.de> |
| |
| PR debug/100530 |
| * dwarf2out.cc (modified_type_die): Do not claim we handle |
| address-space qualification with dwarf_qual_info[]. |
| |
| 2025-01-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/118689 |
| PR modula2/115032 |
| * tree-ssa-loop-niter.cc (build_cltz_expr): Return NULL_TREE if fn is |
| NULL and use_ifn is false. |
| |
| 2025-01-31 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_analyze_loop_operations): Only |
| call vectorizable_lc_phi when not PURE_SLP. |
| (vectorizable_reduction): Do not claim having handled |
| the inner loop LC PHI for outer loop vectorization. |
| |
| 2025-01-30 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/builtins.def (STRLEN_FLASH, STRLEN_FLASHX) |
| (STRLEN_MEMX): New DEF_BUILTIN's. |
| * config/avr/avr.cc (avr_ftype_strlen): New static function. |
| (avr_builtin_supported_p): New built-ins are not for AVR_TINY. |
| (avr_init_builtins) <strlen_flash_node, strlen_flashx_node, |
| strlen_memx_node>: Provide new fntypes. |
| (avr_fold_builtin) [AVR_BUILTIN_STRLEN_FLASH] |
| [AVR_BUILTIN_STRLEN_FLASHX, AVR_BUILTIN_STRLEN_MEMX]: Fold if |
| possible. |
| * doc/extend.texi (AVR Built-in Functions): Document |
| __builtin_avr_strlen_flash, __builtin_avr_strlen_flashx, |
| __builtin_avr_strlen_memx. |
| |
| 2025-01-30 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/builtins.def (AVR_FIRST_C_ONLY_BUILTIN_ID): New macro. |
| * config/avr/avr-protos.h (avr_builtin_supported_p): New. |
| * config/avr/avr.cc (avr_builtin_supported_p): New function. |
| (avr_init_builtins): Only provide a built-in when it is supported. |
| * config/avr/avr-c.cc (avr_cpu_cpp_builtins): Only define the |
| __BUILTIN_AVR_<NAME> build-in defines when the associated built-in |
| function is supported. |
| * doc/extend.texi (AVR Built-in Functions): Add a note that |
| following built-ins are supported for only for GNU-C. |
| |
| 2025-01-30 Jakub Jelinek <jakub@redhat.com> |
| Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR target/118696 |
| * config/s390/vector.md (*vec_cmpgt<mode><mode>_nocc_emu, |
| *vec_cmpgtu<mode><mode>_nocc_emu): Duplicate the first rather than |
| second V2DImode element. |
| |
| 2025-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/118695 |
| * expr.cc (expand_expr_real_1): When expanding a MEM_REF |
| to a non-MEM by committing it to a stack temporary make |
| sure to handle misaligned accesses correctly. |
| |
| 2025-01-30 Tobias Burnus <tburnus@baylibre.com> |
| |
| * gimplify.cc (gimplify_call_expr): For OpenMP's append_args clause |
| processed by 'omp dispatch', update for internal-representation |
| changes; fix handling of hidden arguments, add some comments and |
| handle Fortran's value dummy and optional/pointer/allocatable actual |
| args. |
| |
| 2025-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/118692 |
| * expr.cc (expand_expr_real_1): When expanding a MEM_REF |
| as BIT_FIELD_REF avoid large offsets for accesses not |
| overlapping the base object. |
| |
| 2025-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/114052 |
| * tree-ssa-loop-niter.cc (maybe_lower_iteration_bound): Check |
| for infinite subloops we might not exit. |
| |
| 2025-01-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/118320 |
| * pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Commonize |
| the merge of input_uses and return early if it fails. |
| |
| 2025-01-29 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/118010 |
| PR modula2/118183 |
| PR modula2/116073 |
| * doc/gm2.texi (-fm2-file-offset-bits=): Change the default size |
| description to CSSIZE_T. |
| Add COFF_T to the list of data types exported by SYSTEM.def. |
| |
| 2025-01-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/118429 |
| * pair-fusion.cc (latest_hazard_before): Add an extra parameter |
| to say whether the instruction is a load or a store. If the |
| instruction is not a load or store and has memory side effects, |
| prevent it from being moved earlier. |
| (pair_fusion::find_trailing_add): Update call accordingly. |
| (pair_fusion_bb_info::fuse_pair): If the trailng addition had |
| a memory side-effect, use a tombstone to preserve it. |
| |
| 2025-01-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (*negsi2.libgcc): New insn. |
| |
| 2025-01-29 Yoshinori Sato <ysato@users.sourceforge.jp> |
| |
| * config/rx/constraints.md (Q): Also check that the address |
| passes rx_is_restricted_memory-address. |
| |
| 2025-01-29 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118505 |
| * gimple-ssa-split-paths.cc (poor_ifcvt_pred): Return |
| true for trapping statements. |
| |
| 2025-01-29 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * gimple-ssa-split-paths.cc (poor_ifcvt_candidate_code): Remove CALL_EXPR handling. |
| |
| 2025-01-29 Martin Jambor <mjambor@suse.cz> |
| Michal Jireš <mjires@suse.cz> |
| |
| PR tree-optimization/117892 |
| * tree-ssa-dse.cc (dse_optimize_call): Leave control-altering |
| noreturn calls alone. |
| |
| 2025-01-29 Pan Li <pan2.li@intel.com> |
| |
| PR target/117688 |
| * config/riscv/riscv.cc (riscv_expand_sstrunc): Leverage the helper |
| riscv_extend_to_xmode_reg with SIGN_EXTEND. |
| |
| 2025-01-29 Pan Li <pan2.li@intel.com> |
| |
| PR target/117688 |
| * config/riscv/riscv.cc (riscv_expand_sssub): Leverage the helper |
| riscv_extend_to_xmode_reg with SIGN_EXTEND. |
| |
| 2025-01-29 Pan Li <pan2.li@intel.com> |
| |
| PR target/117688 |
| * config/riscv/riscv.cc (riscv_expand_ssadd): Leverage the helper |
| riscv_extend_to_xmode_reg with SIGN_EXTEND. |
| |
| 2025-01-29 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Rename from ... |
| (riscv_extend_to_xmode_reg): Rename to and add rtx_code for |
| zero/sign extend if non-Xmode. |
| (riscv_expand_usadd): Leverage the renamed function with ZERO_EXTEND. |
| (riscv_expand_ussub): Ditto. |
| |
| 2025-01-29 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/118684 |
| * expr.cc (expand_expr_real_1): When creating a stack local |
| during expansion of a handled component, when the base is |
| a SSA_NAME use its type alignment and avoid calling |
| get_object_alignment. |
| |
| 2025-01-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/118684 |
| * expr.cc (expand_expr_real_1): When expanding a reference |
| based on a register and we end up needing a MEM make sure |
| that's aligned as the original reference required. |
| |
| 2025-01-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * input.cc (file_cache_slot::dump): Show indices within |
| m_line_record when dumping entries. |
| |
| 2025-01-28 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/118675 |
| * diagnostic-format-sarif.cc: Define INCLUDE_STRING. |
| (escape_braces): New. |
| (set_string_property_escaping_braces): New. |
| (sarif_builder::make_message_object): Escape braces in the "text" |
| property. |
| (sarif_builder::make_message_object_for_diagram): Likewise, and |
| for the "markdown" property. |
| (sarif_builder::make_multiformat_message_string): Likewise for the |
| "text" property. |
| (xelftest::test_message_with_braces): New. |
| (selftest::diagnostic_format_sarif_cc_tests): Call it. |
| |
| 2025-01-28 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/117270 |
| * tree-vect-slp.cc (vectorizable_slp_permutation_1): Make nperms |
| account for the number of times that each permutation will be used |
| during transformation. |
| |
| 2025-01-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/112859 |
| * tree-loop-distribution.cc |
| (loop_distribution::pg_add_dependence_edges): Add comment. |
| |
| 2025-01-28 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/118663 |
| * lra-constraints.cc (invalid_mode_reg_p): Check empty |
| reg_class_contents. |
| |
| 2025-01-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/117424 |
| * tree-eh.cc (tree_could_trap_p): Verify the base is |
| fully contained within a decl. |
| |
| 2025-01-28 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * tree-pretty-print.cc (dump_omp_clause): Clarify |
| 'OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P'. |
| |
| 2025-01-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/118638 |
| * combine.cc (make_extraction): Only optimize (mult x 2^n) if len is |
| larger than 1. |
| |
| 2025-01-28 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-slp.cc (vectorizable_slp_permutation_1): Remove |
| extra newline from dump message. |
| |
| 2025-01-28 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/114085 |
| * config/h8300/constraints.md (U): No longer accept REGs. |
| * config/h8300/logical.md (andqi3_2): Use "rU" rather than "U". |
| (andqi3_2_clobber_flags, andqi3_1, <code>qi3_1): Likewise. |
| * config/h8300/testcompare.md (tst_extzv_1_n): Likewise. |
| |
| 2025-01-27 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/117173 |
| * config/riscv/riscv-v.cc (shuffle_generic_patterns): Only |
| support single-source permutes by default. |
| * config/riscv/riscv.opt: New param "riscv-two-source-permutes". |
| |
| 2025-01-27 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR c++/116524 |
| * configure.ac: Check for munmap and msync. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| |
| 2025-01-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118653 |
| * tree-vect-loop.cc (vectorizable_live_operation): Also allow |
| out-of-loop debug uses. |
| |
| 2025-01-27 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/118662 |
| * combine.cc (try_combine): When re-materializing a load |
| from an extended reg by a lowpart subreg make sure we're |
| not dealing with vector or complex modes. |
| |
| 2025-01-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/118643 |
| * expr.cc (expand_expr_real_1): Avoid falling back to BIT_FIELD_REF |
| expansion for negative offset. |
| |
| 2025-01-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/112859 |
| PR tree-optimization/115347 |
| * tree-loop-distribution.cc |
| (loop_distribution::pg_add_dependence_edges): For a zero |
| distance vector still make sure to not have an inner |
| loop with zero distance. |
| |
| 2025-01-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/118637 |
| * match.pd: Canonicalize unsigned division by power of two to |
| right shift. |
| |
| 2025-01-27 Soumya AR <soumyaa@nvidia.com> |
| |
| PR target/118490 |
| * match.pd: Added ! to verify that log/exp (CST) can be constant folded. |
| |
| 2025-01-26 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * asan.cc (asan_emit_stack_protection): Always zero the flag |
| unless it is cleared by the __asan_stack_free_N() libcall. |
| |
| 2025-01-26 Pan Li <pan2.li@intel.com> |
| |
| PR target/118103 |
| * config/riscv/riscv.cc (riscv_conditional_register_usage): Add |
| the FRM as the global_regs. |
| |
| 2025-01-25 Andi Kleen <ak@gcc.gnu.org> |
| |
| PR preprocessor/118168 |
| * input.cc (file_cache_slot::m_error): New field. |
| (file_cache_slot::create): Clear m_error. |
| (file_cache_slot::file_cache_slot): Clear m_error. |
| (file_cache_slot::read_data): Set m_error on error. |
| (file_cache_slot::get_next_line): Use m_error instead of ferror. |
| |
| 2025-01-25 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/116256 |
| * config/riscv/riscv.md (mvconst_internal): Reject single bit |
| constants. |
| * config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Improve |
| handling constants. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (V9_5A): Add CPA. |
| * config/aarch64/aarch64-option-extensions.def (CPA): New. |
| * doc/invoke.texi: Document +cpa. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * doc/invoke.texi: Add +wfxt and +xs to armv9.2-a |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (V9_5A): New. |
| * doc/invoke.texi: Document armv9.5-a option. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc: Assert that CRYPTO |
| bit is not set. |
| * config/aarch64/aarch64-feature-deps.h |
| (info<FEAT>.explicit_on): Unset CRYPTO bit. |
| (cpu_##CORE_IDENT): Ditto. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc |
| (aarch64_rewrite_selected_cpu): Refactor and inline into... |
| (aarch64_rewrite_mcpu): this. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_rewrite_selected_cpu): Delete. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc |
| (aarch64_get_arch_string_for_assembler): New. |
| (aarch64_rewrite_march): New. |
| (aarch64_rewrite_selected_cpu): Call new function. |
| * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity mapping. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_get_arch_string_for_assembler): New. |
| * config/aarch64/aarch64.cc |
| (aarch64_declare_function_name): Call new function. |
| (aarch64_start_file): Ditto. |
| * config/aarch64/aarch64.h |
| (EXTRA_SPEC_FUNCTIONS): Use new macro name. |
| (MCPU_TO_MARCH_SPEC): Rename to... |
| (MARCH_REWRITE_SPEC): ...this, and extend the spec rule. |
| (aarch64_rewrite_march): New declaration. |
| (MCPU_TO_MARCH_SPEC_FUNCTIONS): Rename to... |
| (AARCH64_BASE_SPEC_FUNCTIONS): ...this, and add new function. |
| (ASM_CPU_SPEC): Use new macro name. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc |
| (aarch64_get_all_extension_candidates): Inline into... |
| (aarch64_print_hint_for_extensions): ...this. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc |
| (aarch64_get_all_extension_candidates): Move within file. |
| (aarch64_print_hint_candidates): Move from aarch64.cc. |
| (aarch64_print_hint_for_extensions): Ditto. |
| (aarch64_print_hint_for_arch): Ditto. |
| (aarch64_print_hint_for_core): Ditto. |
| (enum aarch_parse_opt_result): Ditto. |
| (aarch64_parse_arch): Ditto. |
| (aarch64_parse_cpu): Ditto. |
| (aarch64_parse_tune): Ditto. |
| (aarch64_validate_march): Ditto. |
| (aarch64_validate_mcpu): Ditto. |
| (aarch64_validate_mtune): Ditto. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_rewrite_selected_cpu): Move within file. |
| (aarch64_print_hint_for_extensions): Share function prototype. |
| (aarch64_print_hint_for_arch): Ditto. |
| (aarch64_print_hint_for_core): Ditto. |
| (enum aarch_parse_opt_result): Ditto. |
| (aarch64_validate_march): Ditto. |
| (aarch64_validate_mcpu): Ditto. |
| (aarch64_validate_mtune): Ditto. |
| (aarch64_get_all_extension_candidates): Unshare prototype. |
| * config/aarch64/aarch64.cc |
| (aarch64_parse_arch): Move to aarch64-common.cc. |
| (aarch64_parse_cpu): Ditto. |
| (aarch64_parse_tune): Ditto. |
| (aarch64_print_hint_candidates): Ditto. |
| (aarch64_print_hint_for_core): Ditto. |
| (aarch64_print_hint_for_arch): Ditto. |
| (aarch64_print_hint_for_extensions): Ditto. |
| (aarch64_validate_mcpu): Ditto. |
| (aarch64_validate_march): Ditto. |
| (aarch64_validate_mtune): Ditto. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_print_hint_candidates): New helper function. |
| (aarch64_print_hint_for_core_or_arch): Inline into callers. |
| (aarch64_print_hint_for_core): Inline callee and use new helper. |
| (aarch64_print_hint_for_arch): Ditto. |
| (aarch64_print_hint_for_extensions): Use new helper. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_print_hint_for_extensions): Receive string as a char *. |
| (aarch64_parse_arch): Don't return a const struct processor *. |
| (aarch64_parse_cpu): Ditto. |
| (aarch64_parse_tune): Ditto. |
| (aarch64_validate_mtune): Ditto. |
| (aarch64_validate_mcpu): Ditto, and use temporary variables for |
| march/mcpu cross-check. |
| (aarch64_validate_march): Ditto. |
| (aarch64_override_options): Adjust for changed parameter types. |
| (aarch64_handle_attr_arch): Ditto. |
| (aarch64_handle_attr_cpu): Ditto. |
| (aarch64_handle_attr_tune): Ditto. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc |
| (struct aarch64_option_extension): Rename to.. |
| (struct aarch64_extension_info): ...this. |
| (all_extensions): Update type name. |
| (struct arch_to_arch_name): Rename to... |
| (struct aarch64_arch_info): ...this, and rename name field. |
| (all_architectures): Update type names, and move before... |
| (struct processor_name_to_arch): ...this. Rename to... |
| (struct aarch64_processor_info): ...this, rename name field and |
| add cpu field. |
| (all_cores): Update type name, and set new field. |
| (aarch64_parse_extension): Update names. |
| (aarch64_get_all_extension_candidates): Ditto. |
| (aarch64_rewrite_selected_cpu): Ditto. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc |
| (all_cores): Remove explicit generic entry. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-opts.h |
| (enum aarch64_processor): Rename to... |
| (enum aarch64_cpu): ...this, and rename the entries. |
| * config/aarch64/aarch64.cc |
| (aarch64_type): Rename type and initial value. |
| (struct processor): Rename member types. |
| (all_architectures): Rename enum members. |
| (all_cores): Ditto. |
| (aarch64_get_tune_cpu): Rename type and enum member. |
| * config/aarch64/aarch64.h (enum target_cpus): Remove. |
| (TARGET_CPU_DEFAULT): Rename default value. |
| (aarch64_tune): Rename type. |
| * config/aarch64/aarch64.opt: |
| (selected_tune): Rename type and default value. |
| |
| 2025-01-24 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_override_options): Compare |
| returned feature masks directly. |
| |
| 2025-01-24 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/118497 |
| * ira-int.h (target_ira_int): Add x_ira_hard_regno_nrefs. |
| (ira_hard_regno_nrefs): New macro. |
| * ira.cc (setup_hard_regno_aclass): Remove unused code. Modify |
| the comment. |
| (setup_hard_regno_nrefs): New function. |
| (ira): Call it. |
| * ira-color.cc (calculate_saved_nregs): Check |
| ira_hard_regno_nrefs. |
| |
| 2025-01-24 yxj-github-437 <2457369732@qq.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_build_builtin_va_list): Mark |
| __builtin_va_list as TREE_PUBLIC. |
| * config/arm/arm.cc (arm_build_builtin_va_list): Likewise. |
| |
| 2025-01-24 David Malcolm <dmalcolm@redhat.com> |
| |
| PR sarif-replay/117670 |
| * Makefile.in (SARIF_REPLAY_INSTALL_NAME): New. |
| (install-libgdiagnostics): Use it,and exeext, rather than just |
| sarif-replay. |
| |
| 2025-01-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/116010 |
| * tree-data-ref.cc (contains_ssa_ref_p_1): New function. |
| (contains_ssa_ref_p): Likewise. |
| (dr_may_alias_p): Avoid treating unanalyzed base parts without |
| SSA reference conservatively. |
| |
| 2025-01-24 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): Remove. |
| (S390_TDC_NEGATIVE_ZERO): Remove. |
| (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): Remove. |
| (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): Remove. |
| (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): Remove. |
| (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): Remove. |
| (S390_TDC_POSITIVE_INFINITY): Remove. |
| (S390_TDC_NEGATIVE_INFINITY): Remove. |
| (S390_TDC_POSITIVE_QUIET_NAN): Remove. |
| (S390_TDC_NEGATIVE_QUIET_NAN): Remove. |
| (S390_TDC_POSITIVE_SIGNALING_NAN): Remove. |
| (S390_TDC_NEGATIVE_SIGNALING_NAN): Remove. |
| (S390_TDC_POSITIVE_DENORMALIZED_DFP_NUMBER): Remove. |
| (S390_TDC_NEGATIVE_DENORMALIZED_DFP_NUMBER): Remove. |
| (S390_TDC_POSITIVE_NORMALIZED_DFP_NUMBER): Remove. |
| (S390_TDC_NEGATIVE_NORMALIZED_DFP_NUMBER): Remove. |
| (S390_TDC_SIGNBIT_SET): Remove. |
| (S390_TDC_INFINITY): Remove. |
| * config/s390/s390.md (signbit<mode>2<tf_fpr>): Merge this one |
| (isinf<mode>2<tf_fpr>): and this one into |
| (<TDC_CLASS:tdc_insn><mode>2<tf_fpr>): new expander. |
| (isnormal<mode>2<tf_fpr>): New BFP expander. |
| (isnormal<mode>2): New DFP expander. |
| * config/s390/vector.md (signbittf2_vr): Merge this one |
| (isinftf2_vr): and this one into |
| (<tdc_insn>tf2_vr): new expander. |
| (signbittf2): Merge this one |
| (isinftf2): and this one into |
| (<tdc_insn>tf2): new expander. |
| |
| 2025-01-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118634 |
| * tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely): |
| Dump the number of estimated eliminated insns. |
| |
| 2025-01-24 Saurabh Jha <saurabh.jha@arm.com> |
| |
| * config/aarch64/aarch64-sve2.md: |
| (*aarch64_pred_faminmax_fused): Fix to use the correct flags. |
| * config/aarch64/aarch64.h |
| (TARGET_SVE_FAMINMAX): Remove. |
| * config/aarch64/iterators.md: Fix iterators so that famax and |
| famin use correct flags. |
| |
| 2025-01-24 Alexandre Oliva <oliva@adacore.com> |
| |
| PR tree-optimization/118572 |
| * gimple-fold.cc (fold_truth_andor_for_ifcombine): Compare as |
| unsigned the variables whose extension bits are masked out. |
| |
| 2025-01-24 Alexandre Oliva <oliva@adacore.com> |
| |
| * gimple-fold.cc (fold_truth_andor_for_ifcombine): Document |
| reversep's absence of effects on range tests. Don't reject |
| reversep mismatches before trying compare swapping. |
| |
| 2025-01-24 Alexandre Oliva <oliva@adacore.com> |
| |
| PR tree-optimization/118514 |
| * tree-eh.cc (bit_field_ref_in_bounds_p): New. |
| (tree_could_trap_p) <BIT_FIELD_REF>: Call it. |
| * gimple-fold.cc (make_bit_field_load): Check trapping status |
| of replacement load against original load. |
| |
| 2025-01-23 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa32-regs.h (ADDITIONAL_REGISTER_NAMES): Change |
| register 86 name to "%fr31L". |
| |
| 2025-01-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/118628 |
| * tree-vect-stmts.cc (vectorizable_store, vectorizable_load): |
| Initialize offvar to NULL_TREE. |
| |
| 2025-01-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR tree-optimization/118012 |
| PR tree-optimization/118360 |
| * config/avr/avr.opt (-mpr118012): New undocumented option. |
| * config/avr/avr-protos.h (avr_out_sextr) |
| (avr_emit_skip_pixop, avr_emit_skip_clear): New protos. |
| * config/avr/avr.cc (avr_adjust_insn_length) |
| [case ADJUST_LEN_SEXTR]: Handle case. |
| (avr_rtx_costs_1) [NEG]: Costs for NEG (ZERO_EXTEND (ZERO_EXTRACT)). |
| [MULT && avropt_pr118012]: Costs for MULT (x AND 1). |
| (avr_out_sextr, avr_emit_skip_pixop, avr_emit_skip_clear): New |
| functions. |
| * config/avr/avr.md [avropt_pr118012]: Add combine patterns with |
| that condition that try to work around PR118012. |
| (adjust_len) <sextr>: Add insn attr value. |
| (pixop): New code iterator. |
| (mulsi3) [avropt_pr118012 && !AVR_TINY]: Allow these in insn condition. |
| |
| 2025-01-23 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/118562 |
| * rtl-ssa/blocks.cc (function_info::replace_phi): When converting |
| to a degenerate phi, make sure to remove all uses of the previous |
| inputs. |
| |
| 2025-01-23 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-tuning-flags.def |
| (AARCH64_EXTRA_TUNE_CHEAP_FPMR_WRITE): New tuning flag. |
| * config/aarch64/aarch64.h (TARGET_CHEAP_FPMR_WRITE): New macro. |
| * config/aarch64/aarch64.md: Split moves into FPMR into a test |
| and branch around. |
| (aarch64_write_fpmr): New pattern. |
| |
| 2025-01-23 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Account |
| for the cost of moving in and out of GENERAL_SYSREGS. |
| |
| 2025-01-23 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64) |
| (*movsi_aarch64, *movdi_aarch64): Allow the source of an MSR |
| to be zero. |
| |
| 2025-01-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/118605 |
| * tree-assume.cc (assume_query::m_parm_list): Change type |
| from bitmap & to bitmap. |
| |
| 2025-01-23 Tejas Belagod <tejas.belagod@arm.com> |
| |
| * omp-low.cc (use_pointer_for_field): Use pointer if the OMP data |
| structure's field type is a poly-int. |
| |
| 2025-01-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/114877 |
| * builtins.cc (fold_builtin_frexp): Handle rvc_nan and rvc_inf cases |
| like rvc_zero, return passed in arg and set *exp = 0. |
| |
| 2025-01-23 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords): Document |
| 'alarm'. |
| |
| 2025-01-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/117726 |
| * config/avr/avr.cc (avr_ld_regno_p): New function. |
| (ashlsi3_out) [case 25,26,27,28,29,30]: Handle and tweak. |
| (lshrsi3_out): Same. |
| (avr_rtx_costs_1) [SImode, ASHIFT, LSHIFTRT]: Adjust costs. |
| * config/avr/avr.md (ashlsi3, *ashlsi3, *ashlsi3_const): |
| Add "r,r,C4L" alternative. |
| (lshrsi3, *lshrsi3, *lshrsi3_const): Add "r,r,C4R" alternative. |
| * config/avr/constraints.md (C4R, C4L): New, |
| |
| 2025-01-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118558 |
| * tree-vectorizer.h (vect_known_alignment_in_bytes): Pass |
| through offset to dr_misalignment. |
| * tree-vect-stmts.cc (get_group_load_store_type): Compute |
| offset applied for negative stride and use it when querying |
| alignment of accesses. |
| (vectorizable_load): Likewise. |
| |
| 2025-01-23 Nathaniel Shead <nathanieloshead@gmail.com> |
| |
| PR c++/107741 |
| * common.opt: Add -fabi-version=20. |
| * doc/invoke.texi: Likewise. |
| |
| 2025-01-23 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/118501 |
| * config/loongarch/loongarch.md (@xorsign<mode>3): Use |
| force_lowpart_subreg. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/avx10_2-512convertintrin.h: |
| Omit "p" for packed for FP8. |
| * config/i386/avx10_2convertintrin.h: Ditto. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2-512satcvtintrin.h: Change intrin and |
| builtin name according to new mnemonics. |
| * config/i386/avx10_2satcvtintrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/sse.md |
| (UNSPEC_VCVTBF162IBS): Rename from UNSPEC_VCVTNEBF162IBS. |
| (UNSPEC_VCVTBF162IUBS): Rename from UNSPEC_VCVTNEBF162IUBS. |
| (UNSPEC_VCVTTBF162IBS): Rename from UNSPEC_VCVTTNEBF162IBS. |
| (UNSPEC_VCVTTBF162IUBS): Rename from UNSPEC_VCVTTNEBF162IUBS. |
| (UNSPEC_CVTNE_BF16_IBS_ITER): Rename to... |
| (UNSPEC_CVT_BF16_IBS_ITER): ...this. Adjust UNSPEC name. |
| (sat_cvt_sign_prefix): Adjust UNSPEC name. |
| (sat_cvt_trunc_prefix): Ditto. |
| (avx10_2_cvt<sat_cvt_trunc_prefix>nebf162i<sat_cvt_sign_prefix>bs<mode><mask_name>): |
| Rename to... |
| (avx10_2_cvt<sat_cvt_trunc_prefix>bf162i<sat_cvt_sign_prefix>bs<mode><mask_name>): |
| ...this. Change instruction name output. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2-512convertintrin.h: Change intrin and |
| builtin name according to new mnemonics. |
| * config/i386/avx10_2convertintrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/sse.md |
| (UNSPEC_VCVTPH2BF8): Rename from UNSPEC_VCVTNEPH2BF8. |
| (UNSPEC_VCVTPH2BF8S): Rename from UNSPEC_VCVTNEPH2BF8S. |
| (UNSPEC_VCVTPH2HF8): Rename from UNSPEC_VCVTNEPH2HF8. |
| (UNSPEC_VCVTPH2HF8S): Rename from UNSPEC_VCVTNEPH2HF8S. |
| (UNSPEC_CONVERTPH2FP8): Rename from UNSPEC_NECONVERTPH2FP8. |
| Adjust UNSPEC name. |
| (convertph2fp8): Rename from neconvertph2fp8. Adjust |
| iterator map. |
| (vcvt<neconvertph2fp8>v8hf): Rename to... |
| (vcvt<neconvertph2fp8>v8hf): ...this. |
| (*vcvt<neconvertph2fp8>v8hf): Rename to... |
| (*vcvt<neconvertph2fp8>v8hf): ...this. |
| (vcvt<neconvertph2fp8>v8hf_mask): Rename to... |
| (vcvt<neconvertph2fp8>v8hf_mask): ...this. |
| (*vcvt<neconvertph2fp8>v8hf_mask): Rename to... |
| (*vcvt<neconvertph2fp8>v8hf_mask): ...this. |
| (vcvt<neconvertph2fp8><mode><mask_name>): Rename to... |
| (vcvt<convertph2fp8><mode><mask_name>): ...this. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2-512convertintrin.h: Change intrin and |
| builtin name according to new mnemonics. |
| * config/i386/avx10_2convertintrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/sse.md |
| (UNSPEC_VCVT2PH2BF8): Rename from UNSPEC_VCVTNE2PH2BF8. |
| (UNSPEC_VCVT2PH2BF8S): Rename from UNSPEC_VCVTNE2PH2BF8S. |
| (UNSPEC_VCVT2PH2HF8): Rename from UNSPEC_VCVTNE2PH2HF8. |
| (UNSPEC_VCVT2PH2HF8S): Rename from UNSPEC_VCVTNE2PH2HF8S. |
| (UNSPEC_CONVERTFP8_PACK): Rename from UNSPEC_NECONVERTFP8_PACK. |
| Adjust UNSPEC name. |
| (convertfp8_pack): Rename from neconvertfp8_pack. Adjust |
| iterator map. |
| (vcvt<neconvertfp8_pack><mode><mask_name>): Rename to... |
| (vcvt<convertfp8_pack><mode><mask_name>): ...this. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2bf16intrin.h: Change intrin and builtin |
| name according to new mnemonics. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/i386-expand.cc |
| (ix86_expand_fp_compare): Adjust comments. |
| (ix86_expand_builtin): Adjust switch case. |
| * config/i386/i386.md (cmpibf): Change instruction name output. |
| * config/i386/sse.md (UNSPEC_VCOMSBF16): Removed. |
| (avx10_2_comisbf16_v8bf): New. |
| (avx10_2_comsbf16_v8bf): Removed. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin |
| name according to new mnemonics. |
| * config/i386/avx10_2bf16intrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/sse.md |
| (UNSPEC_VFPCLASSBF16); Rename from UNSPEC_VFPCLASSPBF16. |
| (avx10_2_getexppbf16_<mode><mask_name>): Rename to... |
| (avx10_2_getexpbf16_<mode><mask_name>): ...this. |
| Change instruction name output. |
| (avx10_2_fpclasspbf16_<mode><mask_scalar_merge_name>): |
| Rename to... |
| (avx10_2_fpclassbf16_<mode><mask_scalar_merge_name>): ...this. |
| Change instruction name output. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin |
| name according to new mnemonics. |
| * config/i386/avx10_2bf16intrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/sse.md |
| (UNSPEC_VSCALEFBF16): Rename from UNSPEC_VSCALEFPBF16. |
| (avx10_2_scalefpbf16_<mode><mask_name>): Rename to... |
| (avx10_2_scalefbf16_<mode><mask_name>): ...this. |
| Change instruction name output. |
| (avx10_2_rsqrtpbf16_<mode><mask_name>): Rename to... |
| (avx10_2_rsqrtbf16_<mode><mask_name>): ...this. |
| Change instruction name output. |
| (avx10_2_sqrtnepbf16_<mode><mask_name>): Rename to... |
| (avx10_2_sqrtbf16_<mode><mask_name>): ...this. |
| Change instruction name output. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin |
| name according to new mnemonics. |
| * config/i386/avx10_2bf16intrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/sse.md |
| (UNSPEC_VRNDSCALEBF16): Rename from UNSPEC_VRNDSCALENEPBF16. |
| (UNSPEC_VREDUCEBF16): Rename from UNSPEC_VREDUCENEPBF16. |
| (UNSPEC_VGETMANTBF16): Rename from UNSPEC_VGETMANTPBF16. |
| (BF16IMMOP): Adjust iterator due to UNSPEC name change. |
| (bf16immop): Ditto. |
| (avx10_2_<bf16immop>pbf16_<mode><mask_name>): Rename to... |
| (avx10_2_<bf16immop>bf16_<mode><mask_name>): ...this. Change |
| instruction name output. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2-512minmaxintrin.h: Change intrin and |
| builtin name according to new mnemonics. |
| * config/i386/avx10_2minmaxintrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/sse.md |
| (UNSPEC_MINMAXBF16): Rename from UNSPEC_MINMAXNEPBF16. |
| (avx10_2_minmaxnepbf16_<mode><mask_name>): Rename to... |
| (avx10_2_minmaxbf16_<mode><mask_name>): ...this. Change |
| instruction name output. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin |
| name according to new mnemonics. |
| * config/i386/avx10_2bf16intrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/sse.md |
| (avx10_2_<code>pbf16_<mode><mask_name>): Rename to... |
| (avx10_2_<code>bf16_<mode><mask_name>): ...this. |
| Change instruction name output. |
| (avx10_2_cmppbf16_<mode><mask_scalar_merge_name>): Rename to... |
| (avx10_2_cmpbf16_<mode><mask_scalar_merge_name>): ...this. |
| Change instruction name output. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin |
| names according to new mnemonics. |
| * config/i386/avx10_2bf16intrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/sse.md |
| (avx10_2_fmaddnepbf16_<mode>_maskz): Rename to... |
| (avx10_2_fmaddbf16_<mode>_maskz): ...this. Adjust emit_insn. |
| (avx10_2_fmaddnepbf16_<mode><sd_maskz_name>): Rename to... |
| (avx10_2_fmaddbf16_<mode><sd_maskz_name>): ...this. |
| Change instruction name output. |
| (avx10_2_fmaddnepbf16_<mode>_mask): Rename to... |
| (avx10_2_fmaddbf16_<mode>_mask): ...this. |
| Change instruction name output. |
| (avx10_2_fmaddnepbf16_<mode>_mask3): Rename to... |
| (avx10_2_fmaddbf16_<mode>_mask3): ...this. |
| Change instruction name output. |
| (avx10_2_fnmaddnepbf16_<mode>_maskz): Rename to... |
| (avx10_2_fnmaddbf16_<mode>_maskz): ...this. Adjust emit_insn. |
| (avx10_2_fnmaddnepbf16_<mode><sd_maskz_name>): Rename to... |
| (avx10_2_fnmaddbf16_<mode><sd_maskz_name>): ...this. |
| Change instruction name output. |
| (avx10_2_fnmaddnepbf16_<mode>_mask): Rename to... |
| (avx10_2_fnmaddbf16_<mode>_mask): ...this. |
| Change instruction name output. |
| (avx10_2_fnmaddnepbf16_<mode>_mask3): Rename to... |
| (avx10_2_fnmaddbf16_<mode>_mask3): ...this. |
| Change instruction name output. |
| (avx10_2_fmsubnepbf16_<mode>_maskz): Rename to... |
| (avx10_2_fmsubbf16_<mode>_maskz): ...this. Adjust emit_insn. |
| (avx10_2_fmsubnepbf16_<mode><sd_maskz_name>): Rename to... |
| (avx10_2_fmsubbf16_<mode><sd_maskz_name>): ...this. |
| Change instruction name output. |
| (avx10_2_fmsubnepbf16_<mode>_mask): Rename to... |
| (avx10_2_fmsubbf16_<mode>_mask): ...this. |
| Change instruction name output. |
| (avx10_2_fmsubnepbf16_<mode>_mask3): Rename to... |
| (avx10_2_fmsubbf16_<mode>_mask3): ...this. |
| Change instruction name output. |
| (avx10_2_fnmsubnepbf16_<mode>_maskz): Rename to... |
| (avx10_2_fnmsubbf16_<mode>_maskz): ...this. Adjust emit_insn. |
| (avx10_2_fnmsubnepbf16_<mode><sd_maskz_name>): Rename to... |
| (avx10_2_fnmsubbf16_<mode><sd_maskz_name>): ...this. |
| Change instruction name output. |
| (avx10_2_fnmsubnepbf16_<mode>_mask): Rename to... |
| (avx10_2_fnmsubbf16_<mode>_mask): ...this. |
| Change instruction name output. |
| (avx10_2_fnmsubnepbf16_<mode>_mask3): Rename to... |
| (avx10_2_fnmsubbf16_<mode>_mask3): ...this. |
| Change instruction name output. |
| |
| 2025-01-23 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/118270 |
| * config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin |
| name according to new mnemonics. |
| * config/i386/avx10_2bf16intrin.h: Ditto. |
| * config/i386/i386-builtin.def (BDESC): Ditto. |
| * config/i386/sse.md (div<mode>3): Adjust emit_insn. |
| (avx10_2_<insn>nepbf16_<mode><mask_name>): Rename to... |
| (avx10_2_<insn>bf16_<mode><mask_name>): ...this. Change |
| instruction name output. |
| (avx10_2_rcppbf16_<mode><mask_name>): Rename to... |
| (avx10_2_rcpbf16_<mode><mask_name>):...this. Change |
| instruction name output. |
| |
| 2025-01-22 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc: Fix arch15 machine string which must not |
| be empty. |
| |
| 2025-01-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.md (aarch64_read_sysregti): Change |
| the source predicate to aarch64_reg_or_zero. |
| |
| 2025-01-22 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.md |
| (<optab>_alsl_reversesi_extended): Add '&' to the destination |
| register constraint and append '0' to the first source register |
| constraint to indicate the destination register cannot be same |
| as the second source register, and change the split condition to |
| reload_completed so that the insn will be split only after RA in |
| order to obtain allocated registers that satisfy the above |
| constraints. |
| |
| 2025-01-21 Jeff Law <jlaw@ventanamicro.com> |
| |
| Revert: |
| 2024-10-29 yulong <shiyulong@iscas.ac.cn> |
| |
| * config.gcc: Add riscv_cmo.h. |
| * config/riscv/riscv_cmo.h: New file. |
| |
| 2025-01-21 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118483 |
| * match.pd (`x ==/!= ~x`): Allow for an optional convert |
| and use itwise_inverted_equal_p/maybe_bit_not instead of |
| directly matching bit_not. |
| |
| 2025-01-21 Robin Dapp <rdapp@ventanamicro.com> |
| |
| * config/riscv/riscv.cc (riscv_file_end): Fix format string. |
| (riscv_lshift_subword): Mark MODE as unused. |
| |
| 2025-01-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-passes.cc (avr_emit_shift) [ASHIFT,HImode]: |
| Allow offsets 5 and 6 as 3op provided have MUL and a scratch. |
| * config/avr/avr.cc (avr_optimize_size_max_p): New function. |
| (avr_out_ashlhi3_mul): New function. |
| (ashlhi3_out) [case 4, 5, 6]: Better speed for -Os. |
| * config/avr/avr.md (isa) <mul, no_mul>: New attr values. |
| (*ashlhi3_const): Add alternative for offsets 5 and 6. |
| |
| 2025-01-21 Jin Ma <jinma@linux.alibaba.com> |
| |
| PR target/116593 |
| * config/riscv/constraints.md (vl): New. |
| * config/riscv/thead-vector.md: Replacing rK with rvl. |
| * config/riscv/vector.md: Likewise. |
| |
| 2025-01-21 Denis Chertykov <chertykov@gmail.com> |
| |
| * lra-spills.cc (assign_stack_slot_num_and_sort_pseudos): Use known_ge |
| to compare sizes. |
| |
| 2025-01-21 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/116256 |
| * config/riscv/predicates.md (consecutive_bits_operand): Properly |
| handle (const_int 0). |
| |
| 2025-01-21 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.opt.urls: Regenerate |
| |
| 2025-01-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118569 |
| * cfgloopmanip.cc (fix_loop_placement): When the loops |
| nesting parents changed, mark all blocks to be scanned |
| for LC PHI uses. |
| (fix_bb_placements): Remove code moved into fix_loop_placement. |
| |
| 2025-01-21 Vladimir Miloserdov <vladimir.miloserdov@arm.com> |
| |
| * config/aarch64/aarch64-c.cc |
| (aarch64_update_cpp_builtins): Add new flag TARGET_LUT. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc |
| (struct luti_base): Shape for lut intrinsics. |
| (SHAPE): Specializations for lut shapes for luti2 and luti4.. |
| * config/aarch64/aarch64-sve-builtins-shapes.h: Declare lut |
| intrinsics. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc |
| (class svluti_lane_impl): Define expand for lut intrinsics. |
| (FUNCTION): Define expand for lut intrinsics. |
| * config/aarch64/aarch64-sve-builtins-sve2.def |
| (REQUIRED_EXTENSIONS): Declare lut intrinsics behind lut flag. |
| (svluti2_lane): Define intrinsic behind flag. |
| (svluti4_lane): Define intrinsic behind flag. |
| * config/aarch64/aarch64-sve-builtins-sve2.h: Declare lut |
| intrinsics. |
| * config/aarch64/aarch64-sve-builtins.cc |
| (TYPES_bh_data): New type for byte and halfword. |
| (bh_data): Type array for byte and halfword. |
| (h_data): Type array for halfword. |
| * config/aarch64/aarch64-sve2.md |
| (@aarch64_sve_luti<LUTI_BITS><mode>): Instruction patterns for |
| lut intrinsics. |
| * config/aarch64/iterators.md: Iterators and attributes for lut |
| intrinsics. |
| |
| 2025-01-21 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/118273 |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use nvectors when |
| doing mask registrations. |
| |
| 2025-01-21 Tamar Christina <tamar.christina@arm.com> |
| |
| * config.gcc (aarch64-*-elf): Drop ILP32 from default multilibs. |
| |
| 2025-01-21 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch-protos.h |
| (loongarch_reset_previous_fndecl): Add function declaration. |
| (loongarch_save_restore_target_globals): Likewise. |
| (loongarch_register_pragmas): Likewise. |
| * config/loongarch/loongarch-target-attr.cc |
| (loongarch_option_valid_attribute_p): Optimize the processing |
| of attributes. |
| (loongarch_pragma_target_parse): New functions. |
| (loongarch_register_pragmas): Likewise. |
| * config/loongarch/loongarch.cc |
| (loongarch_reset_previous_fndecl): New functions. |
| (loongarch_set_current_function): When the old_tree is the same |
| as the new_tree, the rules for using registers, etc., |
| are set according to the option values to ensure that the |
| pragma can be processed correctly. |
| * config/loongarch/loongarch.h (REGISTER_TARGET_PRAGMAS): |
| Define macro. |
| * doc/extend.texi: Supplemental Documentation. |
| |
| 2025-01-21 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * attr-urls.def: Regenerate. |
| * config.gcc: Add loongarch-target-attr.o to extra_objs. |
| * config/loongarch/loongarch-protos.h |
| (loongarch_option_valid_attribute_p): Function declaration. |
| (loongarch_option_override_internal): Likewise. |
| * config/loongarch/loongarch.cc |
| (loongarch_option_override_internal): Delete the modifications |
| to target_option_default_node and target_option_current_node. |
| (loongarch_set_current_function): Add annotation information. |
| (loongarch_option_override): add assignment operations to |
| target_option_default_node and target_option_current_node. |
| (TARGET_OPTION_VALID_ATTRIBUTE_P): Define. |
| * config/loongarch/t-loongarch: Add compilation of target file |
| loongarch-target-attr.o. |
| * doc/extend.texi: Add description information of LoongArch |
| Function Attributes. |
| * config/loongarch/loongarch-target-attr.cc: New file. |
| |
| 2025-01-21 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_process_target_version_attr): Add experimental warning. |
| * config/aarch64/aarch64.opt: Add command line option to disable |
| warning. |
| * doc/invoke.texi: Add documentation for -W[no-]experimental-fmv-target. |
| |
| 2025-01-20 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/118560 |
| * lra-constraints.cc (invalid_mode_reg_p): Exchange args in |
| hard_reg_set_subset_p call. |
| |
| 2025-01-20 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/114442 |
| * config/riscv/xiangshan.md: Add missing insn types to a |
| new dummy insn reservation. |
| |
| 2025-01-20 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/116256 |
| * config/riscv/riscv.md (reassocating constant addition): Adjust |
| condition to avoid creating an unrecognizable insn. |
| |
| 2025-01-20 Denis Chertykov <chertykov@gmail.com> |
| |
| PR rtl-optimization/117868 |
| * lra-spills.cc (assign_stack_slot_num_and_sort_pseudos): Reuse slots |
| only without allocated memory or only with equal or smaller registers |
| with equal or smaller alignment. |
| (lra_spill): Print slot size as width. |
| |
| 2025-01-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/118348 |
| * tree-vectorizer.cc (vec_info::move_dr): Copy |
| STMT_VINFO_SIMD_LANE_ACCESS_P. |
| |
| 2025-01-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| Revert: |
| 2025-01-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/118384 |
| * tree-vectorizer.cc (vec_info::move_dr): Copy |
| STMT_VINFO_SIMD_LANE_ACCESS_P. |
| |
| 2025-01-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/118384 |
| * tree-vectorizer.cc (vec_info::move_dr): Copy |
| STMT_VINFO_SIMD_LANE_ACCESS_P. |
| |
| 2025-01-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/118501 |
| * config/aarch64/aarch64.md (@xorsign<mode>3): Use |
| force_lowpart_subreg. |
| |
| 2025-01-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/118531 |
| * config/aarch64/aarch64.md (*insv_reg<mode>_<SUBDI_BITS>) |
| (*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>) |
| (*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>): Add missing |
| simd requirements. |
| |
| 2025-01-20 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): |
| Change GPR2 to X. |
| (*th_cond_mov<GPR:mode>): Likewise. |
| |
| 2025-01-20 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118077 |
| PR tree-optimization/117668 |
| * tree-inline.cc (fold_marked_statements): Purge abnormal edges |
| as needed. |
| |
| 2025-01-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/117875 |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Handle SSA copies. |
| |
| 2025-01-20 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/115921 |
| * config/loongarch/loongarch-protos.h |
| (loongarch_reassoc_shift_bitwise): New function prototype. |
| * config/loongarch/loongarch.cc |
| (loongarch_reassoc_shift_bitwise): Implement. |
| * config/loongarch/loongarch.md |
| (*alslsi3_extend_subreg): New define_insn_and_split. |
| (<any_bitwise:optab>_shift_reverse<X:mode>): New |
| define_insn_and_split. |
| (<any_bitwise:optab>_alsl_reversesi_extended): New |
| define_insn_and_split. |
| (zero_extend_ashift): Remove as it's just a special case of |
| and_shift_reversedi, and it does not make too much sense to |
| write "alsl.d rd,rs,r0,shamt" instead of "slli.d rd,rs,shamt". |
| (bstrpick_alsl_paired): Remove as it is already done by |
| splitting and_shift_reversedi into and + ashift first, then |
| late combining the ashift and a further add. |
| |
| 2025-01-20 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/constraints.md (Yy): New define_constriant. |
| * config/loongarch/loongarch.cc (loongarch_print_operand): |
| For "%M", output the index of bits to be used with |
| bstrins/bstrpick. |
| * config/loongarch/predicates.md (ins_zero_bitmask_operand): |
| Exclude low_bitmask_operand as for low_bitmask_operand it's |
| always better to use bstrpick instead of bstrins. |
| (and_operand): New define_predicate. |
| * config/loongarch/loongarch.md (any_or): New |
| define_code_iterator. |
| (bitwise_operand): New define_code_attr. |
| (*<optab:any_or><mode:GPR>3): New define_insn. |
| (*and<mode:GPR>3): New define_insn. |
| (<optab:any_bitwise><mode:X>3): New define_expand. |
| (and<mode>3_extended): Remove, replaced by the 3rd alternative |
| of *and<mode:GPR>3. |
| (bstrins_<mode>_for_mask): Remove, replaced by the 4th |
| alternative of *and<mode:GPR>3. |
| (*<optab:any_bitwise>si3_internal): Remove, already covered by |
| the *<optab:any_or><mode:GPR>3 and *and<mode:GPR>3 templates. |
| |
| 2025-01-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118552 |
| * cfgloopmanip.cc (fix_loop_placement): Properly mark |
| exit source blocks as to be scanned for LC SSA update when |
| the loops nesting relationship changed. |
| (fix_loop_placements): Adjust. |
| (fix_bb_placements): Likewise. |
| |
| 2025-01-20 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/t-nvptx (MULTILIB_OPTIONS): Don't add 'mptx=3.1' if |
| neither sm_30 nor sm_35 multilib variant is built. |
| |
| 2025-01-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/118509 |
| * tree.cc (tree_invariant_p_1): Return true for TARGET_EXPR too. |
| |
| 2025-01-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/118224 |
| * tree-ssa-dce.cc (is_removable_allocation_p): Multiply a1 by a2 |
| instead of adding it. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def (s390_vec_load_len): Deprecate |
| some overloads. |
| (s390_vec_store_len): Deprecate some overloads. |
| (s390_vec_load_len_r): Add. |
| (s390_vec_store_len_r): Add. |
| * config/s390/s390-c.cc (s390_vec_load_len_r): Add. |
| (s390_vec_store_len_r): Add. |
| * config/s390/vecintrin.h (vec_load_len_r): Redefine. |
| (vec_store_len_r): Redefine. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def: Add 128-bit variants. |
| * config/s390/s390-builtin-types.def: Update accordingly. |
| * config/s390/vector.md (<vec_shifts_name><mode>3): Add 128-bit |
| variants. |
| * config/s390/vx-builtins.md: Ditto. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def: Add 128-bit variants and remove |
| bool variants. |
| * config/s390/s390-builtin-types.def: Update accordinly. |
| * config/s390/s390.md: Emulate min/max for GPR. |
| * config/s390/vector.md: Add min/max patterns and emulate in |
| case of no VXE3. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def (s390_vec_abs_s128): Add. |
| (s390_vlpq): Add. |
| * config/s390/s390-builtin-types.def: Update accordingly. |
| * config/s390/vector.md (abs<mode>2): Emulate w/o VXE3. |
| (*abs<mode>2): Add 128-bit variant. |
| (*vec_sel0<mode>): Make it a ... |
| (vec_sel0<mode>): named pattern. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def: Add 128-bit variants. |
| * config/s390/s390-builtin-types.def: Update accordingly. |
| * config/s390/s390.cc (s390_expand_vec_compare_cc): Also |
| consider TI modes for vectors. |
| * config/s390/vector.md: Enable *vec_cmp et al. for VXE3. |
| * config/s390/vx-builtins.md: Ditto. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/vector.md (div<mode>3): Add. |
| (udiv<mode>3): Add. |
| (mod<mode>3): Add. |
| (umod<mode>3): Add. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def (s390_vec_cntlz): Add 128-bit |
| integer overloads. |
| (s390_vclzq): Add. |
| (s390_vec_cnttz): Add 128-bit integer overloads. |
| (s390_vctzq): Add. |
| * config/s390/s390-builtin-types.def: Update accordingly. |
| * config/s390/s390.h (CTZ_DEFINED_VALUE_AT_ZERO): Define. |
| * config/s390/s390.md (*clzg): New insn. |
| (clztidi2): Exploit new insn for target arch15. |
| (ctzdi2): New insn. |
| * config/s390/vector.md (clz<mode>2): Extend modes including |
| 128-bit integer. |
| (ctz<mode>2): Likewise. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def (s390_vec_gen_element_masks_128): Add. |
| (s390_vgemb): Add. |
| (s390_vgemh): Add. |
| (s390_vgemf): Add. |
| (s390_vgemg): Add. |
| (s390_vgemq): Add. |
| * config/s390/s390-builtin-types.def: Update accordingly. |
| * config/s390/s390.md (UNSPEC_VEC_VGEM): Add. |
| * config/s390/vecintrin.h (vec_gen_element_masks_8): Define. |
| (vec_gen_element_masks_16): Define. |
| (vec_gen_element_masks_32): Define. |
| (vec_gen_element_masks_64): Define. |
| (vec_gen_element_masks_128): Define. |
| * config/s390/vx-builtins.md (vgemv16qi): Add. |
| (vgem<mode>): Add. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def (s390_vec_evaluate): Add. |
| (s390_veval): Add. |
| * config/s390/s390-builtin-types.def: Update accordingly. |
| * config/s390/s390.md (UNSPEC_VEC_VEVAL): Add. |
| * config/s390/vecintrin.h (vec_evaluate): Define. |
| * config/s390/vector.md |
| (*veval<mode>_<logic_op1:logic_op_stringify><logic_op2:logic_op_stringify>): |
| Add. |
| (veval<mode>): Add. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def (s390_vec_blend): Add. |
| (s390_vblendb): Add. |
| (s390_vblendh): Add. |
| (s390_vblendf): Add. |
| (s390_vblendg): Add. |
| (s390_vblendq): Add. |
| * config/s390/s390-builtin-types.def: Update accordingly. |
| * config/s390/s390.md (UNSPEC_VEC_VBLEND): Add. |
| * config/s390/vecintrin.h (vec_blend): Define. |
| * config/s390/vx-builtins.md (vblend<mode>): Add. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def (s390_bdepg): Add. |
| (s390_bextg): Add. |
| * config/s390/s390-builtin-types.def: Update accordingly. |
| * config/s390/s390.md (UNSPEC_BDEPG): Add. |
| (UNSPEC_BEXTG): Add. |
| (bdepg): Add. |
| (bextg): Add. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.md (*lxa<LXAMODE>_index): Add. |
| (*lxa<LXAMODE>_displacement_index): Add. |
| (*lxa<LXAMODE>_index_base): Add. |
| (*lxa<LXAMODE>_displacement_index_base): Add. |
| (*lxab_displacement_index_base): Add. |
| (*llxa<LXAMODE>_displacement_index): Add. |
| (*llxa<LXAMODE>_index_base): Add. |
| (*llxa<LXAMODE>_displacement_index_base): Add. |
| (*llxab_displacement_index_base): Add. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-builtins.def: Add new instruction variants. |
| * config/s390/s390-builtin-types.def: Update accordingly. |
| * config/s390/vecintrin.h: Add new defines. |
| * config/s390/vector.md: Adapt insns for new instruction |
| variants. |
| * config/s390/vx-builtins.md: Ditto. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| * config/s390/s390-builtins.def (B_VXE3): Define. |
| (B_ARCH15): Define. |
| * config/s390/s390-c.cc (s390_resolve_overloaded_builtin): |
| Consistency checks for VXE3. |
| * config/s390/s390.cc (s390_expand_builtin): Consistency checks |
| for VXE3. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| * config/s390/s390-c.cc (rid_int128): New helper function. |
| (s390_macro_to_expand): Deal with `vector __int128`. |
| (s390_cpu_cpp_builtins_internal): Bump __VEC__. |
| * config/s390/s390.cc (s390_handle_vectorbool_attribute): Add |
| 128-bit bool zvector. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| * common/config/s390/s390-common.cc: Add arch15 processor flags. |
| * config.gcc: Add arch15 for options --with-{arch,mtune}. |
| * config/s390/driver-native.cc (s390_host_detect_local_cpu): |
| Default to arch15. |
| * config/s390/s390-opts.h (enum processor_type): Add |
| PROCESSOR_ARCH15. |
| * config/s390/s390.cc (processor_table,s390_issue_rate, |
| s390_get_sched_attrmask,s390_get_unit_mask): Add arch15. |
| * config/s390/s390.h (enum processor_flags): Add processor flags |
| for VXE3 and ARCH15. |
| (TARGET_CPU_VXE3): Define. |
| (TARGET_CPU_VXE3_P): Define. |
| (TARGET_CPU_ARCH15): Define. |
| (TARGET_CPU_ARCH15_P): Define. |
| (TARGET_VXE3): Define. |
| (TARGET_VXE3_P): Define. |
| (TARGET_ARCH15): Define. |
| (TARGET_ARCH15_P): Define. |
| * config/s390/s390.md: Add VXE3 and ARCH15 to cpu_facility, and |
| let attribute "enabled" deal with them. |
| * config/s390/s390.opt: Add arch15. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| * config/s390/vecintrin.h: Sort definitions. |
| |
| 2025-01-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/vector.md: Stay scalar for TOINTVEC/tointvec. |
| |
| 2025-01-20 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config.gcc (riscv*): Install sifive_vector.h. |
| * config/riscv/sifive_vector.h: New. |
| |
| 2025-01-20 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/118510 |
| * config/i386/i386.md (*x86_64_shld_ndd_2): Use register_operand |
| for operand[0] and adjust the output template to directly |
| generate ndd form shld pattern. |
| (*x86_shld_ndd_2): Likewise. |
| (*x86_64_shrd_ndd_2): Likewise. |
| (*x86_shrd_ndd_2): Likewise. |
| |
| 2025-01-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movdi_internal): Reorder ISA attribute |
| by ascending alternative index. |
| |
| 2025-01-19 Mark Wielaard <mark@klomp.org> |
| |
| * config/sparc/sparc.opt.urls: Regenerated. |
| |
| 2025-01-19 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/gm2.texi (Type compatibility): Move modula2.org link |
| to https. |
| |
| 2025-01-19 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (OpenMP): Adjust link to specifications. |
| |
| 2025-01-18 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/116308 |
| * config/riscv/riscv.cc (riscv_lshift_subword): Use gen_lowpart |
| rather than simplify_gen_subreg. |
| |
| 2025-01-18 Michal Jires <mjires@suse.cz> |
| |
| * cgraph.cc (symbol_table::create_empty): |
| Move uid to symtab_node. |
| (test_symbol_table_test): Change expected dump id. |
| * cgraph.h (struct cgraph_node): |
| Move uid to symtab_node. |
| (symbol_table::register_symbol): Likewise. |
| * dumpfile.cc (test_capture_of_dump_calls): |
| Change expected dump id. |
| * ipa-inline.cc (update_caller_keys): |
| Use summary id instead of uid. |
| (update_callee_keys): Likewise. |
| * symtab.cc (symtab_node::get_dump_name): |
| Use uid instead of order. |
| |
| 2025-01-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/118512 |
| * config/sparc/sparc-c.cc (sparc_target_macros): Deal with VIS 3B. |
| * config/sparc/sparc.cc (dump_target_flag_bits): Likewise. |
| (sparc_option_override): Likewise. |
| (sparc_vis_init_builtins): Likewise. |
| * config/sparc/sparc.md (fpcmp_vis): Replace TARGET_VIS3 with |
| TARGET_VIS3B. |
| (vec_cmp): Likewise. |
| (fpcmpu_vis): Likewise. |
| (vec_cmpu): Likewise. |
| (vcond_mask_): Likewise. |
| * config/sparc/sparc.opt (VIS3B): New target mask. |
| * doc/invoke.texi (SPARC options): Document -mvis3b. |
| |
| 2025-01-18 Jin Ma <jinma@linux.alibaba.com> |
| |
| PR target/118357 |
| * config/riscv/riscv-vsetvl.cc: Function change_vtype_only_p always |
| returns false for XTheadVector. |
| |
| 2025-01-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118529 |
| * tree-vect-stmts.cc (vectorizable_condition): Check the |
| shape of the vector and condition vector type are compatible. |
| |
| 2025-01-18 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/invoke.texi (AVR Options): Fix plenk at -msplit-ldst. |
| |
| 2025-01-18 Akram Ahmad <Akram.Ahmad@arm.com> |
| Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc: Expand iterators. |
| * config/aarch64/aarch64-simd-builtins.def: Use standard names |
| * config/aarch64/aarch64-simd.md: Use standard names, split insn |
| definitions on signedness of operator and type of operands. |
| * config/aarch64/arm_neon.h: Use standard builtin names. |
| * config/aarch64/iterators.md: Add VSDQ_I_QI_HI iterator to |
| simplify splitting of insn for unsigned scalar arithmetic. |
| |
| 2025-01-18 Akram Ahmad <Akram.Ahmad@arm.com> |
| |
| * config/aarch64/aarch64-sve.md: Rename insns |
| |
| 2025-01-18 Tamar Christina <tamar.christina@arm.com> |
| |
| Revert: |
| 2025-01-17 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc: Expand iterators. |
| * config/aarch64/aarch64-simd-builtins.def: Use standard names |
| * config/aarch64/aarch64-simd.md: Use standard names, split insn |
| definitions on signedness of operator and type of operands. |
| * config/aarch64/arm_neon.h: Use standard builtin names. |
| * config/aarch64/iterators.md: Add VSDQ_I_QI_HI iterator to |
| simplify splitting of insn for unsigned scalar arithmetic. |
| |
| 2025-01-18 Tamar Christina <tamar.christina@arm.com> |
| |
| Revert: |
| 2025-01-17 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-sve.md: Rename insns |
| |
| 2025-01-18 Monk Chiang <monk.chiang@sifive.com> |
| |
| * config/riscv/riscv.cc: Remove unused variable. |
| |
| 2025-01-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.cc (loongarch_rtx_costs): Fix the |
| cost for (a + b * imm) and (a + (b << imm)) which can be |
| implemented with a single alsl instruction. |
| |
| 2025-01-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.md (alslsi3_extend): Add alsl.wu. |
| |
| 2025-01-17 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/118067 |
| * lra-constraints.cc (invalid_mode_reg_p): New function. |
| (curr_insn_transform): Use it to check mode returned by target |
| secondary_memory_needed_mode. |
| |
| 2025-01-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/118511 |
| * config/s390/s390.cc (print_operand) <case 'p'>: Use |
| output_operand_lossage instead of gcc_checking_assert. |
| (print_operand) <case 'q'>: Likewise. |
| (print_operand) <case 'r'>: Likewise. |
| |
| 2025-01-17 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-sve.md: Rename insns |
| |
| 2025-01-17 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc: Expand iterators. |
| * config/aarch64/aarch64-simd-builtins.def: Use standard names |
| * config/aarch64/aarch64-simd.md: Use standard names, split insn |
| definitions on signedness of operator and type of operands. |
| * config/aarch64/arm_neon.h: Use standard builtin names. |
| * config/aarch64/iterators.md: Add VSDQ_I_QI_HI iterator to |
| simplify splitting of insn for unsigned scalar arithmetic. |
| |
| 2025-01-17 Carl Love <cel@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvuxwdp): |
| Remove built-in definition. |
| |
| 2025-01-17 Carl Love <cel@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtins.def (__builtin_vsx_vperm_8hi, |
| __builtin_vsx_vperm_8hi_uns): Remove built-in definitions. |
| |
| 2025-01-17 Carl Love <cel@linux.ibm.com> |
| |
| * doc/extend.texi: Fix spelling mistake in description of the |
| vec_sel built-in. Add documentation of the 128-bit vec_perm |
| instance. |
| |
| 2025-01-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-c.cc (DEF_BUILTIN): Add ATTRS argument to macro |
| definition. |
| * config/avr/avr.cc: Same. |
| (avr_init_builtins) <attr_const>: New variable that can be used |
| as ATTRS argument in DEF_BUILTIN. |
| * config/avr/builtins.def (DEF_BUILTIN): Add ATTRS parameter |
| to all definitions. |
| |
| 2025-01-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/118329 |
| * config/avr/avr-modes.def: Add INT_N (PSI, 24). |
| * config/avr/avr.cc (avr_init_builtin_int24) |
| <__int24>: Remove definition. |
| <__uint24>: Adjust definition to INT_N interface. |
| |
| 2025-01-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/118522 |
| * match.pd ((FTYPE) N CMP (FTYPE) M): Add convert, as in GENERIC |
| integral types with the same precision and sign might actually not |
| be compatible types. |
| |
| 2025-01-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/92539 |
| * tree-ssa-loop-ivcanon.cc (tree_unroll_loops_completely_1): |
| Also try force-evaluation if ivcanon did not yet run. |
| (canonicalize_loop_induction_variables): |
| When niter was computed constant by force evaluation add a |
| canonical IV if we didn't unroll. |
| * tree-ssa-loop-niter.cc (loop_niter_by_eval): When we |
| don't find a proper PHI try if the exit condition scans |
| over a STRING_CST and simulate that. |
| |
| 2025-01-17 Monk Chiang <monk.chiang@sifive.com> |
| |
| * config/riscv/riscv.cc |
| (is_zicfilp_p): New function. |
| (is_zicfiss_p): New function. |
| * config/riscv/riscv-zicfilp.cc: Update. |
| * config/riscv/riscv.h: Update. |
| * config/riscv/riscv.md: Update. |
| * config/riscv/riscv-c.cc: Add CFI predefine marco. |
| |
| 2025-01-17 Monk Chiang <monk.chiang@sifive.com> |
| |
| * config/riscv/riscv.cc |
| (riscv_file_end): Add .note.gnu.property. |
| |
| 2025-01-17 Monk Chiang <monk.chiang@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc: Add ZICFILP ISA |
| string. |
| * config.gcc: Add riscv-zicfilp.o |
| * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): |
| Insert landing pad instructions. |
| * config/riscv/riscv-protos.h (make_pass_insert_landing_pad): |
| Declare. |
| * config/riscv/riscv-zicfilp.cc: New file. |
| * config/riscv/riscv.cc |
| (riscv_trampoline_init): Add landing pad instructions. |
| (riscv_legitimize_call_address): Likewise. |
| (riscv_output_mi_thunk): Likewise. |
| * config/riscv/riscv.h: Update. |
| * config/riscv/riscv.md: Add landing pad patterns. |
| * config/riscv/riscv.opt (TARGET_ZICFILP): Define. |
| * config/riscv/t-riscv: Add build rule for |
| riscv-zicfilp.o |
| |
| 2025-01-17 Monk Chiang <monk.chiang@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc: Add ZICFISS ISA string. |
| * config/riscv/predicates.md: New predicate x1x5_operand. |
| * config/riscv/riscv.cc |
| (riscv_expand_prologue): Insert shadow stack instructions. |
| (riscv_expand_epilogue): Likewise. |
| (riscv_for_each_saved_reg): Assign t0 or ra register for |
| sspopchk instruction. |
| (need_shadow_stack_push_pop_p): New function. Omit shadow |
| stack operation on leaf function. |
| * config/riscv/riscv.h |
| (need_shadow_stack_push_pop_p): Define. |
| * config/riscv/riscv.md: Add shadow stack patterns. |
| (save_stack_nonlocal): Add shadow stack instructions for setjump. |
| (restore_stack_nonlocal): Add shadow stack instructions for longjump. |
| * config/riscv/riscv.opt (TARGET_ZICFISS): Define. |
| |
| 2025-01-16 Tamar Christina <tamar.christina@arm.com> |
| Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/113257 |
| * config/aarch64/driver-aarch64.cc (get_cpu_from_id, DEFAULT_CPU): New. |
| (host_detect_local_cpu): Use it. |
| |
| 2025-01-16 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/110901 |
| * config/aarch64/aarch64.h (MCPU_TO_MARCH_SPEC): Don't override if |
| march is set. |
| |
| 2025-01-16 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/1180167 |
| * lra-constraints.cc (process_alt_operands): Use operand mode not |
| subreg reg mode. Add and improve debugging prints for updating |
| losers. |
| |
| 2025-01-16 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * omp-general.cc (omp_complete_construct_context): Check |
| "omp declare target" attribute, not "omp declare target block". |
| |
| 2025-01-16 Peter Bergner <bergner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Return |
| const0_rtx when there is an error. |
| |
| 2025-01-16 Peter Bergner <bergner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Use correct |
| array size for the loop limit. |
| * config/rs6000/rs6000-builtins.def: Fix field size for PMASK operand. |
| |
| 2025-01-16 Liao Shihua <shihua@iscas.ac.cn> |
| |
| * config/riscv/vector.md: New attr set. |
| |
| 2025-01-16 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/genrvv-type-indexer.cc (expand_floattype): New func. |
| (main): New type. |
| * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_XFQF_OPS): New def. |
| (vint8mf8_t): Ditto. |
| (vint8mf4_t): Ditto. |
| (vint8mf2_t): Ditto. |
| (vint8m1_t): Ditto. |
| (vint8m2_t): Ditto. |
| * config/riscv/riscv-vector-builtins.cc (DEF_RVV_XFQF_OPS): Ditto. |
| (rvv_arg_type_info::get_xfqf_float_type): Ditto. |
| * config/riscv/riscv-vector-builtins.def (xfqf_vector): Ditto. |
| (xfqf_float): Ditto. |
| * config/riscv/riscv-vector-builtins.h |
| (struct rvv_arg_type_info): New function prototype. |
| * config/riscv/sifive-vector.md: Update iterator. |
| * config/riscv/vector-iterators.md: Ditto. |
| |
| 2025-01-16 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| PR tree-optimization/118487 |
| * tree-ssa-forwprop.cc (recognise_vec_perm_simplify_seq): |
| Ensure that shuffle masks are VECTOR_CSTs. |
| |
| 2025-01-16 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * tree-ssa-forwprop.cc (recognise_vec_perm_simplify_seq): |
| Eliminate redundant calls to to_constant(). |
| |
| 2025-01-16 Richard Biener <rguenther@suse.de> |
| Mikael Morin <mikael@gcc.gnu.org> |
| |
| PR tree-optimization/115494 |
| * tree-ssa-pre.cc (phi_translate_1): Always generate a |
| representative for translated dependent expressions. |
| |
| 2025-01-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/118430 |
| * tree-ssa-propagate.cc (may_propagate_copy): Return false if dest |
| is lhs of an [[gnu::musttail]] call. |
| (substitute_and_fold_dom_walker::before_dom_children): Formatting fix. |
| |
| 2025-01-16 Jakub Jelinek <jakub@redhat.com> |
| Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/118430 |
| * tree-tailcall.cc: Include gimple-range.h, alloc-pool.h, sreal.h, |
| symbol-summary.h, ipa-cp.h and ipa-prop.h. |
| (find_tail_calls): If ass_var is NULL and ret_var is not, check if |
| IPA-VRP has not found singleton return range for it. In that case, |
| don't punt if ret_var is the only value in that range. Adjust the |
| maybe_error_musttail message otherwise to diagnose different value |
| being returned from the caller and callee rather than using return |
| slot. Formatting fixes. |
| |
| 2025-01-16 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/extend.texi (Using Assembly Language with C): Add Asm constexprs |
| to @menu. |
| (Basic Asm): Move @node asm constexprs before Asm Labels, rename to |
| Asm constexprs, change wording so that it is clearer that the constant |
| expression actually must not return a string literal, just some specific |
| container and other wording tweaks. Only talk about top-level for basic |
| asms in this @node, move restrictions on top-level extended asms to ... |
| (Extended Asm): ... here. |
| |
| 2025-01-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/118400 |
| * vec.h (vec<T, va_heap, vl_ptr>::release): Call m_vec->truncate (0) |
| instead of clearing m_vec->m_vecpfx.m_num. |
| |
| 2025-01-16 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/118489 |
| * config/i386/sse.md (VF1_AVX512BW): Fix typo. |
| |
| 2025-01-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/115895 |
| * tree-vect-stmts.cc (get_group_load_store_type): When we |
| might overrun because the group size is not a multiple of the |
| vector size we cannot use loop masking since that does not |
| implement the required load shortening. |
| |
| 2025-01-16 Keith Packard <keithp@keithp.com> |
| |
| * config/lm32/lm32.cc: Add several #includes. |
| (va_list_type): New. |
| (lm32_build_va_list): New function. |
| (lm32_builtin_va_start): Likewise. |
| (lm32_sd_gimplify_va_arg_expr): Likewise. |
| (lm32_gimplify_va_arg_expr): Likewise. |
| |
| 2025-01-16 Keith Packard <keithp@keithp.com> |
| |
| * config/lm32/lm32.cc (setup_incoming_varargs): Adjust the |
| conditionals so that pretend_size is always computed, even |
| if no_rtl is set. |
| |
| 2025-01-16 Keith Packard <keithp@keithp.com> |
| |
| * config/lm32/lm32.cc (lm32_setup_incoming_varargs): Skip last |
| named parameter when preparing to flush registers with unnamed |
| arguments to th stack. |
| |
| 2025-01-16 Keith Packard <keithp@keithp.com> |
| |
| * config/lm32/lm32.cc (lm32_function_arg): Pass unnamed |
| arguments in registers too, just like named arguments. |
| |
| 2025-01-16 Andi Kleen <ak@gcc.gnu.org> |
| |
| * config/i386/x86-tune-sched-core.cc: Fix incorrect comment. |
| |
| 2025-01-16 Eugene Rozenfeld <erozen@microsoft.com> |
| |
| PR gcov-profile/116743 |
| * auto-profile.cc (afdo_annotate_cfg): Fix mismatch between the call graph node count |
| and the entry block count. |
| |
| 2025-01-15 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/102705 |
| * match.pd (`(1 >> X) != 0`): Remove pattern. |
| (`1 >> x`): New pattern. |
| |
| 2025-01-15 Sam James <sam@gentoo.org> |
| |
| * doc/extend.texi: Cleanup trailing whitespace. |
| |
| 2025-01-15 Sam James <sam@gentoo.org> |
| |
| * doc/extend.texi: Add 'a' for grammar fix. |
| |
| 2025-01-15 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/tuning_models/neoverse512tvb.h (tune_flags): Update. |
| |
| 2025-01-15 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNE_BASE): |
| Add AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA. |
| * config/aarch64/tuning_models/ampere1b.h: Remove redundant |
| AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA. |
| * config/aarch64/tuning_models/neoversev2.h: Likewise. |
| |
| 2025-01-15 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_override_options): Add warning. |
| * doc/invoke.texi: Document -mabi=ilp32 as deprecated. |
| |
| 2025-01-15 Cupertino Miranda <cupertino.miranda@oracle.com> |
| |
| * config/bpf/core-builtins.cc (compute_field_expr): Change |
| VAR_DECL outcome in switch case. |
| |
| 2025-01-15 Cupertino Miranda <cupertino.miranda@oracle.com> |
| |
| * config/bpf/core-builtins.cc |
| (make_gimple_core_safe_access_index): Fix in condition. |
| |
| 2025-01-15 Cupertino Miranda <cupertino.miranda@oracle.com> |
| |
| * btfout.cc (get_btf_kind): Remove static from function definition. |
| * config/bpf/btfext-out.cc (bpf_code_reloc_add): Check if CO-RE type |
| is not a const or volatile. |
| * ctfc.h (btf_dtd_kind): Add prototype for function. |
| |
| 2025-01-15 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/118472 |
| * fold-const.cc (operand_compare::operand_equal_p): Fix incorrect |
| replacement. |
| |
| 2025-01-15 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.cc (define_dump_logs): Make reverse lookup in |
| dbg_line_numbers easier by adding comments with start index |
| and cutting number of elements per line to 10. |
| |
| 2025-01-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/116068 |
| * cgraphunit.cc (symbol_table::process_new_functions): Call |
| bitmap_obstack_initialize (NULL); and bitmap_obstack_release (NULL) |
| around processing the functions. |
| |
| 2025-01-15 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/118182 |
| * config/riscv/autovec-opt.md (*widen_reduc_plus_scal_<mode>): Adjust |
| argument for expand_reduction. |
| (*widen_reduc_plus_scal_<mode>): Ditto. |
| (*fold_left_widen_plus_<mode>): Ditto. |
| (*mask_len_fold_left_widen_plus_<mode>): Ditto. |
| (*cond_widen_reduc_plus_scal_<mode>): Ditto. |
| (*cond_len_widen_reduc_plus_scal_<mode>): Ditto. |
| (*cond_widen_reduc_plus_scal_<mode>): Ditto. |
| * config/riscv/autovec.md (reduc_plus_scal_<mode>): Adjust argument for |
| expand_reduction. |
| (reduc_smax_scal_<mode>): Ditto. |
| (reduc_umax_scal_<mode>): Ditto. |
| (reduc_smin_scal_<mode>): Ditto. |
| (reduc_umin_scal_<mode>): Ditto. |
| (reduc_and_scal_<mode>): Ditto. |
| (reduc_ior_scal_<mode>): Ditto. |
| (reduc_xor_scal_<mode>): Ditto. |
| (reduc_plus_scal_<mode>): Ditto. |
| (reduc_smax_scal_<mode>): Ditto. |
| (reduc_smin_scal_<mode>): Ditto. |
| (reduc_fmax_scal_<mode>): Ditto. |
| (reduc_fmin_scal_<mode>): Ditto. |
| (fold_left_plus_<mode>): Ditto. |
| (mask_len_fold_left_plus_<mode>): Ditto. |
| * config/riscv/riscv-v.cc (expand_reduction): Add one more |
| argument for reduction code for vl0-safe. |
| * config/riscv/riscv-protos.h (expand_reduction): Ditto. |
| * config/riscv/vector-iterators.md (unspec): Add _VL0_SAFE variant of |
| reduction. |
| (ANY_REDUC_VL0_SAFE): New. |
| (ANY_WREDUC_VL0_SAFE): Ditto. |
| (ANY_FREDUC_VL0_SAFE): Ditto. |
| (ANY_FREDUC_SUM_VL0_SAFE): Ditto. |
| (ANY_FWREDUC_SUM_VL0_SAFE): Ditto. |
| (reduc_op): Add _VL0_SAFE variant of reduction. |
| (order) Ditto. |
| * config/riscv/vector.md (@pred_<reduc_op><mode>): New. |
| |
| 2025-01-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/115777 |
| * tree-vect-slp.cc (vect_bb_slp_scalar_cost): Do not |
| cost a scalar stmt that needs to be preserved. |
| |
| 2025-01-15 Michal Jires <mjires@suse.cz> |
| |
| PR lto/118238 |
| * lto-wrapper.cc (run_gcc): Remove link() copying. |
| |
| 2025-01-15 Anton Blanchard <antonb@tenstorrent.com> |
| Jeff Law <jlaw@ventanamicro.com> |
| |
| PR target/118170 |
| * config/riscv/generic-ooo.md (generic_ooo_float_div_half): New |
| reservation. |
| |
| 2025-01-15 Richard Sandiford <richard.sandiford@arm.com> |
| Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/109592 |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): |
| Simplify nested shifts with subregs. |
| |
| 2025-01-14 anetczuk <anetczuk@o2.pl> |
| |
| * tree-dump.cc (dequeue_and_dump): Handle OBJ_TYPE_REF. |
| |
| 2025-01-14 Alexandre Oliva <oliva@adacore.com> |
| |
| * gimple-fold.cc (decode_field_reference): Rebustify to set |
| out parms only when returning non-NULL. |
| (fold_truth_andor_for_ifcombine): Bail if |
| decode_field_reference returns NULL. Add complementary assert |
| on r_const's not being set when l_const isn't. |
| |
| 2025-01-14 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * cgraph.cc (symbol_table::create_edge): Don't set |
| calls_declare_variant_alt in the caller. |
| * cgraph.h (struct cgraph_node): Remove declare_variant_alt |
| and calls_declare_variant_alt flags. |
| * cgraphclones.cc (cgraph_node::create_clone): Don't copy |
| calls_declare_variant_alt bit. |
| * gimplify.cc: Remove previously #ifdef-ed out code. |
| * ipa-free-lang-data.cc (free_lang_data_in_decl): Adjust code |
| referencing declare_variant_alt bit. |
| * ipa.cc (symbol_table::remove_unreachable_nodes): Likewise. |
| * lto-cgraph.cc (lto_output_node): Remove references to deleted |
| bits. |
| (output_refs): Adjust code referencing declare_variant_alt bit. |
| (input_overwrite_node): Remove references to deleted bits. |
| (input_refs): Adjust code referencing declare_variant_alt bit. |
| * lto-streamer-out.cc (lto_output): Likewise. |
| * lto-streamer.h (omp_lto_output_declare_variant_alt): Delete. |
| (omp_lto_input_declare_variant_alt): Delete. |
| * omp-expand.cc (expand_omp_target): Use has_omp_variant_constructs |
| bit to trigger pass_omp_device_lower instead of |
| calls_declare_variant_alt. |
| * omp-general.cc (struct omp_declare_variant_entry): Delete. |
| (struct omp_declare_variant_base_entry): Delete. |
| (struct omp_declare_variant_hasher): Delete. |
| (omp_declare_variant_hasher::hash): Delete. |
| (omp_declare_variant_hasher::equal): Delete. |
| (omp_declare_variants): Delete. |
| (omp_declare_variant_alt_hasher): Delete. |
| (omp_declare_variant_alt_hasher::hash): Delete. |
| (omp_declare_variant_alt_hasher::equal): Delete. |
| (omp_declare_variant_alt): Delete. |
| (omp_lto_output_declare_variant_alt): Delete. |
| (omp_lto_input_declare_variant_alt): Delete. |
| (includes): Delete unnecessary include of gt-omp-general.h. |
| * omp-offload.cc (execute_omp_device_lower): Remove references |
| to deleted bit. |
| (pass_omp_device_lower::gate): Likewise. |
| * omp-simd-clone.cc (simd_clone_create): Likewise. |
| * passes.cc (ipa_write_summaries): Likeise. |
| * symtab.cc (symtab_node::get_partitioning_class): Likewise. |
| * tree-inline.cc (expand_call_inline): Likewise. |
| (tree_function_versioning): Likewise. |
| |
| 2025-01-14 Sandra Loosemore <sloosemore@baylibre.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Sandra Loosemore <sandra@codesourcery.com> |
| Marcel Vollweiler <marcel@codesourcery.com> |
| |
| PR middle-end/114596 |
| PR middle-end/112779 |
| PR middle-end/113904 |
| * Makefile.in (GTFILES): Move omp-general.h earlier; required |
| because of moving score_wide_int declaration to that file. |
| * cgraph.h (struct cgraph_node): Add has_omp_variant_constructs flag. |
| * cgraphclones.cc (cgraph_node::create_clone): Propagate |
| has_omp_variant_constructs flag. |
| * gimplify.cc (omp_resolved_variant_calls): New. |
| (expand_late_variant_directive): New. |
| (find_supercontext): New. |
| (gimplify_variant_call_expr): New. |
| (gimplify_call_expr): Adjust parameters to make fallback available. |
| Update processing for "declare variant" substitution. |
| (is_gimple_stmt): Add OMP_METADIRECTIVE. |
| (omp_construct_selector_matches): Ifdef out unused function. |
| (omp_get_construct_context): New. |
| (gimplify_omp_dispatch): Replace call to deleted function |
| omp_resolve_declare_variant with equivalent logic. |
| (expand_omp_metadirective): New. |
| (expand_late_variant_directive): New. |
| (gimplify_omp_metadirective): New. |
| (gimplify_expr): Adjust arguments to gimplify_call_expr. Add |
| cases for OMP_METADIRECTIVE, OMP_NEXT_VARIANT, and |
| OMP_TARGET_DEVICE_MATCHES. |
| (gimplify_function_tree): Initialize/clean up |
| omp_resolved_variant_calls. |
| * gimplify.h (omp_construct_selector_matches): Delete declaration. |
| (omp_get_construct_context): Declare. |
| * lto-cgraph.cc (lto_output_node): Write has_omp_variant_constructs. |
| (input_overwrite_node): Read has_omp_variant_constructs. |
| * omp-builtins.def (BUILT_IN_OMP_GET_NUM_DEVICES): New. |
| * omp-expand.cc (expand_omp_taskreg): Propagate |
| has_omp_variant_constructs. |
| (expand_omp_target): Likewise. |
| * omp-general.cc (omp_maybe_offloaded): Add construct_context |
| parameter; use it instead of querying gimplifier state. Add |
| comments. |
| (omp_context_name_list_prop): Do not test lang_GNU_Fortran in |
| offload compiler, just use the string as-is. |
| (expr_uses_parm_decl): New. |
| (omp_check_context_selector): Add metadirective_p parameter. |
| Remove sorry for target_device selector. Add additional checks |
| specific to metadirective or declare variant. |
| (make_omp_metadirective_variant): New. |
| (omp_construct_traits_match): New. |
| (omp_context_selector_matches): Temporarily ifdef out the previous |
| code, and add a new implementation based on the old one with |
| different parameters, some unnecessary loops removed, and code |
| re-indented. |
| (omp_target_device_matches_on_host): New. |
| (resolve_omp_target_device_matches): New. |
| (omp_construct_simd_compare): Support matching of "simdlen" and |
| "aligned" clauses. |
| (omp_context_selector_set_compare): Make static. Adjust call to |
| omp_construct_simd_compare. |
| (score_wide_int): Move declaration to omp-general.h. |
| (omp_selector_is_dynamic): New. |
| (omp_device_num_check): New. |
| (omp_dynamic_cond): New. |
| (omp_context_compute_score): Ifdef out the old version and |
| re-implement with different parameters. |
| (omp_complete_construct_context): New. |
| (omp_resolve_late_declare_variant): Ifdef out. |
| (omp_declare_variant_remove_hook): Likewise. |
| (omp_resolve_declare_variant): Likewise. |
| (sort_variant): New. |
| (omp_get_dynamic_candidates): New. |
| (omp_declare_variant_candidates): New. |
| (omp_metadirective_candidates): New. |
| (omp_early_resolve_metadirective): New. |
| (omp_resolve_variant_construct): New. |
| * omp-general.h (score_wide_int): Moved here from omp-general.cc. |
| (struct omp_variant): New. |
| (make_omp_metadirective_variant): Declare. |
| (omp_construct_traits_to_codes): Delete declaration. |
| (omp_check_context_selector): Adjust parameters. |
| (omp_context_selector_matches): Likewise. |
| (omp_context_selector_set_compare): Delete declaration. |
| (omp_resolve_declare_variant): Likewise. |
| (omp_declare_variant_candidates): Declare. |
| (omp_metadirective_candidates): Declare. |
| (omp_get_dynamic_candidates): Declare. |
| (omp_early_resolve_metadirective): Declare. |
| (omp_resolve_variant_construct): Declare. |
| (omp_dynamic_cond): Declare. |
| * omp-offload.cc (resolve_omp_variant_cookies): New. |
| (execute_omp_device_lower): Call the above function to resolve |
| variant directives. Remove call to omp_resolve_declare_variant. |
| (pass_omp_device_lower::gate): Check has_omp_variant_construct bit. |
| * omp-simd-clone.cc (simd_clone_create): Propagate |
| has_omp_variant_constructs bit. |
| * tree-inline.cc (expand_call_inline): Likewise. |
| (tree_function_versioning): Likewise. |
| |
| 2025-01-14 Sandra Loosemore <sloosemore@baylibre.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/generic.texi (OpenMP): Document OMP_METADIRECTIVE, |
| OMP_NEXT_VARIANT, and OMP_TARGET_DEVICE_MATCHES. |
| * fold-const.cc (operand_compare::hash_operand): Ignore |
| the new nodes. |
| * gimple-expr.cc (is_gimple_val): Allow OMP_NEXT_VARIANT |
| and OMP_TARGET_DEVICE_MATCHES. |
| * gimple.cc (get_gimple_rhs_num_ops): OMP_NEXT_VARIANT and |
| OMP_TARGET_DEVICE_MATCHES are both GIMPLE_SINGLE_RHS. |
| * tree-cfg.cc (tree_node_can_be_shared): Allow sharing of |
| OMP_NEXT_VARIANT. |
| * tree-inline.cc (remap_gimple_op_r): Ignore subtrees of |
| OMP_NEXT_VARIANT. |
| * tree-pretty-print.cc (dump_generic_node): Handle OMP_METADIRECTIVE, |
| OMP_NEXT_VARIANT, and OMP_TARGET_DEVICE_MATCHES. |
| * tree-ssa-operands.cc (operands_scanner::get_expr_operands): |
| Ignore operands of OMP_NEXT_VARIANT and OMP_TARGET_DEVICE_MATCHES. |
| * tree.def (OMP_METADIRECTIVE): New. |
| (OMP_NEXT_VARIANT): New. |
| (OMP_TARGET_DEVICE_MATCHES): New. |
| * tree.h (OMP_METADIRECTIVE_VARIANTS): New. |
| (OMP_METADIRECTIVE_VARIANT_SELECTOR): New. |
| (OMP_METADIRECTIVE_VARIANT_DIRECTIVE): New. |
| (OMP_METADIRECTIVE_VARIANT_BODY): New. |
| (OMP_NEXT_VARIANT_INDEX): New. |
| (OMP_NEXT_VARIANT_STATE): New. |
| (OMP_TARGET_DEVICE_MATCHES_SELECTOR): New. |
| (OMP_TARGET_DEVICE_MATCHES_PROPERTIES): New. |
| |
| 2025-01-14 Alexandre Oliva <oliva@adacore.com> |
| |
| PR tree-optimization/118456 |
| * gimple-fold.cc (decode_field_reference): Punt if shifting |
| after changing signedness. |
| (fold_truth_andor_for_ifcombine): Check extension bits in |
| constants before clipping. |
| |
| 2025-01-14 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/118154 |
| * config/riscv/riscv-vsetvl.cc (MAX_LMUL): New define. |
| (pre_vsetvl::earliest_fuse_vsetvl_info): Use. |
| (pre_vsetvl::pre_global_vsetvl_info): New predicate with equal |
| ratio. |
| * config/riscv/riscv-vsetvl.def: Use. |
| |
| 2025-01-14 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR middle-end/118140 |
| * gimple-match-exports.cc (maybe_resimplify_conditional_op): Add |
| COND_EXPR when we simplified to a scalar gimple value but still |
| have an else value. |
| |
| 2025-01-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118405 |
| * tree-vect-stmts.cc (vectorizable_load): When we fall back |
| to scalar loads make sure we properly convert to vector(1) T |
| when there was only a single vector element. |
| |
| 2025-01-14 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| * config/riscv/riscv-v.cc (expand_const_vector): Shift in Xmode. |
| |
| 2025-01-14 Jiufu Guo <guojiufu@linux.ibm.com> |
| |
| PR target/116030 |
| * config/rs6000/vsx.md (vsx_stxvd2x4_le_const_<mode>): Add clobber |
| and guard with !altivec_indexed_or_indirect_operand. |
| |
| 2025-01-14 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| PR target/117682 |
| * config/riscv/riscv-v.cc (expand_const_vector): Fall back to |
| merging if either step is negative. |
| |
| 2025-01-13 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/115921 |
| * config/riscv/riscv.md (<optab>_shift_reverse): Remove |
| check for TARGET_ZBA. |
| |
| 2025-01-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/118418 |
| * simplify-rtx.cc (simplify_context::simplify_relational_operation_1): |
| Take STORE_FLAG_VALUE into account when handling signed comparisons |
| of comparison results. |
| |
| 2025-01-13 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/115921 |
| * config/riscv/riscv.md (<optab>_shift_reverse): Only check |
| popcount_hwi if !TARGET_ZBS. |
| |
| 2025-01-13 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv-vsetvl.cc (demand_system::use_max_sew): Also |
| set the ratio for PREV. |
| |
| 2025-01-13 Vineet Gupta <vineetg@rivosinc.com> |
| |
| * config/riscv/riscv.cc (riscv_register_move_cost): Remove buggy |
| check. |
| |
| 2025-01-13 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_build_integer_1): Change |
| 1UL/1ULL to HOST_WIDE_INT_1U. |
| |
| 2025-01-13 Jeff Law <jlaw@ventanamicro.com> |
| |
| PR rtl-optimization/107455 |
| * postreload.cc (reload_cse_regs_1): Take advantage of conditional |
| equivalences. |
| |
| 2025-01-13 Alexandre Oliva <oliva@adacore.com> |
| |
| PR tree-optimization/118409 |
| * gimple-fold.cc (fold_truth_andor_for_ifcombine): Apply the |
| signbit mask to the right-hand XOR operand too. |
| |
| 2025-01-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/115910 |
| * expr.cc (expand_expr_divmod): Prefix the TDF_DETAILS note with |
| ";; " and add a space before (needed tie breaker). Formatting fixes. |
| |
| 2025-01-13 Richard Biener <rguenther@suse.de> |
| Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| PR tree-optimization/117119 |
| * tree-data-ref.cc (initialize_matrix_A): Check whether |
| an INTEGER_CST fits in HWI, otherwise return chrec_dont_know. |
| |
| 2025-01-13 Michal Jires <mjires@suse.cz> |
| |
| PR lto/118181 |
| * lto-ltrans-cache.cc (ltrans_file_cache::create_item): |
| Pass checksum by reference. |
| * lto-ltrans-cache.h: Likewise. |
| |
| 2025-01-13 Michal Jires <mjires@suse.cz> |
| |
| * lockfile.cc (LOCKFILE_USE_FCNTL): New. |
| (lockfile::lock_write): Use LOCKFILE_USE_FCNTL. |
| (lockfile::try_lock_write): Use LOCKFILE_USE_FCNTL. |
| (lockfile::lock_read): Use LOCKFILE_USE_FCNTL. |
| (lockfile::unlock): Use LOCKFILE_USE_FCNTL. |
| (lockfile::lockfile_supported): Use LOCKFILE_USE_FCNTL. |
| |
| 2025-01-13 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): |
| Refactor to avoid redundant TARGET_AVX512BW in many places. |
| |
| 2025-01-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/117997 |
| PR middle-end/118415 |
| * expr.cc (assemble_crc_table): Make static, remove id argument, |
| use output_constant_def. Emit note if -fdump-rtl-expand-details |
| about which table has been emitted. |
| (generate_crc_table): Make static, adjust assemble_crc_table |
| caller, call it always. |
| (calculate_table_based_CRC): Make static. |
| * internal-fn.cc (expand_crc_optab_fn): Emit note if |
| -fdump-rtl-expand-details about using optab for crc. Formatting fix. |
| |
| 2025-01-12 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| * config/alpha/alpha.cc (alpha_expand_block_move): Use a HImode |
| subreg of a DImode register to hold data from an aligned HImode |
| load. |
| |
| 2025-01-12 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| * config/alpha/alpha.cc (alpha_expand_block_move): Merge loaded |
| data from pairs of SImode registers into single DImode registers |
| if to be used with unaligned stores. |
| |
| 2025-01-12 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| * config/alpha/alpha.cc (alpha_option_override): Ignore CPU |
| flags corresponding to features the enabling or disabling of |
| which has been requested with an individual feature option. |
| |
| 2025-01-12 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| PR middle-end/64242 |
| * config/alpha/alpha.md (`builtin_longjmp'): Restore frame |
| pointer last. Add frame clobber and schedule blockage. |
| |
| 2025-01-12 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| * config/alpha/alpha.md (builtin_longjmp): Add memory clobbers. |
| |
| 2025-01-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_analyze_slp): Release saved_stmts |
| vector. |
| (vect_build_slp_tree_2): Release new_oprnds_info when not |
| used. |
| (vect_analyze_slp): Release root_stmts when gcond SLP |
| build fails. |
| |
| 2025-01-12 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/118411 |
| * final.cc (get_attr_length_1): Handle asm for CALL_INSN |
| and JUMP_INSNs. |
| |
| 2025-01-11 mengqinggang <mengqinggang@loongson.cn> |
| |
| * config/loongarch/lasx.md: Use new loongarch_output_move. |
| * config/loongarch/loongarch-protos.h (loongarch_output_move): |
| Change parameters from (rtx, rtx) to (rtx *). |
| * config/loongarch/loongarch.cc (loongarch_output_move): |
| Generate final immediate for lu12i.w and lu52i.d. |
| * config/loongarch/loongarch.md: |
| Generate final immediate for lu32i.d and lu52i.d. |
| * config/loongarch/lsx.md: Use new loongarch_output_move. |
| |
| 2025-01-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/88575 |
| * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Query |
| relation between op0 and op1 and utilize it. |
| (simplify_using_ranges::simplify): Do not eliminate float checks. |
| |
| 2025-01-10 Alex Coplan <alex.coplan@arm.com> |
| |
| PR tree-optimization/118211 |
| PR tree-optimization/116126 |
| * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost): |
| Don't skip over gconds. |
| |
| 2025-01-10 Alex Coplan <alex.coplan@arm.com> |
| |
| PR tree-optimization/118211 |
| PR tree-optimization/116126 |
| * tree-vect-loop-manip.cc (vect_do_peeling): Adjust skip_vector |
| condition to only omit the edge if we're versioning for |
| alignment. |
| |
| 2025-01-10 Tamar Christina <Tamar.Christina@arm.com> |
| Alex Coplan <alex.coplan@arm.com> |
| |
| PR tree-optimization/118211 |
| PR tree-optimization/116126 |
| * tree-vect-loop-manip.cc (vect_do_peeling): Update immediate |
| dominators of nodes that were dominated by the prolog skip block |
| after inserting vector skip edge. Initialize prolog variable to |
| NULL to avoid bogus -Wmaybe-uninitialized during bootstrap. |
| |
| 2025-01-10 Alex Coplan <alex.coplan@arm.com> |
| |
| PR tree-optimization/118211 |
| PR tree-optimization/116126 |
| * tree-vect-loop-manip.cc (vect_do_peeling): Avoid emitting an |
| epilogue guard for inverted early-exit loops. |
| |
| 2025-01-10 Alex Coplan <alex.coplan@arm.com> |
| Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/118211 |
| PR tree-optimization/116126 |
| * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): |
| Set need_peeling_for_alignment flag on read DRs instead of |
| failing vectorization. Punt on gathers. |
| (dr_misalignment): Handle non-constant target alignments. |
| (vect_compute_data_ref_alignment): If need_peeling_for_alignment |
| flag is set on the DR, then override the target alignment chosen |
| by the preferred_vector_alignment hook to choose a safe |
| alignment. |
| (vect_supportable_dr_alignment): Override |
| support_vector_misalignment hook if need_peeling_for_alignment |
| is set on the DR: in this case we must return |
| dr_unaligned_unsupported in order to force peeling. |
| * tree-vect-loop-manip.cc (vect_do_peeling): Allow prolog |
| peeling by a compile-time non-constant amount. |
| * tree-vectorizer.h (dr_vec_info): Add new flag |
| need_peeling_for_alignment. |
| |
| 2025-01-10 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): Fix cortex-x4 parts |
| num. |
| |
| 2025-01-10 Richard Biener <rguenther@suse.de> |
| |
| * df-core.cc (rest_of_handle_df_finish): Release dflow for |
| problems without free function (like LR). |
| * gimple-crc-optimization.cc (crc_optimization::loop_may_calculate_crc): |
| Release loop_bbs on all exits. |
| * tree-vectorizer.h (supportable_indirect_convert_operation): Change. |
| * tree-vect-generic.cc (expand_vector_conversion): Adjust. |
| * tree-vect-stmts.cc (vectorizable_conversion): Use auto_vec for |
| converts. |
| (supportable_indirect_convert_operation): Get a reference to |
| the output vector of converts. |
| |
| 2025-01-10 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/118332 |
| * config/arm/arm-mve-builtins.cc (wrap_type_in_struct): Delete. |
| (register_type_decl): Delete. |
| (register_builtin_tuple_types): Use |
| lang_hooks.types.simulate_record_decl. |
| |
| 2025-01-10 Richard Biener <rguenther@suse.de> |
| |
| * gcse.cc (pass_hardreg_pre::gate): Wrap possibly unused |
| fun argument. |
| |
| 2025-01-10 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/117467 |
| PR rtl-optimization/117934 |
| * ext-dce.cc (ext_dce_execute): Do nothing if a memory |
| allocation estimate exceeds what is allowed by |
| --param max-gcse-memory. |
| |
| 2025-01-10 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-protos.h (s390_emit_compare): Add mode |
| parameter for the resulting RTX. |
| * config/s390/s390.cc (s390_emit_compare): Dito. |
| (s390_emit_compare_and_swap): Change. |
| (s390_expand_vec_strlen): Change. |
| (s390_expand_cs_hqi): Change. |
| (s390_expand_split_stack_prologue): Change. |
| * config/s390/s390.md (*add<mode>3_carry1_cc): Renamed to ... |
| (add<mode>3_carry1_cc): this and in order to use the |
| corresponding gen function, encode CC mode into pattern. |
| (*sub<mode>3_borrow_cc): Renamed to ... |
| (sub<mode>3_borrow_cc): this and in order to use the |
| corresponding gen function, encode CC mode into pattern. |
| (*add<mode>3_alc_carry1_cc): Renamed to ... |
| (add<mode>3_alc_carry1_cc): this and in order to use the |
| corresponding gen function, encode CC mode into pattern. |
| (sub<mode>3_slb_borrow1_cc): New. |
| (uaddc<mode>5): New. |
| (usubc<mode>5): New. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * doc/passes.texi: Document hardreg PRE pass. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64.h (HARDREG_PRE_REGNOS): New macro. |
| * gcse.cc (doing_hardreg_pre_p): New global variable. |
| (do_load_motion): New boolean check. |
| (current_hardreg_regno): New global variable. |
| (compute_local_properties): Unset transp for hardreg clobbers. |
| (prune_hardreg_uses): New function. |
| (want_to_gcse_p): Use different checks for hardreg PRE. |
| (oprs_unchanged_p): Disable load motion for hardreg PRE pass. |
| (hash_scan_set): For hardreg PRE, skip non-hardreg sets and |
| check for hardreg clobbers. |
| (record_last_mem_set_info): Skip for hardreg PRE. |
| (compute_pre_data): Prune hardreg uses from transp bitmap. |
| (pre_expr_reaches_here_p_work): Add sentence to comment. |
| (insert_insn_start_basic_block): New functions. |
| (pre_edge_insert): Don't add hardreg sets to predecessor block. |
| (pre_delete): Use hardreg for the reaching reg. |
| (reset_hardreg_debug_uses): New function. |
| (pre_gcse): For hardreg PRE, reset debug uses and don't insert |
| copies. |
| (one_pre_gcse_pass): Disable load motion for hardreg PRE. |
| (execute_hardreg_pre): New. |
| (class pass_hardreg_pre): New. |
| (pass_hardreg_pre::gate): New. |
| (make_pass_hardreg_pre): New. |
| * passes.def (pass_hardreg_pre): New pass. |
| * tree-pass.h (make_pass_hardreg_pre): New. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * multiple_target.cc |
| (redirect_to_specific_clone): Assert that "target" attribute is |
| used for FMV before checking it. |
| (ipa_target_clone): Skip redirect_to_specific_clone on some |
| targets. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * doc/invoke.texi: Add new AArch64 flags. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (V8_7A): Add XS. |
| * config/aarch64/aarch64-option-extensions.def (XS): New flag. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (V8_7A): Add WFXT. |
| * config/aarch64/aarch64-option-extensions.def (WFXT): New flag. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (V8_4A): Add RCPC2. |
| * config/aarch64/aarch64-option-extensions.def |
| (RCPC2): New flag. |
| (RCPC3): Add RCPC2 dependency. |
| * config/aarch64/aarch64.h (TARGET_RCPC2): Use new flag. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (V8_5A): Add FLAGM2. |
| * config/aarch64/aarch64-option-extensions.def (FLAGM2): New flag. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (V8_5A): Add FRINTTS |
| * config/aarch64/aarch64-option-extensions.def (FRINTTS): New flag. |
| * config/aarch64/aarch64.h (TARGET_FRINT): Use new flag. |
| * config/aarch64/arm_acle.h: Use new flag for frintts intrinsics. |
| * config/aarch64/arm_neon.h: Ditto. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (V8_3A): Add JSCVT. |
| * config/aarch64/aarch64-option-extensions.def (JSCVT): New flag. |
| * config/aarch64/aarch64.h (TARGET_JSCVT): Use new flag. |
| * config/aarch64/arm_acle.h: Use new flag for jscvt intrinsics. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (V8_3A): Add FCMA. |
| * config/aarch64/aarch64-option-extensions.def (FCMA): New flag. |
| (SVE): Add FCMA dependency. |
| * config/aarch64/aarch64.h (TARGET_COMPLEX): Use new flag. |
| * config/aarch64/arm_neon.h: Use new flag for fcma intrinsics. |
| |
| 2025-01-10 Andrew Carlotti <andrew.carlotti@arm.com> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_expand_epilogue): Use TARGET_PAUTH. |
| * config/aarch64/aarch64.md: Update comment. |
| |
| 2025-01-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/117186 |
| * rtl.h (simplify_context::simplify_logical_relational_operation): Add |
| an invert0_p parameter. |
| * simplify-rtx.cc (unsigned_comparison_to_mask): New function. |
| (mask_to_unsigned_comparison): Likewise. |
| (comparison_code_valid_for_mode): Delete. |
| (simplify_context::simplify_logical_relational_operation): Add |
| an invert0_p parameter. Handle AND and XOR. Handle unsigned |
| comparisons. Handle always-false results. Ignore the low bit |
| of the mask if the operands are always ordered and remove the |
| then-redundant check of comparison_code_valid_for_mode. Check |
| for side-effects in the operands before simplifying them away. |
| (simplify_context::simplify_binary_operation_1): Remove |
| simplification of (compare (gt ...) (lt ...)) and instead... |
| (simplify_context::simplify_relational_operation_1): ...handle |
| comparisons of comparisons here. |
| (test_comparisons): New function. |
| (test_scalar_ops): Call it. |
| |
| 2025-01-10 Alexandre Oliva <oliva@adacore.com> |
| |
| * gimple-fold.cc (decode_field_reference): Drop misuses of |
| uniform_integer_cst_p. |
| (fold_truth_andor_for_ifcombine): Likewise. |
| |
| 2025-01-10 Alexandre Oliva <oliva@adacore.com> |
| |
| PR tree-optimization/118344 |
| * gimple-fold.cc (fold_truth_andor_for_ifcombine): Fix typo in |
| rr_and_mask's type adjustment test. |
| |
| 2025-01-10 Alexandre Oliva <oliva@adacore.com> |
| |
| * gimple-fold.cc (decode_field_reference): Add xor_pand_mask. |
| Propagate pand_mask to the right-hand xor operand. Don't |
| require the right-hand xor operand to be a constant. |
| (fold_truth_andor_for_ifcombine): Pass right-hand mask when |
| appropriate. |
| |
| 2025-01-10 Alexandre Oliva <oliva@adacore.com> |
| |
| PR tree-optimization/118206 |
| * gimple-fold.cc (decode_field_reference): Account for upper |
| bits dropped by narrowing conversions whether before or after |
| a right shift. |
| (fold_truth_andor_for_ifcombine): Fold masks, compares, and |
| combined results. |
| |
| 2025-01-10 Alexandre Oliva <oliva@adacore.com> |
| |
| * gimple-fold.cc (fold_truth_andor_for_ifcombine): Limit |
| boundary choice by word size as well. Try aligned double-word |
| loads as a last resort. |
| |
| 2025-01-10 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/118138 |
| * ipa-cp.cc (ipacp_value_safe_for_type): Return the appropriate |
| type instead of a bool, accept NULL_TREE VALUEs. |
| (propagate_vals_across_arith_jfunc): Use the new returned value of |
| ipacp_value_safe_for_type. |
| (propagate_vals_across_ancestor): Likewise. |
| (propagate_scalar_across_jump_function): Likewise. |
| |
| 2025-01-10 chenxiaolong <chenxiaolong@loongson.cn> |
| Deng Jianbo <dengjianbo@loongson.cn>. |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_builtin_vectorization_cost): Modify the |
| construction cost of the vec_construct vector. |
| |
| 2025-01-09 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/118188 |
| * config/aarch64/aarch64.cc (aarch64_vector_costs::count_ops): Adjust |
| throughput of emulated gather and scatters. |
| |
| 2025-01-09 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/118017 |
| * lra-constraints.cc (inherit_reload_reg): Check reg class on uniformity. |
| |
| 2025-01-09 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR target/118362 |
| * config/s390/s390.cc (s390_constant_via_vgbm_p): Allow at most |
| 16-byte vectors. |
| |
| 2025-01-09 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/118131 |
| * config/arm/arm.h (VALID_MVE_STRUCT_MODE): Accept TI, OI and XI |
| modes again. |
| |
| 2025-01-09 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/65181 |
| * config/nvptx/nvptx.cc (nvptx_get_drap_rtx): Handle |
| '!TARGET_SOFT_STACK'. |
| * config/nvptx/nvptx.md (define_c_enum "unspec"): Add |
| 'UNSPEC_STACKSAVE', 'UNSPEC_STACKRESTORE'. |
| (define_expand "allocate_stack", define_expand "save_stack_block") |
| (define_expand "save_stack_block"): Handle '!TARGET_SOFT_STACK', |
| PTX 'alloca'. |
| (define_insn "@nvptx_alloca_<mode>") |
| (define_insn "@nvptx_stacksave_<mode>") |
| (define_insn "@nvptx_stackrestore_<mode>"): New. |
| * doc/invoke.texi (Nvidia PTX Options): Update '-msoft-stack', |
| '-mno-soft-stack'. |
| * doc/sourcebuild.texi (nvptx-specific attributes): Document |
| 'nvptx_runtime_alloca_ptx'. |
| (Add Options): Document 'nvptx_alloca_ptx'. |
| |
| 2025-01-09 Richard Biener <rguenther@suse.de> |
| |
| * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): When |
| copying to the header edge first redirect the entry to the |
| new loop and then the exit to the old to avoid PHI node |
| re-allocation. |
| |
| 2025-01-09 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR rtl-optimization/118266 |
| * ree.cc (add_removable_extension): Skip extension on fixed |
| register. |
| |
| 2025-01-09 Jakub Jelinek <jakub@redhat.com> |
| Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/117927 |
| * tree-pass.h (PROP_last_full_fold): Define. |
| * passes.def: Add last= parameters to pass_forwprop. |
| * tree-ssa-forwprop.cc (pass_forwprop): Add last_p non-static |
| data member and initialize it in the ctor. |
| (pass_forwprop::set_pass_param): New method. |
| (pass_forwprop::execute): Set PROP_last_full_fold in curr_properties |
| at the start if last_p. |
| * match.pd (a rrotate (32-b) -> a lrotate b): Only optimize either |
| if @2 is known not to be equal to prec or if during/after last |
| forwprop the subtraction has single use and prec is power of two; in |
| that case transform it into orotate by masked count. |
| |
| 2025-01-09 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/cpuinfo.h (get_intel_cpu): Remove 0x00. |
| |
| 2025-01-09 xuli <xuli1@eswincomputing.com> |
| |
| * config/riscv/riscv-vector-builtins.cc (function_builder::add_unique_function): |
| Only register overloaded intrinsic for g++. |
| Only insert non_overloaded_function_table for gcc. |
| (function_builder::add_overloaded_function): Only register overloaded intrinsic for gcc. |
| (handle_pragma_vector): Only initialize non_overloaded_function_table for gcc. |
| |
| 2025-01-09 Tobias Burnus <tburnus@baylibre.com> |
| |
| * builtin-types.def (BT_FN_PTRMODE_PTR_INT_PTR): Add. |
| * gimplify.cc (gimplify_call_expr): Add error for multiple |
| list items to the OpenMP interop clause if no device clause; |
| continue instead of restarting after append_args handling. |
| (gimplify_omp_dispatch): Extract device number from the |
| single interop-clause list item. |
| * omp-builtins.def (BUILT_IN_OMP_GET_INTEROP_INT): Add. |
| |
| 2025-01-08 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/65181 |
| * config/nvptx/nvptx.cc (default_ptx_version_option): For |
| '-march=sm_52' and higher, default at least to '-mptx=7.3'. |
| * doc/invoke.texi (Nvidia PTX Options): Update '-mptx=[...]'. |
| |
| 2025-01-08 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx-opts.h (enum ptx_version): Add |
| 'PTX_VERSION_7_3'. |
| * config/nvptx/nvptx.cc (ptx_version_to_string) |
| (ptx_version_to_number): Adjust. |
| * config/nvptx/nvptx.h (TARGET_PTX_7_3): New. |
| * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue' |
| '7.3' for 'PTX_VERSION_7_3'. |
| * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=7.3'. |
| |
| 2025-01-08 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords): Document |
| 'nvptx_softstack'. |
| |
| 2025-01-08 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/65181 |
| * config/nvptx/nvptx.h (STACK_SAVEAREA_MODE): '#define'. |
| * config/nvptx/nvptx.md [!TARGET_SOFT_STACK] |
| (save_stack_function): 'define_expand'. |
| (restore_stack_function): Handle '!TARGET_SOFT_STACK'. |
| |
| 2025-01-08 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/65181 |
| * config/nvptx/nvptx.md [!TARGET_SOFT_STACK] (save_stack_block): |
| 'define_expand'. |
| |
| 2025-01-08 Thiago Jung Bauermann <thiago.bauermann@linaro.org> |
| |
| * configure.ac: Fix check for HAVE_GAS_SHF_MERGE on Arm targets. |
| * configure: Regenerate. |
| |
| 2025-01-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/107102 |
| * config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall): Only |
| reject calls with different PCSes if the callee clobbers register |
| state that the caller must preserve. |
| |
| 2025-01-08 Tobias Burnus <tburnus@baylibre.com> |
| |
| * gimplify.cc (gimplify_call_expr): Disable variant function's |
| append_args in 'omp dispatch' when invoking the variant directly |
| and not through the base function. |
| |
| 2025-01-08 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * doc/invoke.texi (Nvidia PTX Options): Update '-march-map=sm_50'. |
| |
| 2025-01-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/117979 |
| * tree-ssa-dce.cc (make_forwarders_with_degenerate_phis): |
| Properly update the irreducible region state. |
| |
| 2025-01-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.cc (break_out_comdat_types): Copy over |
| DW_AT_language_{name,version} if present. |
| (output_skeleton_debug_sections): Remove also |
| DW_AT_language_{name,version}. |
| (gen_compile_unit_die): For C17, C23, C2Y, C++17, C++20, C++23 |
| and C++26 emit for -gdwarf-5 -gno-strict-dwarf also |
| DW_AT_language_{name,version} attributes. |
| |
| 2025-01-08 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/118325 |
| * tree-nested.cc (convert_nl_goto_reference): Assign proper |
| context to generated artificial label. |
| |
| 2025-01-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118269 |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): |
| Use the correct stmt for the REDUC_GROUP_FIRST_ELEMENT lookup. |
| |
| 2025-01-08 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/118332 |
| * config/arm/arm-mve-builtins.cc (wrap_type_in_struct): Use 'val' |
| instead of '__val'. |
| |
| 2025-01-08 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/amxavx512intrin.h |
| (_tile_cvtrowps2pbf16h_internal): Rename to... |
| (_tile_cvtrowps2bf16h_internal): ...this. |
| (_tile_cvtrowps2pbf16hi_internal): Rename to... |
| (_tile_cvtrowps2bf16hi_internal): ...this. |
| (_tile_cvtrowps2pbf16l_internal): Rename to... |
| (_tile_cvtrowps2bf16l_internal): ...this. |
| (_tile_cvtrowps2pbf16li_internal): Rename to... |
| (_tile_cvtrowps2bf16li_internal): ...this. |
| (_tile_cvtrowps2pbf16h): Rename to... |
| (_tile_cvtrowps2bf16h): ...this. |
| (_tile_cvtrowps2pbf16hi): Rename to... |
| (_tile_cvtrowps2bf16hi): ...this. |
| (_tile_cvtrowps2pbf16l): Rename to... |
| (_tile_cvtrowps2bf16l): ...this. |
| (_tile_cvtrowps2pbf16li): Rename to... |
| (_tile_cvtrowps2bf16li): ...this. |
| |
| 2025-01-08 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386.cc (ix86_noce_max_ifcvt_seq_cost): Adjust |
| cost with ix86_tune_cost->br_mispredict_scale. |
| * config/i386/i386.h (processor_costs): Add br_mispredict_scale. |
| * config/i386/x86-tune-costs.h: Add new br_mispredict_scale to |
| all processor_costs, in which icelake_cost/alderlake_cost |
| with value COSTS_N_INSNS (2) + 3 and other processor with value |
| COSTS_N_INSNS (2). |
| |
| 2025-01-07 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Update comments for sat_* pattern. |
| |
| 2025-01-07 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Extract saturated value match for signed SAT_*. |
| |
| 2025-01-07 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Refactor sorts of signed SAT_TRUNC match patterns |
| |
| 2025-01-07 Pan Li <pan2.li@intel.com> |
| |
| * match.pd: Refactor sorts of signed SAT_SUB match patterns. |
| |
| 2025-01-07 Vineet Gupta <vineetg@rivosinc.com> |
| Pan Li <pan2.li@intel.com> |
| |
| PR target/117722 |
| * config/riscv/autovec.md: Add uabd expander. |
| |
| 2025-01-07 Tsung Chun Lin <tclin914@gmail.com> |
| |
| * expr.cc (widest_fixed_size_mode_for_size): Prefer scalar modes |
| over vector modes in more cases. |
| |
| 2025-01-07 Andreas Schwab <schwab@suse.de> |
| |
| PR target/118137 |
| * config/riscv/sync.md ("lrsc_atomic_exchange<mode>"): Apply mask |
| to shifted value. |
| |
| 2025-01-07 Jeff Law <jlaw@ventanamicro.com> |
| |
| * config/ft32/ft32.md (casesi expander): Force operands[2] into |
| a register if it's not a suitable rimm operand. |
| |
| 2025-01-07 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc: Switch off fschedule_insns. |
| |
| 2025-01-07 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.md (movhf_aarch64): Use aarch64_valid_fp_move. |
| (movsf_aarch64): Likewise. |
| (movdf_aarch64): Likewise. |
| * config/aarch64/aarch64.cc (aarch64_valid_fp_move): New function. |
| * config/aarch64/aarch64-protos.h (aarch64_valid_fp_move): Likewise. |
| |
| 2025-01-07 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * gimplify.cc (gimplify_call_expr): Create variable |
| variant_substituted_p to control whether adjust_args applies. |
| |
| 2025-01-07 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/114932 |
| * tree-ssa-loop-ivopts.cc (alloc_iv): Perform affine unsigned fold. |
| |
| 2025-01-07 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR tree-optimization/105769 |
| * cfgexpand.cc (vars_ssa_cache::operator()): For constructors |
| walk over the elements. |
| |
| 2025-01-07 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR middle-end/117426 |
| PR middle-end/111422 |
| * cfgexpand.cc (struct vars_ssa_cache): New class. |
| (vars_ssa_cache::vars_ssa_cache): New constructor. |
| (vars_ssa_cache::~vars_ssa_cache): New deconstructor. |
| (vars_ssa_cache::create): New method. |
| (vars_ssa_cache::exists): New method. |
| (vars_ssa_cache::add_one): New method. |
| (vars_ssa_cache::update): New method. |
| (vars_ssa_cache::dump): New method. |
| (add_scope_conflicts_2): Factor mostly out to |
| vars_ssa_cache::operator(). New cache argument. |
| Walk the bitmap cache for the stack variables addresses. |
| (vars_ssa_cache::operator()): New method factored out from |
| add_scope_conflicts_2. Rewrite to be a full walk of all operands |
| and use a worklist. |
| (add_scope_conflicts_1): Add cache new argument for the addr cache. |
| Just call add_scope_conflicts_2 for the phi result instead of calling |
| for the uses and don't call walk_stmt_load_store_addr_ops for phis. |
| Update call to add_scope_conflicts_2 to add cache argument. |
| (add_scope_conflicts): Add cache argument and update calls to |
| add_scope_conflicts_1. |
| |
| 2025-01-07 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| * cfgexpand.cc (INVALID_STACK_INDEX): New defined. |
| (decl_stack_index): New function. |
| (visit_op): Use decl_stack_index. |
| (visit_conflict): Likewise. |
| (add_scope_conflicts_1): Likewise. |
| |
| 2025-01-07 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/118298 |
| * loop-unroll.cc (decide_unroll_constant_iterations): Honor |
| loop->unroll even if the loop is too big for heuristics. |
| |
| 2025-01-07 Deng Jianbo <dengjianbo@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_output_move): |
| Optimize instructions for initializing fp regsiter to zero. |
| |
| 2025-01-07 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/118010 |
| * doc/gm2.texi (Compiler options): New option |
| -fm2-file-offset-bits=. |
| |
| 2025-01-07 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| * tree-vect-stmts.cc (vectorizable_store): Extend the use of |
| n_adjacent_stores to also cover vec_to_scalar operations. |
| * config/aarch64/aarch64-tuning-flags.def: Remove |
| use_new_vector_costs as tuning option. |
| * config/aarch64/aarch64.cc (aarch64_use_new_vector_costs_p): |
| Remove. |
| (aarch64_vector_costs::add_stmt_cost): Remove use of |
| aarch64_use_new_vector_costs_p. |
| (aarch64_vector_costs::finish_cost): Remove use of |
| aarch64_use_new_vector_costs_p. |
| * config/aarch64/tuning_models/cortexx925.h: Remove |
| AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS. |
| * config/aarch64/tuning_models/fujitsu_monaka.h: Likewise. |
| * config/aarch64/tuning_models/generic_armv8_a.h: Likewise. |
| * config/aarch64/tuning_models/generic_armv9_a.h: Likewise. |
| * config/aarch64/tuning_models/neoverse512tvb.h: Likewise. |
| * config/aarch64/tuning_models/neoversen2.h: Likewise. |
| * config/aarch64/tuning_models/neoversen3.h: Likewise. |
| * config/aarch64/tuning_models/neoversev1.h: Likewise. |
| * config/aarch64/tuning_models/neoversev2.h: Likewise. |
| * config/aarch64/tuning_models/neoversev3.h: Likewise. |
| * config/aarch64/tuning_models/neoversev3ae.h: Likewise. |
| |
| 2025-01-06 Alexandre Oliva <oliva@adacore.com> |
| |
| PR middle-end/118006 |
| * cfgexpand.cc (expand_gimple_basic_block): Do not emit |
| pending stack adjustments after a barrier. |
| |
| 2025-01-06 Akram Ahmad <Akram.Ahmad@arm.com> |
| |
| * config/aarch64/aarch64-simd.md: (*aarch64_trunc_concat) |
| new insn definition. |
| |
| 2025-01-06 Fangrui Song <maskray@gcc.gnu.org> |
| |
| PR gcov-profile/96092 |
| * coverage.cc (coverage_init): Remap getpwd(). |
| |
| 2025-01-06 Jennifer Schmitz <jschmitz@nvidia.com> |
| |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svmul_impl::fold): Wrap code for folding to svneg in lambda |
| function and pass to gimple_folder::convert_and_fold to enable |
| the transform for unsigned types. |
| * config/aarch64/aarch64-sve-builtins.cc |
| (gimple_folder::convert_and_fold): New function that converts |
| operands to target type before calling callback function, adding the |
| necessary conversion statements. |
| (gimple_folder::redirect_call): Set fntype of redirected call. |
| (get_vector_type): Move from here to aarch64-sve-builtins.h. |
| * config/aarch64/aarch64-sve-builtins.h |
| (gimple_folder::convert_and_fold): Declare function. |
| (get_vector_type): Move here as inline function. |
| |
| 2025-01-06 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.cc (ipcp_print_widest_int): New function. |
| (ipcp_store_vr_results): Use it. |
| (ipcp_bits_lattice::print): Likewise. Fix formatting. |
| |
| 2025-01-06 Mark Wielaard <mark@klomp.org> |
| |
| PR tree-optimization/118032 |
| * tree-switch-conversion.cc (jump_table_cluster::find_jump_tables): |
| Remove param_switch_lower_slow_alg_max_cases check. |
| |
| 2025-01-06 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/96342 |
| PR target/118272 |
| * config/aarch64/aarch64-sve.md (vec_init<mode><Vquad>, |
| vec_initvnx16qivnx2qi): New. |
| * config/aarch64/aarch64.cc (aarch64_sve_expand_vector_init_subvector): |
| Rewrite to support any arbitrary combinations. |
| * config/aarch64/iterators.md (SVE_NO2E): Update to use SVE_NO4E |
| (SVE_NO2E, Vquad): New. |
| |
| 2025-01-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/118224 |
| * tree-ssa-dce.cc (is_removable_allocation_p): Don't return true |
| for allocations with constant size argument larger than PTRDIFF_MAX |
| or for calloc with one of the arguments constant larger than |
| PTRDIFF_MAX or their product known constant above PTRDIFF_MAX. |
| Fix comment typos, furhter -> further and then -> than. |
| * lto-section-in.cc (lto_free_function_in_decl_state_for_node): |
| Fix comment typo, furhter -> further. |
| |
| 2025-01-04 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/mmix/mmix.cc (mmix_asm_output_labelref): Replace '.' |
| with '::'. |
| * config/mmix/mmix.h (ASM_PN_FORMAT): Define to actual default. |
| |
| 2025-01-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/117938 |
| * rtlanal.cc (rtx_properties::try_to_add_dest): Treat writes |
| to the stack pointer as also writing to memory. |
| |
| 2025-01-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/118275 |
| * varasm.cc (array_size_for_constructor): Use build_int_cst |
| with TREE_TYPE (index) as first argument, instead of bitsize_int. |
| |
| 2025-01-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-forwprop.cc (check_ctz_array): Use tree_fits_shwi_p instead |
| of just TREE_CODE tests for INTEGER_CST. |
| |
| 2025-01-03 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config.gcc: install a wrapping stdint.h in bpf targets. |
| |
| 2025-01-02 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * gimplify.cc (gimplify_call_expr): Fix handling of need_device_ptr for |
| type(c_ptr). Fix handling of nested function calls in a dispatch region. |
| (find_ifn_gomp_dispatch): Return the IFN without stripping it. |
| (gimplify_omp_dispatch): Keep IFN_GOMP_DISPATCH until |
| gimplify_call_expr. |
| |
| 2025-01-02 Tobias Burnus <tburnus@baylibre.com> |
| |
| * doc/install.texi (amdgcn-x-amdhsa): Refer to Newlib 4.5.0 for |
| the I/O locking fixes. |
| |
| 2025-01-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/118171 |
| * tree-ssa-pre.cc (create_component_ref_by_pieces_1): Do not |
| fold any component ref parts. |
| |
| 2025-01-02 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/118184 |
| * config/aarch64/aarch64-early-ra.cc (allocno_assignment_is_rmw): |
| New function. |
| (early_ra::record_insn_defs): Mark the live range information as |
| untrustworthy if an assignment would change part of an allocno |
| but preserve the rest. |
| |
| 2025-01-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-forwprop.cc (check_ctz_array): Handle also RAW_DATA_CST |
| in the CONSTRUCTOR_ELTS. |
| |
| 2025-01-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/libgdiagnostics/conf.py: Use u'' instead of '' in |
| project and copyright initialization. |
| |
| 2025-01-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc.cc (process_command): Update copyright notice dates. |
| * gcov-dump.cc (print_version): Ditto. |
| * gcov.cc (print_version): Ditto. |
| * gcov-tool.cc (print_version): Ditto. |
| * gengtype.cc (create_file): Ditto. |
| * doc/cpp.texi: Bump @copying's copyright year. |
| * doc/cppinternals.texi: Ditto. |
| * doc/gcc.texi: Ditto. |
| * doc/gccint.texi: Ditto. |
| * doc/gcov.texi: Ditto. |
| * doc/install.texi: Ditto. |
| * doc/invoke.texi: Ditto. |
| |
| 2025-01-02 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/loongarch.cc |
| (loongarch_expand_conditional_move): Add some optimization |
| implementations based on noce_try_cmove_arith. |
| |
| 2025-01-02 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/lasx.md (lasx_xvabsd_s_<lasxfmt>): Remove. |
| (<su>abd<mode>3): New insn pattern. |
| (lasx_xvabsd_u_<lasxfmt_u>): Remove. |
| * config/loongarch/loongarch-builtins.cc (CODE_FOR_lsx_vabsd_b): |
| Rename. |
| (CODE_FOR_lsx_vabsd_h): Ditto. |
| (CODE_FOR_lsx_vabsd_w): Ditto. |
| (CODE_FOR_lsx_vabsd_d): Ditto. |
| (CODE_FOR_lsx_vabsd_bu): Ditto. |
| (CODE_FOR_lsx_vabsd_hu): Ditto. |
| (CODE_FOR_lsx_vabsd_wu): Ditto. |
| (CODE_FOR_lsx_vabsd_du): Ditto. |
| (CODE_FOR_lasx_xvabsd_b): Ditto. |
| (CODE_FOR_lasx_xvabsd_h): Ditto. |
| (CODE_FOR_lasx_xvabsd_w): Ditto. |
| (CODE_FOR_lasx_xvabsd_d): Ditto. |
| (CODE_FOR_lasx_xvabsd_bu): Ditto. |
| (CODE_FOR_lasx_xvabsd_hu): Ditto. |
| (CODE_FOR_lasx_xvabsd_wu): Ditto. |
| (CODE_FOR_lasx_xvabsd_du): Ditto. |
| * config/loongarch/loongarch.md (u): Add smax/umax. |
| * config/loongarch/lsx.md (SU_MAX): New iterator. |
| (su_min): New attr. |
| (lsx_vabsd_s_<lsxfmt>): Remove. |
| (<su>abd<mode>3): New insn pattern. |
| (lsx_vabsd_u_<lsxfmt_u>): Remove. |
| |
| 2025-01-02 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/lasx.md (vec_unpacks_lo_<mode>): Redefine. |
| (vec_unpacku_lo_<mode>): Ditto. |
| (lasx_vext2xv_h<u>_b<u>): Replaced by vec_unpack<su>_lo_v32qi. |
| (vec_unpack<su>_lo_v32qi): New insn. |
| (lasx_vext2xv_w<u>_h<u>): Replaced by vec_unpack<su>_lo_v16hi. |
| (vec_unpack<su>_lo_v16qi_internal): New insn, for 128 bits. |
| (vec_unpack<su>_lo_v16hi): New insn. |
| (lasx_vext2xv_d<u>_w<u>): Replaced by vec_unpack<su>_lo_v8si. |
| (vec_unpack<su>_lo_v8hi_internal): New insn, for 128 bits. |
| (vec_unpack<su>_lo_v8si): New insn. |
| (vec_unpack<su>_lo_v4si_internal): New insn, for 128 bits. |
| (vec_packs_float_v4di): New expander. |
| (vec_pack_sfix_trunc_v4df): Ditto. |
| (vec_unpacks_float_hi_v8si): Ditto. |
| (vec_unpacks_float_lo_v8si): Ditto. |
| (vec_unpack_sfix_trunc_hi_v8sf): Ditto. |
| (vec_unpack_sfix_trunc_lo_v8sf): Ditto. |
| * config/loongarch/loongarch-builtins.cc |
| (CODE_FOR_lsx_vftintrz_w_d): Rename. |
| (CODE_FOR_lsx_vftintrzh_l_s): Ditto. |
| (CODE_FOR_lsx_vftintrzl_l_s): Ditto. |
| (CODE_FOR_lsx_vffint_s_l): Ditto. |
| (CODE_FOR_lsx_vffinth_d_w): Ditto. |
| (CODE_FOR_lsx_vffintl_d_w): Ditto. |
| (CODE_FOR_lsx_vexth_h_b): Ditto. |
| (CODE_FOR_lsx_vexth_w_h): Ditto. |
| (CODE_FOR_lsx_vexth_d_w): Ditto. |
| (CODE_FOR_lsx_vexth_hu_bu): Ditto. |
| (CODE_FOR_lsx_vexth_wu_hu): Ditto. |
| (CODE_FOR_lsx_vexth_du_wu): Ditto. |
| (CODE_FOR_lsx_vfcvth_d_s): Ditto. |
| (CODE_FOR_lsx_vfcvtl_d_s): Ditto. |
| (CODE_FOR_lasx_vext2xv_h_b): Ditto. |
| (CODE_FOR_lasx_vext2xv_w_h): Ditto. |
| (CODE_FOR_lasx_vext2xv_d_w): Ditto. |
| (CODE_FOR_lasx_vext2xv_hu_bu): Ditto. |
| (CODE_FOR_lasx_vext2xv_wu_hu): Ditto. |
| (CODE_FOR_lasx_vext2xv_du_wu): Ditto. |
| (loongarch_expand_builtin_insn): Swap source operands in |
| CODE_FOR_lsx_vftintrz_w_d and CODE_FOR_lsx_vffint_s_l. |
| * config/loongarch/loongarch-protos.h |
| (loongarch_expand_vec_unpack): Remove useless parameter high_p. |
| * config/loongarch/loongarch.cc (loongarch_expand_vec_unpack): |
| Rewrite. |
| * config/loongarch/lsx.md (vec_unpacks_hi_v4sf): Redefine. |
| (vec_unpacks_lo_v4sf): Ditto. |
| (vec_unpacks_hi_<mode>): Ditto. |
| (vec_unpacku_hi_<mode>): Ditto. |
| (lsx_vfcvth_d_s): Replaced by vec_unpacks_hi_v4sf. |
| (lsx_vfcvtl_d_s): Replaced by vec_unpacks_lo_v4sf. |
| (lsx_vffint_s_l): Replaced by vec_packs_float_v2di. |
| (vec_packs_float_v2di): New insn. |
| (lsx_vftintrz_w_d): Replaced by vec_pack_sfix_trunc_v2df. |
| (vec_pack_sfix_trunc_v2df): New insn. |
| (lsx_vffinth_d_w): Replaced by vec_unpacks_float_hi_v4si. |
| (vec_unpacks_float_hi_v4si): New insn. |
| (lsx_vffintl_d_w): Replaced by vec_unpacks_float_lo_v4si. |
| (vec_unpacks_float_lo_v4si): New insn. |
| (lsx_vftintrzh_l_s): Replaced by vec_unpack_sfix_trunc_hi_v4sf. |
| (vec_unpack_sfix_trunc_hi_v4sf): New insn. |
| (lsx_vftintrzl_l_s): Replaced by vec_unpack_sfix_trunc_lo_v4sf. |
| (vec_unpack_sfix_trunc_lo_v4sf): New insn. |
| (lsx_vexth_h<u>_b<u>): Replaced by vec_unpack<su>_hi_v16qi. |
| (vec_unpack<su>_hi_v16qi): New insn. |
| (lsx_vexth_w<u>_h<u>): Replaced by vec_unpack<su>_hi_v8hi. |
| (vec_unpack<su>_hi_v8hi): New insn. |
| (lsx_vexth_d<u>_w<u>): Replaced by vec_unpack<su>_hi_v4si. |
| (vec_unpack<su>_hi_v4si): New insn. |
| |
| 2025-01-02 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/loongarch.md |
| (bytepick_d_<bytepick_imm>_rev): New combiner. |
| (bstrpick_alsl_paired): Reorder input operands. |
| |
| 2025-01-02 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/lasx.md: Remove useless vec_select. |
| * config/loongarch/predicates.md: Correct error predicate. |
| |
| 2025-01-02 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/lasx.md: Fix selector index. |
| |
| 2025-01-02 Guo Jie <guojie@loongson.cn> |
| |
| * config/loongarch/lasx.md: Remove useless code. |
| * config/loongarch/lsx.md: Ditto. |
| |
| 2025-01-01 Sam James <sam@gentoo.org> |
| |
| * doc/cpp.texi (Common Predefined Macros): Fix syntax. |
| |
| 2025-01-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/118174 |
| * tree-outof-ssa.cc (ssa_is_replaceable_p): Exclude tailcalls. |
| |
| 2025-01-01 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/invoke.texi (Option Summary): Put "M32C Options" and |
| "Cygwin and MinGW Options" in alphabetical order. Add |
| cross-references. |
| (Cygwin and MinGW Options): Likewise move the section to its |
| correct alphabetical location. |
| * config/lynx.opt.urls: Regenerated. |
| * config/mingw/cygming.opt.urls: Regenerated. |
| |
| Copyright (C) 2025 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |