aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/TargetMachine.cpp
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2020-12-05 20:42:16 -0800
committerVitaly Buka <vitalybuka@google.com>2020-12-05 21:11:04 -0800
commit19e7741fef775b2f4f497c44b6aeab350f43f9a7 (patch)
tree5dd154d063041284dd44228f97361fc5047f6134 /llvm/lib/Target/TargetMachine.cpp
parent5bc9c858e34026462070dbe0f937d4f243682bef (diff)
downloadllvm-19e7741fef775b2f4f497c44b6aeab350f43f9a7.zip
llvm-19e7741fef775b2f4f497c44b6aeab350f43f9a7.tar.gz
llvm-19e7741fef775b2f4f497c44b6aeab350f43f9a7.tar.bz2
[TargetMachine] Set dso_local for memprof
Similar to 5582a7987662a92eda5d883b88fc4586e755acf5
Diffstat (limited to 'llvm/lib/Target/TargetMachine.cpp')
-rw-r--r--llvm/lib/Target/TargetMachine.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/TargetMachine.cpp b/llvm/lib/Target/TargetMachine.cpp
index f214a47..d9c8945 100644
--- a/llvm/lib/Target/TargetMachine.cpp
+++ b/llvm/lib/Target/TargetMachine.cpp
@@ -163,10 +163,11 @@ bool TargetMachine::shouldAssumeDSOLocal(const Module &M,
// If the symbol is defined, it cannot be preempted.
if (!GV->isDeclarationForLinker())
return true;
- // FIXME asan does not call setDSOLocal appropriately. Fix asan and delete
- // the hack.
+ // FIXME Sanitizers do not call setDSOLocal appropriately. Fix sanitizers
+ // and delete the hack.
if (RM == Reloc::Static && !GV->isThreadLocal() &&
- M.getFunction("asan.module_ctor"))
+ (M.getFunction("asan.module_ctor") ||
+ M.getFunction("memprof.module_ctor")))
return true;
} else if (TT.isOSBinFormatELF()) {
// If dso_local allows AsmPrinter::getSymbolPreferLocal to use a local