加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0023-PGO-kernel-Add-fkernel-pgo-option-to-support-PGO-ker.patch 1.57 KB
一键复制 编辑 原始数据 按行查看 历史
From 9dc6d315ba350c9113f486ec897217a82838fb73 Mon Sep 17 00:00:00 2001
From: Xiong Zhou <xiongzhou4@huawei.com>
Date: Mon, 7 Aug 2023 14:44:56 +0800
Subject: [PATCH 1/2] [PGO kernel] Add fkernel-pgo option to support PGO kernel
compilation.
---
gcc/common.opt | 4 ++++
gcc/tree-profile.cc | 4 +++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index e365a48bc..bd3b7dcb1 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -2363,6 +2363,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 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-info-section
Common RejectNegative
Register the profile information in the .gcov_info section instead of using a constructor/destructor.
diff --git a/gcc/tree-profile.cc b/gcc/tree-profile.cc
index 6d40401f8..e7646f1a1 100644
--- a/gcc/tree-profile.cc
+++ b/gcc/tree-profile.cc
@@ -108,7 +108,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
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化