forked from OSchip/llvm-project
[PGO] Make emitted symbols hidden
Differential Revision: https://reviews.llvm.org/D135340
This commit is contained in:
parent
3411263dde
commit
4ea1a647ff
|
@ -1210,6 +1210,7 @@ void createProfileFileNameVar(Module &M, StringRef InstrProfileOutput) {
|
|||
GlobalVariable *ProfileNameVar = new GlobalVariable(
|
||||
M, ProfileNameConst->getType(), true, GlobalValue::WeakAnyLinkage,
|
||||
ProfileNameConst, INSTR_PROF_QUOTE(INSTR_PROF_PROFILE_NAME_VAR));
|
||||
ProfileNameVar->setVisibility(GlobalValue::HiddenVisibility);
|
||||
Triple TT(M.getTargetTriple());
|
||||
if (TT.supportsCOMDAT()) {
|
||||
ProfileNameVar->setLinkage(GlobalValue::ExternalLinkage);
|
||||
|
|
|
@ -380,7 +380,7 @@ static GlobalVariable *createIRLevelProfileFlagVar(Module &M, bool IsCS) {
|
|||
auto IRLevelVersionVariable = new GlobalVariable(
|
||||
M, IntTy64, true, GlobalValue::WeakAnyLinkage,
|
||||
Constant::getIntegerValue(IntTy64, APInt(64, ProfileVersion)), VarName);
|
||||
IRLevelVersionVariable->setVisibility(GlobalValue::DefaultVisibility);
|
||||
IRLevelVersionVariable->setVisibility(GlobalValue::HiddenVisibility);
|
||||
Triple TT(M.getTargetTriple());
|
||||
if (TT.supportsCOMDAT()) {
|
||||
IRLevelVersionVariable->setLinkage(GlobalValue::ExternalLinkage);
|
||||
|
|
|
@ -14,7 +14,7 @@ target triple = "x86_64-unknown-linux-gnu"
|
|||
; GEN-DARWIN-LINKONCE: target triple = "x86_64-apple-darwin"
|
||||
|
||||
; GEN-COMDAT: $__llvm_profile_raw_version = comdat any
|
||||
; GEN-COMDAT: @__llvm_profile_raw_version = constant i64 {{[0-9]+}}, comdat
|
||||
; GEN-COMDAT: @__llvm_profile_raw_version = hidden constant i64 {{[0-9]+}}, comdat
|
||||
; GEN-LINKONCE: @__llvm_profile_raw_version = linkonce constant i64 {{[0-9]+}}
|
||||
; GEN: @__profn_test_br_1 = private constant [9 x i8] c"test_br_1"
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
|
|||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
; GEN: $__llvm_profile_raw_version = comdat any
|
||||
; GEN: @__llvm_profile_raw_version = constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__llvm_profile_raw_version = hidden constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__profn_test_br_2 = private constant [9 x i8] c"test_br_2"
|
||||
|
||||
define i32 @test_br_2(i32 %i) {
|
||||
|
|
|
@ -10,7 +10,7 @@ $foo = comdat any
|
|||
|
||||
@bar = global ptr @foo, align 8
|
||||
|
||||
; CHECK: @__llvm_profile_raw_version = constant i64 {{[0-9]+}}, comdat
|
||||
; CHECK: @__llvm_profile_raw_version = hidden constant i64 {{[0-9]+}}, comdat
|
||||
; CHECK-NOT: __profn__stdin__foo
|
||||
; CHECK: @__profc__stdin__foo.[[#FOO_HASH]] = private global [1 x i64] zeroinitializer, section "__llvm_prf_cnts", comdat, align 8
|
||||
; CHECK: @__profd__stdin__foo.[[#FOO_HASH]] = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -5640069336071256030, i64 [[#FOO_HASH]], i64 sub (i64 ptrtoint (ptr @__profc__stdin__foo.742261418966908927 to i64), i64 ptrtoint (ptr @__profd__stdin__foo.742261418966908927 to i64)), ptr null
|
||||
|
|
|
@ -9,7 +9,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
|
|||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
; GEN: $__llvm_profile_raw_version = comdat any
|
||||
; GEN: @__llvm_profile_raw_version = constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__llvm_profile_raw_version = hidden constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__profn_test_criticalEdge = private constant [17 x i8] c"test_criticalEdge"
|
||||
; GEN: @__profn__stdin__bar = private constant [11 x i8] c"<stdin>:bar"
|
||||
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
; RUN: opt < %s -passes='thinlto-pre-link<O2>' --cs-profilegen-file=file -cspgo-kind=cspgo-instr-gen-pipeline -S | FileCheck %s
|
||||
|
||||
; CHECK: $__llvm_profile_filename = comdat any
|
||||
; CHECK: @__llvm_profile_filename = hidden local_unnamed_addr constant [5 x i8] c"file\00", comdat
|
||||
|
||||
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
define i32 @test() {
|
||||
ret i32 0
|
||||
}
|
|
@ -7,7 +7,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
|
|||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
; GEN: $__llvm_profile_raw_version = comdat any
|
||||
; GEN: @__llvm_profile_raw_version = constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__llvm_profile_raw_version = hidden constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__profn_test_br_2 = private constant [9 x i8] c"test_br_2"
|
||||
|
||||
define i32 @test_br_2(i32 %i) {
|
||||
|
|
|
@ -11,7 +11,7 @@ target triple = "x86_64-unknown-linux-gnu"
|
|||
@val = global i32 0, align 4
|
||||
@_ZTIi = external constant ptr
|
||||
; GEN: $__llvm_profile_raw_version = comdat any
|
||||
; GEN: @__llvm_profile_raw_version = constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__llvm_profile_raw_version = hidden constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__profn_bar = private constant [3 x i8] c"bar"
|
||||
; GEN: @__profn_foo = private constant [3 x i8] c"foo"
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
|
|||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
; GEN: $__llvm_profile_raw_version = comdat any
|
||||
; GEN: @__llvm_profile_raw_version = constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__llvm_profile_raw_version = hidden constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__profn_test_simple_for = private constant [15 x i8] c"test_simple_for"
|
||||
|
||||
define i32 @test_simple_for(i32 %n) {
|
||||
|
|
|
@ -8,7 +8,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
|
|||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
; GEN: $__llvm_profile_raw_version = comdat any
|
||||
; GEN: @__llvm_profile_raw_version = constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__llvm_profile_raw_version = hidden constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__profn_test_nested_for = private constant [15 x i8] c"test_nested_for"
|
||||
|
||||
define i32 @test_nested_for(i32 %r, i32 %s) {
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
; RUN: llvm-dis %t.0.0.preopt.bc -o - | FileCheck %s --check-prefix=IRPGOBE
|
||||
|
||||
;; Before LTO, we should have the __llvm_profile_raw_version definition.
|
||||
; IRPGOPRE: @__llvm_profile_raw_version = constant i64
|
||||
; IRPGOPRE: @__llvm_profile_raw_version = hidden constant i64
|
||||
|
||||
;; Non-prevailing __llvm_profile_raw_version is discarded by LTO. Ensure the
|
||||
;; declaration is retained.
|
||||
; IRPGOBE: @__llvm_profile_raw_version = external constant i64
|
||||
; IRPGOBE: @__llvm_profile_raw_version = external hidden constant i64
|
||||
|
||||
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
|
|
@ -3,7 +3,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
|
|||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
; GEN: $__llvm_profile_raw_version = comdat any
|
||||
; GEN: @__llvm_profile_raw_version = constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__llvm_profile_raw_version = hidden constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__profn_single_bb = private constant [9 x i8] c"single_bb"
|
||||
|
||||
define i32 @single_bb() {
|
||||
|
|
|
@ -8,7 +8,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
|
|||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
; GEN: $__llvm_profile_raw_version = comdat any
|
||||
; GEN: @__llvm_profile_raw_version = constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__llvm_profile_raw_version = hidden constant i64 {{[0-9]+}}, comdat
|
||||
; GEN: @__profn_test_switch = private constant [11 x i8] c"test_switch"
|
||||
|
||||
define void @test_switch(i32 %i) {
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
; RUN: llvm-dis %t.2.4.opt.bc -o - | FileCheck %s --check-prefixes=CSGEN,NOPREVAILING
|
||||
|
||||
;; Prevailing __llvm_profile_raw_version is kept by LTO.
|
||||
; PREVAILING: @__llvm_profile_raw_version = constant i64
|
||||
; PREVAILING: @__llvm_profile_raw_version = hidden constant i64
|
||||
|
||||
;; Non-prevailing __llvm_profile_raw_version is discarded by LTO. Ensure the
|
||||
;; declaration is retained.
|
||||
; NOPREVAILING: @__llvm_profile_raw_version = external constant i64
|
||||
; NOPREVAILING: @__llvm_profile_raw_version = external hidden constant i64
|
||||
; CSGEN: @__profc_
|
||||
; CSGEN: @__profd_
|
||||
|
||||
|
|
Loading…
Reference in New Issue