!307 [sync] PR-290: [Sync] Add PGO kernel option to support PGO kernel
From: @openeuler-sync-bot Reviewed-by: @li-yancheng Signed-off-by: @li-yancheng
This commit is contained in:
commit
fd2d0bae44
@ -0,0 +1,46 @@
|
||||
From 90d3ef0637c66045eeab78ccf04e9ff51b9b451a Mon Sep 17 00:00:00 2001
|
||||
From: xiongzhou4 <xiongzhou4@huawei.com>
|
||||
Date: Thu, 1 Jun 2023 09:28:27 +0800
|
||||
Subject: [PATCH 5/5] [PGO kernel] Add fkernel-pgo option to support PGO kernel
|
||||
compilation.
|
||||
|
||||
If specified, disable TLS setting of instrumentation variables in
|
||||
gcc/tree-profile.c, as kernel does not support TLS.
|
||||
---
|
||||
gcc/common.opt | 4 ++++
|
||||
gcc/tree-profile.c | 4 +++-
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/common.opt b/gcc/common.opt
|
||||
index 238c97db8..6f0ed7cea 100644
|
||||
--- a/gcc/common.opt
|
||||
+++ b/gcc/common.opt
|
||||
@@ -2302,6 +2302,10 @@ fprofile-generate=
|
||||
Common Joined RejectNegative
|
||||
Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
|
||||
|
||||
+fkernel-pgo
|
||||
+Common Report Var(flag_kernel_pgo) Optimization Init(0)
|
||||
+Disable TLS setting of instrumentation variables to support PGO kernel compilation in -fprofile-generate, as kernel does not support TLS.
|
||||
+
|
||||
fprofile-partial-training
|
||||
Common Report Var(flag_profile_partial_training) Optimization
|
||||
Do not assume that functions never executed during the train run are cold.
|
||||
diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c
|
||||
index 6c0838261..924817472 100644
|
||||
--- a/gcc/tree-profile.c
|
||||
+++ b/gcc/tree-profile.c
|
||||
@@ -105,7 +105,9 @@ init_ic_make_global_vars (void)
|
||||
DECL_ARTIFICIAL (ic_tuple_var) = 1;
|
||||
DECL_INITIAL (ic_tuple_var) = NULL;
|
||||
DECL_EXTERNAL (ic_tuple_var) = 1;
|
||||
- if (targetm.have_tls)
|
||||
+ /* Disable TLS setting when compiling kernel in -fprofile-generate,
|
||||
+ as kernel does not support TLS. */
|
||||
+ if (targetm.have_tls && !flag_kernel_pgo)
|
||||
set_decl_tls_model (ic_tuple_var, decl_default_tls_model (ic_tuple_var));
|
||||
}
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
||||
10
gcc.spec
10
gcc.spec
@ -61,7 +61,7 @@
|
||||
Summary: Various compilers (C, C++, Objective-C, ...)
|
||||
Name: gcc
|
||||
Version: %{gcc_version}
|
||||
Release: 33
|
||||
Release: 34
|
||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
|
||||
URL: https://gcc.gnu.org
|
||||
|
||||
@ -208,6 +208,7 @@ Patch96: 0096-libquadmath-Revert-Enable-libquadmath-on-kunpeng.patch
|
||||
Patch97: 0097-libquadmath-refactor-Enable-libquadmath-on-kunpeng.patch
|
||||
Patch98: 0098-AArch64-Rewrite-the-tsv110-option.patch
|
||||
Patch99: 0099-Struct-Reorg-Add-escape-propagate-on-external-functi.patch
|
||||
Patch100: 0100-PGO-kernel-Add-fkernel-pgo-option-to-support-PGO-ker.patch
|
||||
|
||||
%global gcc_target_platform %{_arch}-linux-gnu
|
||||
|
||||
@ -761,6 +762,7 @@ not stable, so plugins must be rebuilt any time GCC is updated.
|
||||
%patch97 -p1
|
||||
%patch98 -p1
|
||||
%patch99 -p1
|
||||
%patch100 -p1
|
||||
|
||||
%build
|
||||
|
||||
@ -2785,6 +2787,12 @@ end
|
||||
%doc rpm.doc/changelogs/libcc1/ChangeLog*
|
||||
|
||||
%changelog
|
||||
* Fri Jun 9 2023 Wang Ding <wangding16@huawei.com> - 10.3.1-34
|
||||
- Type:Sync
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:Add PGO kernel option to support PGO kernel
|
||||
|
||||
* Fri Jun 9 2023 huangxiaoquan <huangxiaoquan1@huawei.com> - 10.3.1-33
|
||||
- Type:Sync
|
||||
- ID:NA
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user