From 3d438ceed10d73f951226d398abf867822b68cb1 Mon Sep 17 00:00:00 2001 From: Justin Cady Date: Mon, 11 Jul 2022 11:29:20 -0700 Subject: [PATCH] [InstrProf] Mark __llvm_profile_runtime hidden to match libclang_rt.profile definition Mark the symbol hidden to match INSTR_PROF_PROFILE_RUNTIME_VAR in compiler-rt. Fixes second issue discussed at https://discourse.llvm.org/t/63090 Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D128842 --- llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp | 1 + llvm/test/Instrumentation/InstrProfiling/profiling.ll | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp index 7843b15..3572cb3 100644 --- a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp +++ b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp @@ -1244,6 +1244,7 @@ bool InstrProfiling::emitRuntimeHook() { auto *Var = new GlobalVariable(*M, Int32Ty, false, GlobalValue::ExternalLinkage, nullptr, getInstrProfRuntimeHookVarName()); + Var->setVisibility(GlobalValue::HiddenVisibility); if (TT.isOSBinFormatELF() && !TT.isPS()) { // Mark the user variable as used so that it isn't stripped out. diff --git a/llvm/test/Instrumentation/InstrProfiling/profiling.ll b/llvm/test/Instrumentation/InstrProfiling/profiling.ll index d65dac6..15cc53c 100644 --- a/llvm/test/Instrumentation/InstrProfiling/profiling.ll +++ b/llvm/test/Instrumentation/InstrProfiling/profiling.ll @@ -8,11 +8,13 @@ ; RUN: opt < %s -mtriple=x86_64-sie-ps5 -passes=instrprof -S | FileCheck %s --check-prefixes=ELF,PS ; RUN: opt < %s -mtriple=x86_64-pc-win32-coff -passes=instrprof -S | FileCheck %s --check-prefixes=COFF ; RUN: opt < %s -mtriple=powerpc64-ibm-aix-xcoff -passes=instrprof -S | FileCheck %s --check-prefixes=XCOFF +; RUN: opt < %s -mtriple=x86_64-pc-freebsd13 -passes=instrprof -S | FileCheck %s --check-prefixes=ELF -; MACHO: @__llvm_profile_runtime = external global i32 -; ELF_GENERIC: @__llvm_profile_runtime = external global i32 +; MACHO: @__llvm_profile_runtime = external hidden global i32 +; ELF_GENERIC: @__llvm_profile_runtime = external hidden global i32 ; ELF-NOT: @__llvm_profile_runtime = external global i32 -; XCOFF: @__llvm_profile_runtime = external global i32 +; XCOFF: @__llvm_profile_runtime = external hidden global i32 +; COFF: @__llvm_profile_runtime = external hidden global i32 ; ELF: $__profc_foo = comdat nodeduplicate ; ELF: $__profc_foo_weak = comdat nodeduplicate -- 2.7.4