InstrProf: Make the __llvm_profile_runtime_user symbol hidden

This symbol exists only to pull in the required pieces of the runtime,
so nothing ever needs to refer to it. Making it hidden avoids the
potential for issues with duplicate symbols when linking profiled
libraries together.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230566 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Justin Bogner 2015-02-25 22:52:20 +00:00
parent 344ea29148
commit 4a3b80e1f9
2 changed files with 2 additions and 1 deletions

View File

@ -288,6 +288,7 @@ void InstrProfiling::emitRuntimeHook() {
User->addFnAttr(Attribute::NoInline);
if (Options.NoRedZone)
User->addFnAttr(Attribute::NoRedZone);
User->setVisibility(GlobalValue::HiddenVisibility);
IRBuilder<> IRB(BasicBlock::Create(M->getContext(), "", User));
auto *Load = IRB.CreateLoad(Var);

View File

@ -40,7 +40,7 @@ declare void @llvm.instrprof.increment(i8*, i64, i32, i32)
; CHECK: @__llvm_profile_runtime = external global i32
; CHECK: define linkonce_odr i32 @__llvm_profile_runtime_user() {{.*}} {
; CHECK: define linkonce_odr hidden i32 @__llvm_profile_runtime_user() {{.*}} {
; CHECK: %[[REG:.*]] = load i32* @__llvm_profile_runtime
; CHECK: ret i32 %[[REG]]
; CHECK: }