[LPM] Remove a PPC64 hack to try to work around a bad interaction
authorChandler Carruth <chandlerc@gmail.com>
Thu, 29 Jan 2015 23:26:37 +0000 (23:26 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 29 Jan 2015 23:26:37 +0000 (23:26 +0000)
between the linker's TLS optimizations and Clang's TLS code generation.

For now, Clang has been changed to disable linker TLS optimizations
until it (and LLVM more generally) are emitting TLS code sequences
compatible with the old bugs found in the linkers. That's a better fix
to handle bootstrapping on that platform.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227511 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/Compiler.h

index f1d30248a17de0acb1b60a40ff0165919229d325..77e442b581da175d8405f55257418a3cd92fb57a 100644 (file)
 #elif defined(_MSC_VER)
 // MSVC supports this with a __declspec.
 #define LLVM_THREAD_LOCAL __declspec(thread)
-#elif defined(__clang__) && defined(__powerpc64__)
-// Clang, GCC, and all compatible compilers tend to use __thread. But we need
-// to work aronud a bug in the combination of Clang's compilation of
-// global-dynamic and local-dynamic TLS and the ppc64 linker relocations which
-// we do by forcing initial-exec. While that mode isn't strictly sufficient for
-// all possible DSO use cases, it will usually work with glibc.
-// FIXME: Make this conditional on the Clang version once this is fixed in
-// top-of-tree.
-#define LLVM_THREAD_LOCAL __thread __attribute__((tls_model("initial-exec")))
 #else
+// Clang, GCC, and other compatible compilers used __thread prior to C++11 and
+// we only need the restricted functionality that provides.
 #define LLVM_THREAD_LOCAL __thread
 #endif
 #else // !LLVM_ENABLE_THREADS