llvm/test/DebugInfo
Chih-Hung Hsieh dc73dc09f1 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243438 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-28 16:24:05 +00:00
..
AArch64 Don't use %llc_dwarf for target-specific tests. 2015-06-27 21:11:43 +00:00
ARM Implement target independent TLS compatible with glibc's emutls.c. 2015-07-28 16:24:05 +00:00
COFF [CodeView] Add support for emitting column information 2015-07-09 00:19:51 +00:00
Inputs Revert "[Object, ELF] Fix segmentation fault in ELFFile::getSectionName()." 2015-06-04 23:58:31 +00:00
Mips DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
PDB [llvm-pdbdump] Display full enum definitions. 2015-03-04 06:09:53 +00:00
PowerPC IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Sparc IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
SystemZ Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
X86 Implement target independent TLS compatible with glibc's emutls.c. 2015-07-28 16:24:05 +00:00
2009-10-16-Phi.ll
2009-11-03-InsertExtractValue.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
2009-11-05-DeadGlobalVariable.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
2009-11-06-NamelessGlobalVariable.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
2009-11-10-CurrentFn.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
2010-01-05-DbgScope.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
2010-03-12-llc-crash.ll DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
2010-03-19-DbgDeclare.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
2010-03-24-MemberFn.ll DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
2010-04-06-NestedFnDbgInfo.ll DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
2010-04-19-FramePtr.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
2010-05-03-DisableFramePtr.ll DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
2010-05-03-OriginDIE.ll DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
2010-05-10-MultipleCU.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
2010-06-29-InlinedFnLocalVar.ll DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
2010-07-19-Crash.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
2010-10-01-crash.ll DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
accel-table-hash-collisions.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
arm-relocs.test
array.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
block-asan.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
bug_null_debuginfo.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
constant-pointers.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
constant-sdnodes-have-dbg-location.ll [DebugInfo] Debug locations for constant SD nodes 2015-05-13 08:58:03 +00:00
constantfp-sdnodes-have-dbg-location.ll [DebugInfo] Debug locations for constant SD nodes 2015-05-13 08:58:03 +00:00
cross-cu-inlining.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
cross-cu-linkonce-distinct.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
cross-cu-linkonce.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
cu-range-hole.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
cu-ranges.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
dead-argument-order.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
debug-info-always-inline.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
debug-info-qualifiers.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
debuginfofinder-forward-declaration.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
debuginfofinder-multiple-cu.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
debuglineinfo-macho.test [DWARF] Fix a bug in line info handling 2015-05-31 23:37:04 +00:00
debuglineinfo.test [DWARF] Fix a bug in line info handling 2015-05-31 23:37:04 +00:00
dwarf-public-names.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
dwarfdump-64-bit-dwarf.test DebugInfo: .debug_line DWARF64 support 2015-05-28 15:38:17 +00:00
dwarfdump-accel.test
dwarfdump-debug-frame-simple.test
dwarfdump-debug-loc-simple.test
dwarfdump-dump-flags.test
dwarfdump-invalid.test Make llvm-dwarfdump exit with non-zero exit code if error was occured. 2015-06-25 23:40:15 +00:00
dwarfdump-line-dwo.test
dwarfdump-objc.test
dwarfdump-pubnames.test
dwarfdump-ranges.test
dwarfdump-type-units.test
dwarfdump-zlib.test
empty.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
enum-types.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
enum.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
global.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
gmlt.test
incorrect-variable-debugloc1.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
incorrect-variable-debugloc.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
inheritance.ll DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
inline-debug-info-multiret.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
inline-debug-info.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
inline-no-debug-info.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
inline-scopes.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
inlined-arguments.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
inlined-vars.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
llvm-symbolizer-zlib.test
llvm-symbolizer.test
location-verifier.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
lto-comp-dir.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
member-order.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
member-pointers.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
member-pointers.o
missing-abstract-variable.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
missing-abstract-variable.o
multiline.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
namespace_function_definition.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
namespace_inline_function_definition.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
namespace.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
nodebug.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
piece-verifier.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
PR20038.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
restrict.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
sugared-constants.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
template-recursive-void.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
tu-composite.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
tu-member-pointer.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
two-cus-from-same-file.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
typedef.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
unconditional-branch.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
varargs.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
version.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00