diff options
| author | NAKAMURA Takumi <geek4civic@gmail.com> | 2015-12-21 02:37:23 +0000 |
|---|---|---|
| committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2015-12-21 02:37:23 +0000 |
| commit | 9ec6a826dd31acf3b505089e051317c454d53852 (patch) | |
| tree | 544e851e1a7669f0d45a9cdaf8a400c43b86c46c /llvm/lib | |
| parent | ecba4c3d0b49c08264c8c9ed2cfa4ea513e60c09 (diff) | |
| download | bcm5719-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.cpp | 6 |
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()); |

