[PATCH] D43990: set dso_local on tls init functions

2018-03-07 Thread Rafael Avila de Espindola via Phabricator via cfe-commits
espindola closed this revision.
espindola added a comment.

r326961


https://reviews.llvm.org/D43990



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D43990: set dso_local on tls init functions

2018-03-07 Thread Reid Kleckner via Phabricator via cfe-commits
rnk accepted this revision.
rnk added a comment.
This revision is now accepted and ready to land.

I think Richard has been really busy preparing for some C++ committee function. 
I think we should go forward with this.


https://reviews.llvm.org/D43990



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D43990: set dso_local on tls init functions

2018-03-07 Thread Rafael Avila de Espindola via Phabricator via cfe-commits
espindola added a comment.

Richard, you added the setVisibility line, are you OK with the change?


https://reviews.llvm.org/D43990



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D43990: set dso_local on tls init functions

2018-03-01 Thread Rafael Avila de Espindola via Phabricator via cfe-commits
espindola created this revision.
espindola added a reviewer: echristo.

We copy the visibility, so copying the dso_local flag seems the natural thing 
to do.


https://reviews.llvm.org/D43990

Files:
  lib/CodeGen/ItaniumCXXABI.cpp
  test/CodeGenCXX/runtime-dllstorage.cpp


Index: test/CodeGenCXX/runtime-dllstorage.cpp
===
--- test/CodeGenCXX/runtime-dllstorage.cpp
+++ test/CodeGenCXX/runtime-dllstorage.cpp
@@ -114,6 +114,7 @@
 // CHECK-MS-DAG: declare void @_Init_thread_header(i32*)
 // CHECK-MS-DAG: declare void @_Init_thread_footer(i32*)
 
+// CHECK-IA-DAG: @_ZTH1t = dso_local alias void (), void ()* @__tls_init
 // CHECK-IA-DAG: declare i32 @__gxx_personality_v0(...)
 // CHECK-IA-DAG: define linkonce_odr hidden void @__clang_call_terminate(i8*)
 
Index: lib/CodeGen/ItaniumCXXABI.cpp
===
--- lib/CodeGen/ItaniumCXXABI.cpp
+++ lib/CodeGen/ItaniumCXXABI.cpp
@@ -2399,8 +2399,10 @@
   CGM.SetLLVMFunctionAttributes(nullptr, FI, cast(Init));
 }
 
-if (Init)
+if (Init) {
   Init->setVisibility(Var->getVisibility());
+  Init->setDSOLocal(Var->isDSOLocal());
+}
 
 llvm::LLVMContext  = CGM.getModule().getContext();
 llvm::BasicBlock *Entry = llvm::BasicBlock::Create(Context, "", Wrapper);


Index: test/CodeGenCXX/runtime-dllstorage.cpp
===
--- test/CodeGenCXX/runtime-dllstorage.cpp
+++ test/CodeGenCXX/runtime-dllstorage.cpp
@@ -114,6 +114,7 @@
 // CHECK-MS-DAG: declare void @_Init_thread_header(i32*)
 // CHECK-MS-DAG: declare void @_Init_thread_footer(i32*)
 
+// CHECK-IA-DAG: @_ZTH1t = dso_local alias void (), void ()* @__tls_init
 // CHECK-IA-DAG: declare i32 @__gxx_personality_v0(...)
 // CHECK-IA-DAG: define linkonce_odr hidden void @__clang_call_terminate(i8*)
 
Index: lib/CodeGen/ItaniumCXXABI.cpp
===
--- lib/CodeGen/ItaniumCXXABI.cpp
+++ lib/CodeGen/ItaniumCXXABI.cpp
@@ -2399,8 +2399,10 @@
   CGM.SetLLVMFunctionAttributes(nullptr, FI, cast(Init));
 }
 
-if (Init)
+if (Init) {
   Init->setVisibility(Var->getVisibility());
+  Init->setDSOLocal(Var->isDSOLocal());
+}
 
 llvm::LLVMContext  = CGM.getModule().getContext();
 llvm::BasicBlock *Entry = llvm::BasicBlock::Create(Context, "", Wrapper);
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits