Implement the local-dynamic TLS model for x86 (PR3985)
authorHans Wennborg <hans@hanshq.net>
Fri, 1 Jun 2012 16:27:21 +0000 (16:27 +0000)
committerHans Wennborg <hans@hanshq.net>
Fri, 1 Jun 2012 16:27:21 +0000 (16:27 +0000)
commitf0234fcbc9be9798c10dedc3e3c134b7afbc6511
tree58aa8ee7a2be4159fbbbfe5085f56ea7eee31b1e
parent6bb5c0074dc4cede2ad8efd420ec91288f91b012
Implement the local-dynamic TLS model for x86 (PR3985)

This implements codegen support for accesses to thread-local variables
using the local-dynamic model, and adds a clean-up pass so that the base
address for the TLS block can be re-used between local-dynamic access on
an execution path.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157818 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
lib/Target/X86/MCTargetDesc/X86BaseInfo.h
lib/Target/X86/X86.h
lib/Target/X86/X86AsmPrinter.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86InstrCompiler.td
lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86MCInstLower.cpp
lib/Target/X86/X86MachineFunctionInfo.h
lib/Target/X86/X86TargetMachine.cpp
test/CodeGen/X86/tls-local-dynamic.ll [new file with mode: 0644]
test/CodeGen/X86/tls-pic.ll