summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2015-12-21 02:37:23 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2015-12-21 02:37:23 +0000
commit9ec6a826dd31acf3b505089e051317c454d53852 (patch)
tree544e851e1a7669f0d45a9cdaf8a400c43b86c46c /llvm/lib
parentecba4c3d0b49c08264c8c9ed2cfa4ea513e60c09 (diff)
downloadbcm5719-llvm-9ec6a826dd31acf3b505089e051317c454d53852.tar.gz
bcm5719-llvm-9ec6a826dd31acf3b505089e051317c454d53852.zip
[Cygwin] Enable TLS as emutls.
It resolves clang selfhosting with std::once() for Cygwin. FIXME: It may be EmulatedTLS-generic also for X86-Android. FIXME: Pass EmulatedTLS to LLVM CodeGen from Clang with -femulated-tls. llvm-svn: 256134
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 241d8bb45c8..d2a20a1dde7 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -12258,6 +12258,12 @@ SDValue
X86TargetLowering::LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const {
GlobalAddressSDNode *GA = cast<GlobalAddressSDNode>(Op);
+
+ // Cygwin uses emutls.
+ // FIXME: It may be EmulatedTLS-generic also for X86-Android.
+ if (Subtarget->isTargetWindowsCygwin())
+ return LowerToTLSEmulatedModel(GA, DAG);
+
const GlobalValue *GV = GA->getGlobal();
auto PtrVT = getPointerTy(DAG.getDataLayout());
OpenPOWER on IntegriCloud