Projects
openEuler:24.03:SP1:Everything:64G
gcc
_service:tar_scm:0023-PGO-kernel-Add-fkernel-pg...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:0023-PGO-kernel-Add-fkernel-pgo-option-to-support-PGO-ker.patch of Package gcc
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
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2