diff options
10 files changed, 12 insertions, 11 deletions
diff --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp index d2ccb33bc2a..9fa173b2e09 100644 --- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp +++ b/clang/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/clang/test/CodeGenCXX/microsoft-abi-static-initializers.cpp b/clang/test/CodeGenCXX/microsoft-abi-static-initializers.cpp index 0b84f07e115..f834c5593d1 100644 --- a/clang/test/CodeGenCXX/microsoft-abi-static-initializers.cpp +++ b/clang/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/clang/test/OpenMP/target_codegen_registration.cpp b/clang/test/OpenMP/target_codegen_registration.cpp index c576e9693e6..98104aa4fc3 100644 --- a/clang/test/OpenMP/target_codegen_registration.cpp +++ b/clang/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/clang/test/OpenMP/target_parallel_codegen_registration.cpp b/clang/test/OpenMP/target_parallel_codegen_registration.cpp index 5b2af0f15c7..649a4b50fc7 100644 --- a/clang/test/OpenMP/target_parallel_codegen_registration.cpp +++ b/clang/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/clang/test/OpenMP/target_parallel_for_codegen_registration.cpp b/clang/test/OpenMP/target_parallel_for_codegen_registration.cpp index 6862a61be61..d96fdf07f1a 100644 --- a/clang/test/OpenMP/target_parallel_for_codegen_registration.cpp +++ b/clang/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/clang/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp b/clang/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp index 5a29222b952..8db937fc8bf 100644 --- a/clang/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp +++ b/clang/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/clang/test/OpenMP/target_simd_codegen_registration.cpp b/clang/test/OpenMP/target_simd_codegen_registration.cpp index 47185ce5b5b..627a9a027b3 100644 --- a/clang/test/OpenMP/target_simd_codegen_registration.cpp +++ b/clang/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/clang/test/OpenMP/target_teams_codegen_registration.cpp b/clang/test/OpenMP/target_teams_codegen_registration.cpp index 97ebbc6f013..c185074177a 100644 --- a/clang/test/OpenMP/target_teams_codegen_registration.cpp +++ b/clang/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/clang/test/OpenMP/target_teams_distribute_codegen_registration.cpp b/clang/test/OpenMP/target_teams_distribute_codegen_registration.cpp index 2b8208cad32..31b18a9ab27 100644 --- a/clang/test/OpenMP/target_teams_distribute_codegen_registration.cpp +++ b/clang/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/clang/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp b/clang/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp index 9e455b66608..0377ea26b83 100644 --- a/clang/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp +++ b/clang/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*), |