From ffd83ec964135e59d201569af029b28b998f4549 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 11 Jan 2018 22:15:12 +0000 Subject: [PATCH] Make internal/private GVs implicitly dso_local. While updating clang tests for having clang set dso_local I noticed that: - There are *a lot* of tests to update. - Many of the updates are redundant. They are redundant because a GV is "obviously dso_local". This patch starts formalizing that a bit by requiring that internal and private GVs be dso_local too. Since they all are, we don't have to print dso_local to the textual representation, making it a bit more compact and easier to read. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@322318 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGOpenMPRuntime.cpp | 1 + test/CodeGenCXX/microsoft-abi-static-initializers.cpp | 6 +++--- test/OpenMP/target_codegen_registration.cpp | 2 +- test/OpenMP/target_parallel_codegen_registration.cpp | 2 +- test/OpenMP/target_parallel_for_codegen_registration.cpp | 2 +- .../target_parallel_for_simd_codegen_registration.cpp | 2 +- test/OpenMP/target_simd_codegen_registration.cpp | 2 +- test/OpenMP/target_teams_codegen_registration.cpp | 2 +- .../OpenMP/target_teams_distribute_codegen_registration.cpp | 2 +- .../target_teams_distribute_simd_codegen_registration.cpp | 2 +- 10 files changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/CodeGen/CGOpenMPRuntime.cpp b/lib/CodeGen/CGOpenMPRuntime.cpp index d2ccb33bc2..9fa173b2e0 100644 --- a/lib/CodeGen/CGOpenMPRuntime.cpp +++ b/lib/CodeGen/CGOpenMPRuntime.cpp @@ -5912,6 +5912,7 @@ void CGOpenMPRuntime::emitTargetOutlinedFunctionHelper( if (CGM.getLangOpts().OpenMPIsDevice) { OutlinedFnID = llvm::ConstantExpr::getBitCast(OutlinedFn, CGM.Int8PtrTy); OutlinedFn->setLinkage(llvm::GlobalValue::ExternalLinkage); + OutlinedFn->setDSOLocal(false); } else OutlinedFnID = new llvm::GlobalVariable( CGM.getModule(), CGM.Int8Ty, /*isConstant=*/true, diff --git a/test/CodeGenCXX/microsoft-abi-static-initializers.cpp b/test/CodeGenCXX/microsoft-abi-static-initializers.cpp index 0b84f07e11..f834c5593d 100644 --- a/test/CodeGenCXX/microsoft-abi-static-initializers.cpp +++ b/test/CodeGenCXX/microsoft-abi-static-initializers.cpp @@ -28,11 +28,11 @@ S s; // See @llvm.global_ctors above. __declspec(selectany) S selectany1; __declspec(selectany) S selectany2; -// CHECK: define linkonce_odr void @"\01??__Eselectany1@@YAXXZ"() {{.*}} comdat +// CHECK: define linkonce_odr dso_local void @"\01??__Eselectany1@@YAXXZ"() {{.*}} comdat // CHECK-NOT: @"\01??_Bselectany1 // CHECK: call x86_thiscallcc %struct.S* @"\01??0S@@QAE@XZ" // CHECK: ret void -// CHECK: define linkonce_odr void @"\01??__Eselectany2@@YAXXZ"() {{.*}} comdat +// CHECK: define linkonce_odr dso_local void @"\01??__Eselectany2@@YAXXZ"() {{.*}} comdat // CHECK-NOT: @"\01??_Bselectany2 // CHECK: call x86_thiscallcc %struct.S* @"\01??0S@@QAE@XZ" // CHECK: ret void @@ -231,7 +231,7 @@ void force_usage() { DynamicDLLImportInitVSMangling::switch_test3(); } -// CHECK: define linkonce_odr void @"\01??__Efoo@?$B@H@@2VA@@A@YAXXZ"() {{.*}} comdat +// CHECK: define linkonce_odr dso_local void @"\01??__Efoo@?$B@H@@2VA@@A@YAXXZ"() {{.*}} comdat // CHECK-NOT: and // CHECK-NOT: ?_Bfoo@ // CHECK: call x86_thiscallcc %class.A* @"\01??0A@@QAE@XZ" diff --git a/test/OpenMP/target_codegen_registration.cpp b/test/OpenMP/target_codegen_registration.cpp index c576e9693e..98104aa4fc 100644 --- a/test/OpenMP/target_codegen_registration.cpp +++ b/test/OpenMP/target_codegen_registration.cpp @@ -393,7 +393,7 @@ struct ST { //CHECK: ret void //CHECK: declare i32 @__tgt_unregister_lib([[DSCTY]]*) -//CHECK: define linkonce hidden void @[[REGFN]](i8*) +//CHECK: define linkonce dso_local hidden void @[[REGFN]](i8*) //CHECK-SAME: comdat { //CHECK: call i32 @__tgt_register_lib([[DSCTY]]* [[DESC]]) //CHECK: call i32 @__cxa_atexit(void (i8*)* @[[UNREGFN]], i8* bitcast ([[DSCTY]]* [[DESC]] to i8*), diff --git a/test/OpenMP/target_parallel_codegen_registration.cpp b/test/OpenMP/target_parallel_codegen_registration.cpp index 5b2af0f15c..649a4b50fc 100644 --- a/test/OpenMP/target_parallel_codegen_registration.cpp +++ b/test/OpenMP/target_parallel_codegen_registration.cpp @@ -393,7 +393,7 @@ struct ST { //CHECK: ret void //CHECK: declare i32 @__tgt_unregister_lib([[DSCTY]]*) -//CHECK: define linkonce hidden void @[[REGFN]](i8*) +//CHECK: define linkonce dso_local hidden void @[[REGFN]](i8*) //CHECK-SAME: comdat { //CHECK: call i32 @__tgt_register_lib([[DSCTY]]* [[DESC]]) //CHECK: call i32 @__cxa_atexit(void (i8*)* @[[UNREGFN]], i8* bitcast ([[DSCTY]]* [[DESC]] to i8*), diff --git a/test/OpenMP/target_parallel_for_codegen_registration.cpp b/test/OpenMP/target_parallel_for_codegen_registration.cpp index 6862a61be6..d96fdf07f1 100644 --- a/test/OpenMP/target_parallel_for_codegen_registration.cpp +++ b/test/OpenMP/target_parallel_for_codegen_registration.cpp @@ -402,7 +402,7 @@ struct ST { //CHECK: ret void //CHECK: declare i32 @__tgt_unregister_lib([[DSCTY]]*) -//CHECK: define linkonce hidden void @[[REGFN]](i8*) +//CHECK: define linkonce dso_local hidden void @[[REGFN]](i8*) //CHECK-SAME: comdat { //CHECK: call i32 @__tgt_register_lib([[DSCTY]]* [[DESC]]) //CHECK: call i32 @__cxa_atexit(void (i8*)* @[[UNREGFN]], i8* bitcast ([[DSCTY]]* [[DESC]] to i8*), diff --git a/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp b/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp index 5a29222b95..8db937fc8b 100644 --- a/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp +++ b/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp @@ -402,7 +402,7 @@ struct ST { //CHECK: ret void //CHECK: declare i32 @__tgt_unregister_lib([[DSCTY]]*) -//CHECK: define linkonce hidden void @[[REGFN]](i8*) +//CHECK: define linkonce dso_local hidden void @[[REGFN]](i8*) //CHECK-SAME: comdat { //CHECK: call i32 @__tgt_register_lib([[DSCTY]]* [[DESC]]) //CHECK: call i32 @__cxa_atexit(void (i8*)* @[[UNREGFN]], i8* bitcast ([[DSCTY]]* [[DESC]] to i8*), diff --git a/test/OpenMP/target_simd_codegen_registration.cpp b/test/OpenMP/target_simd_codegen_registration.cpp index 47185ce5b5..627a9a027b 100644 --- a/test/OpenMP/target_simd_codegen_registration.cpp +++ b/test/OpenMP/target_simd_codegen_registration.cpp @@ -402,7 +402,7 @@ struct ST { //CHECK: ret void //CHECK: declare i32 @__tgt_unregister_lib([[DSCTY]]*) -//CHECK: define linkonce hidden void @[[REGFN]](i8*) +//CHECK: define linkonce dso_local hidden void @[[REGFN]](i8*) //CHECK-SAME: comdat { //CHECK: call i32 @__tgt_register_lib([[DSCTY]]* [[DESC]]) //CHECK: call i32 @__cxa_atexit(void (i8*)* @[[UNREGFN]], i8* bitcast ([[DSCTY]]* [[DESC]] to i8*), diff --git a/test/OpenMP/target_teams_codegen_registration.cpp b/test/OpenMP/target_teams_codegen_registration.cpp index 97ebbc6f01..c185074177 100644 --- a/test/OpenMP/target_teams_codegen_registration.cpp +++ b/test/OpenMP/target_teams_codegen_registration.cpp @@ -393,7 +393,7 @@ struct ST { //CHECK: ret void //CHECK: declare i32 @__tgt_unregister_lib([[DSCTY]]*) -//CHECK: define linkonce hidden void @[[REGFN]](i8*) +//CHECK: define linkonce dso_local hidden void @[[REGFN]](i8*) //CHECK-SAME: comdat { //CHECK: call i32 @__tgt_register_lib([[DSCTY]]* [[DESC]]) //CHECK: call i32 @__cxa_atexit(void (i8*)* @[[UNREGFN]], i8* bitcast ([[DSCTY]]* [[DESC]] to i8*), diff --git a/test/OpenMP/target_teams_distribute_codegen_registration.cpp b/test/OpenMP/target_teams_distribute_codegen_registration.cpp index 2b8208cad3..31b18a9ab2 100644 --- a/test/OpenMP/target_teams_distribute_codegen_registration.cpp +++ b/test/OpenMP/target_teams_distribute_codegen_registration.cpp @@ -402,7 +402,7 @@ struct ST { //CHECK: ret void //CHECK: declare i32 @__tgt_unregister_lib([[DSCTY]]*) -//CHECK: define linkonce hidden void @[[REGFN]](i8*) +//CHECK: define linkonce dso_local hidden void @[[REGFN]](i8*) //CHECK-SAME: comdat { //CHECK: call i32 @__tgt_register_lib([[DSCTY]]* [[DESC]]) //CHECK: call i32 @__cxa_atexit(void (i8*)* @[[UNREGFN]], i8* bitcast ([[DSCTY]]* [[DESC]] to i8*), diff --git a/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp b/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp index 9e455b6660..0377ea26b8 100644 --- a/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp +++ b/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp @@ -402,7 +402,7 @@ struct ST { //CHECK: ret void //CHECK: declare i32 @__tgt_unregister_lib([[DSCTY]]*) -//CHECK: define linkonce hidden void @[[REGFN]](i8*) +//CHECK: define linkonce dso_local hidden void @[[REGFN]](i8*) //CHECK-SAME: comdat { //CHECK: call i32 @__tgt_register_lib([[DSCTY]]* [[DESC]]) //CHECK: call i32 @__cxa_atexit(void (i8*)* @[[UNREGFN]], i8* bitcast ([[DSCTY]]* [[DESC]] to i8*), -- 2.40.0