llvm-project/llvm/test/DebugInfo
David Blaikie a0e3c75187 DebugInfo: ensure type and namespace names are included in pubnames/pubtypes even when they are only present in type units
While looking to add support for placing singular types (types that will
only be emitted in one place (such as attached to a strong vtable or
explicit template instantiation definition)) not in type units (since
type units have overhead) I stumbled across that change causing an
increase in pubtypes.

Turns out we were missing some types from type units if they were only
referenced from other type units and not from the debug_info section.

This fixes that, following GCC's line of describing the offset of such
entities as the CU die (since there's no compile unit-relative offset
that would describe such an entity - they aren't in the CU). Also like
GCC, this change prefers to describe the type stub within the CU rather
than the "just use the CU offset" fallback where possible. This may give
the DWARF consumer some opportunity to find the extra info in the type
stub - though I'm not sure GDB does anything with this currently.

The size of the pubnames/pubtypes sections now match exactly with or
without type units enabled.

This nearly triples (+189%) the pubtypes section for a clang self-host
and grows pubnames by 0.07% (without compression). For a total of 8%
increase in debug info sections of the objects of a Split DWARF build
when using type units.

llvm-svn: 293971
2017-02-03 00:44:18 +00:00
..
AArch64 Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
ARM Fix an assertion in DwarfExpression when emitting fragments in vector registers 2016-12-22 06:10:41 +00:00
COFF Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
Generic Relax test so that it passes on OS X. 2017-02-02 22:08:25 +00:00
Inputs Refactor the gmlt tests. (NFC) 2017-02-02 01:21:13 +00:00
Lanai [lanai] Add Lanai backend. 2016-03-28 13:09:54 +00:00
MIR [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
Mips Change how we handle section symbols on ELF. 2017-02-02 21:26:06 +00:00
PDB [pdb] Fix failing test 2017-01-25 21:21:02 +00:00
PowerPC Change how we handle section symbols on ELF. 2017-02-02 21:26:06 +00:00
Sparc [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
SystemZ [SystemZ] Save/restore r6 and r7 if function contains landing pad. 2016-06-28 14:13:11 +00:00
WebAssembly Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
X86 DebugInfo: ensure type and namespace names are included in pubnames/pubtypes even when they are only present in type units 2017-02-03 00:44:18 +00:00
arm-relocs.test
debuglineinfo-macho.test
debuglineinfo.test
debugmacinfo.test
dwarfdump-64-bit-dwarf.test
dwarfdump-accel.test Synchronize LLVM and clang's ObjCDeclSpec::ObjCPropertyAttributeKind. 2016-07-14 00:41:18 +00:00
dwarfdump-debug-frame-simple.test
dwarfdump-debug-loc-simple.test
dwarfdump-dump-flags.test
dwarfdump-dump-gdbindex.test Revert r282238 "Revert r282235 "[llvm-dwarfdump] - Teach dwarfdump to dump gdb-index section."" 2016-09-23 11:01:53 +00:00
dwarfdump-dwp.test
dwarfdump-implicit-const.test DebugInfo: support for DW_FORM_implicit_const 2017-01-10 21:18:26 +00:00
dwarfdump-invalid.test
dwarfdump-line-dwo.test
dwarfdump-macho-relocs.test
dwarfdump-macho-universal.test
dwarfdump-objc.test Synchronize LLVM and clang's ObjCDeclSpec::ObjCPropertyAttributeKind. 2016-07-14 00:41:18 +00:00
dwarfdump-pubnames.test
dwarfdump-ranges.test
dwarfdump-type-units.test dwarfdump: -summarize-types: print a short summary (unqualified type name, hash, length) of type units rather than dumping contents 2016-10-18 21:09:48 +00:00
dwarfdump-zlib.test Recommit r270547 ([llvm-dwarfdump] - Teach dwarfdump to decompress debug sections in zlib style.) 2016-05-24 12:48:46 +00:00
dwo.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
llvm-symbolizer-split-dwarf-empty.test Use %T instead of cd'ing to Output directly. 2016-04-23 11:01:36 +00:00
llvm-symbolizer-zlib.test Recommit r270547 ([llvm-dwarfdump] - Teach dwarfdump to decompress debug sections in zlib style.) 2016-05-24 12:48:46 +00:00
llvm-symbolizer.test llvm-symbolizer: prefer .dwo contents over fission-gmlt-like-data when .dwo file is present 2016-04-22 21:32:59 +00:00
macro_link.ll [Debug Info] Added a LIT test that covers the fix committed in rL277290. 2016-08-11 07:22:53 +00:00
member-pointers.o
missing-abstract-variable.o
skeletoncu.ll Unxfail passing tests on Hexagon 2016-08-19 15:07:58 +00:00
strip-DIGlobalVariable.ll Teach llvm::StripDebugInfo() about global variable !dbg attachments. 2016-10-10 17:53:33 +00:00
strip-loop-metadata.ll stripDebugInfo() should remove DILocation's found in !llvm.loop metadata 2017-01-28 11:22:05 +00:00