diff --git a/0001-CFGO-Enable-flag_profile_partial_training-for-CFGO-b.patch b/0001-CFGO-Enable-flag_profile_partial_training-for-CFGO-b.patch new file mode 100644 index 0000000000000000000000000000000000000000..88bf9196ec0887c3c92ca009ba5cc7ec8b108f3e --- /dev/null +++ b/0001-CFGO-Enable-flag_profile_partial_training-for-CFGO-b.patch @@ -0,0 +1,30 @@ +From c5a8fc1ec35310b5f030c05e11af1c32ccf79e4c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=B0=8F=E4=BC=99?= <412998149@qq.com> +Date: Tue, 15 Apr 2025 11:42:33 +0000 +Subject: [PATCH] [CFGO] Enable flag_profile_partial_training for CFGO by + default Enable flag_profile_partial_training for CFGO by default for better + performance. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: 编译小伙 <412998149@qq.com> +--- + gcc/opts.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gcc/opts.cc b/gcc/opts.cc +index 7508fc817..162e14bc2 100644 +--- a/gcc/opts.cc ++++ b/gcc/opts.cc +@@ -2125,6 +2125,7 @@ enable_cfgo_optimizations (struct gcc_options *opts, + SET_OPTION_IF_UNSET (opts, opts_set, flag_modulo_sched, value); + SET_OPTION_IF_UNSET (opts, opts_set, flag_selective_scheduling, value); + SET_OPTION_IF_UNSET (opts, opts_set, flag_rename_registers, value); ++ SET_OPTION_IF_UNSET (opts, opts_set, flag_profile_partial_training, value); + + SET_OPTION_IF_UNSET (opts, opts_set, param_max_inline_insns_auto, 185); + SET_OPTION_IF_UNSET (opts, opts_set, param_inline_unit_growth, 66); +-- +2.48.1 + diff --git a/gcc.spec b/gcc.spec index 7a27a0b179b8614440e1325d64c601f695ade172..5330b3a6cc4038720d258dd65875e30b543c9b7f 100644 --- a/gcc.spec +++ b/gcc.spec @@ -2,7 +2,7 @@ %global gcc_major 12 # Note, gcc_release must be integer, if you want to add suffixes to # %%{release}, append them after %%{gcc_release} on Release: line. -%global gcc_release 77 +%global gcc_release 79 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 @@ -135,6 +135,8 @@ Provides: bundled(libbacktrace) Provides: bundled(libffi) Provides: gcc(major) = %{gcc_major} +# patches for all arch +%patch -P3325 -p1 Patch1: 0001-Version-Set-version-to-12.3.1.patch Patch2: 0002-RISCV-Backport-inline-subword-atomic-patches.patch Patch3: 0003-CONFIG-Regenerate-configure-file.patch @@ -466,6 +468,7 @@ Patch357: 0357-struct-reorg-disable-malloc-support-when-struct_layo.patch Patch358: 0358-struct-reorg-fix-residual-ssa_name-issue.patch Patch359: 0359-tracer-static-Fix-divide-by-zero-error.patch Patch360: 0360-Struct-reorg-Re-enable-malloc-support-below-ptr_comp.patch +Patch3325: 0001-Version-Set-version-to-12.3.1.patch # Part 1001-1999 %ifarch sw_64 @@ -813,6 +816,7 @@ Patch3320: 0190-tree-optimization-110702-avoid-zero-based-memory-ref.patch Patch3321: 0191-LoongArch-Change-OSDIR-for-distribution.patch Patch3322: Fix-indentation-and-numbering-errors.diff Patch3323: LoongArch-Allow-attributes-in-non-gnu-namespaces.diff +Patch3324: 0001-Version-Set-version-to-12.3.1.patch %endif # On ARM EABI systems, we do want -gnueabi to be part of the @@ -1281,6 +1285,7 @@ not stable, so plugins must be rebuilt any time GCC is updated. %prep %setup -q -n gcc-12.3.0 +# patches for all arch %patch -P1 -p1 %patch -P2 -p1 %patch -P3 -p1 @@ -1957,6 +1962,8 @@ not stable, so plugins must be rebuilt any time GCC is updated. %patch -P3321 -p1 %patch -P3322 -p1 %patch -P3323 -p1 +%patch -P3324 -p1 + %endif echo '%{_vendor} %{version}-%{release}' > gcc/DEV-PHASE @@ -4239,6 +4246,12 @@ end %doc rpm.doc/changelogs/libcc1/ChangeLog* %changelog +* Sun Apr 20 2025 lulingyu-601 - 12.3.1-79 +- DESC: CFGO-Enable-flag_profile_partial_training-for-CFGO-b + +* Fri Apr 18 2025 lulingyu-601 - 12.3.1-78 +- DESC: CFGO-Enable-flag_profile_partial_training-for-CFGO-b + * Wed Mar 19 2025 liyancheng <412998149@qq.com> - 12.3.1-77 - Type:Bugfix - DESC: Re-enable malloc support below ptr_compression