Go to file
Chih-Hung Hsieh 1e859582d6 Implement target independent TLS compatible with glibc's emutls.c.
The 'common' section TLS is not implemented.
Current C/C++ TLS variables are not placed in common section.
DWARF debug info to get the address of TLS variables is not generated yet.

clang and driver changes in http://reviews.llvm.org/D10524

  Added -femulated-tls flag to select the emulated TLS model,
  which will be used for old targets like Android that do not
  support ELF TLS models.

Added TargetLowering::LowerToTLSEmulatedModel as a target-independent
function to convert a SDNode of TLS variable address to a function call
to __emutls_get_address.

Added into lib/Target/*/*ISelLowering.cpp to call LowerToTLSEmulatedModel
for TLSModel::Emulated. Although all targets supporting ELF TLS models are
enhanced, emulated TLS model has been tested only for Android ELF targets.
Modified AsmPrinter.cpp to print the emutls_v.* and emutls_t.* variables for
emulated TLS variables.
Modified DwarfCompileUnit.cpp to skip some DIE for emulated TLS variabls.

TODO: Add proper DIE for emulated TLS variables.
      Added new unit tests with emulated TLS.

Differential Revision: http://reviews.llvm.org/D10522

llvm-svn: 243438
2015-07-28 16:24:05 +00:00
clang Getting rid of old iterator loops 2015-07-28 16:10:58 +00:00
clang-tools-extra misc-unused-parameters: Only remove parameters in the main source file. 2015-07-28 13:19:12 +00:00
compiler-rt Fix typo from r243418. Should fix the failing `abort_on_error.cc` test. 2015-07-28 15:43:45 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Fix double implementation of log 2015-07-24 18:07:14 +00:00
libcxx Consolidate a bunch of #ifdef _LIBCPP_NO_EXCEPTIONS .. #endif blocks into a single template function. NFC 2015-07-28 13:30:47 +00:00
libcxxabi [libcxxabi] Add -funwind-tables to the test compilation options. 2015-07-27 18:20:17 +00:00
libunwind [libunwind] Flip order of extern "C" and attribute(visibility) 2015-07-24 19:29:05 +00:00
lld COFF: Update README to mention that it now supports 32-bit x86. 2015-07-28 03:40:58 +00:00
lldb Update xcode for r243427 2015-07-28 16:11:12 +00:00
llgo [llgo] build llgoi by default 2015-07-21 00:47:18 +00:00
llvm Implement target independent TLS compatible with glibc's emutls.c. 2015-07-28 16:24:05 +00:00
openmp Update Build_With_CMake.txt to reflect changes in CMake refactor 2015-07-27 16:23:42 +00:00
polly Keep track of ScopArrayInfo objects that model PHI node storage 2015-07-28 14:53:44 +00:00