[libcxx-commits] [lldb] [compiler-rt] [clang-tools-extra] [openmp] [flang] [libc] [lld] [llvm] [libcxx] [clang] [PGO][OpenMP] Instrumentation for GPU devices (PR #76587)
Matt Arsenault via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Jan 8 22:35:51 PST 2024
================
@@ -448,8 +456,12 @@ GlobalVariable *createPGOFuncNameVar(Module &M,
new GlobalVariable(M, Value->getType(), true, Linkage, Value,
getPGOFuncNameVarName(PGOFuncName, Linkage));
+ // If the target is a GPU, make the symbol protected so it can
+ // be read from the host device
+ if (isGPUProfTarget(M))
+ FuncNameVar->setVisibility(GlobalValue::ProtectedVisibility);
// Hide the symbol so that we correctly get a copy for each executable.
- if (!GlobalValue::isLocalLinkage(FuncNameVar->getLinkage()))
+ else if (!GlobalValue::isLocalLinkage(FuncNameVar->getLinkage()))
FuncNameVar->setVisibility(GlobalValue::HiddenVisibility);
----------------
arsenm wrote:
Can you spot this into some kind of function-to-visibility to use function? This doesn't feel like the right way to control it, so might as well cleanly separate it out
https://github.com/llvm/llvm-project/pull/76587
More information about the libcxx-commits
mailing list