[clang] [compiler-rt] [PGO][Offload] Fix profile function visibility (PR #127257)
Ethan Luis McDonough via llvm-commits
llvm-commits at lists.llvm.org
Sun Feb 16 01:12:54 PST 2025
https://github.com/EthanLuisMcDonough updated https://github.com/llvm/llvm-project/pull/127257
>From 2f747025061b8be4b4294bf6351e653f02349105 Mon Sep 17 00:00:00 2001
From: Ethan Luis McDonough <ethanluismcdonough at gmail.com>
Date: Fri, 14 Feb 2025 14:39:26 -0600
Subject: [PATCH] [PGO][Offload] Fix profile function visibility
---
clang/lib/Driver/ToolChains/Darwin.cpp | 14 +++++++++-----
compiler-rt/lib/profile/InstrProfilingFile.c | 10 ++++------
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
index b26c5bf1a909e..75f126965e0ac 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -1480,11 +1480,15 @@ void Darwin::addProfileRTLibs(const ArgList &Args,
// If we have a symbol export directive and we're linking in the profile
// runtime, automatically export symbols necessary to implement some of the
// runtime's functionality.
- if (hasExportSymbolDirective(Args) && ForGCOV) {
- addExportedSymbol(CmdArgs, "___gcov_dump");
- addExportedSymbol(CmdArgs, "___gcov_reset");
- addExportedSymbol(CmdArgs, "_writeout_fn_list");
- addExportedSymbol(CmdArgs, "_reset_fn_list");
+ if (hasExportSymbolDirective(Args)) {
+ if (ForGCOV) {
+ addExportedSymbol(CmdArgs, "___gcov_dump");
+ addExportedSymbol(CmdArgs, "___gcov_reset");
+ addExportedSymbol(CmdArgs, "_writeout_fn_list");
+ addExportedSymbol(CmdArgs, "_reset_fn_list");
+ } else {
+ addExportedSymbol(CmdArgs, "___llvm_write_custom_profile");
+ }
}
// Align __llvm_prf_{cnts,bits,data} sections to the maximum expected page
diff --git a/compiler-rt/lib/profile/InstrProfilingFile.c b/compiler-rt/lib/profile/InstrProfilingFile.c
index 503d159fd9817..e5eca7947cf9b 100644
--- a/compiler-rt/lib/profile/InstrProfilingFile.c
+++ b/compiler-rt/lib/profile/InstrProfilingFile.c
@@ -1362,12 +1362,10 @@ COMPILER_RT_VISIBILITY int __llvm_profile_set_file_object(FILE *File,
return 0;
}
-int __llvm_write_custom_profile(const char *Target,
- const __llvm_profile_data *DataBegin,
- const __llvm_profile_data *DataEnd,
- const char *CountersBegin,
- const char *CountersEnd, const char *NamesBegin,
- const char *NamesEnd) {
+COMPILER_RT_USED int __llvm_write_custom_profile(
+ const char *Target, const __llvm_profile_data *DataBegin,
+ const __llvm_profile_data *DataEnd, const char *CountersBegin,
+ const char *CountersEnd, const char *NamesBegin, const char *NamesEnd) {
int ReturnValue = 0, FilenameLength, TargetLength;
char *FilenameBuf, *TargetFilename;
const char *Filename;
More information about the llvm-commits
mailing list