1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib/CodeGen/AsmPrinter
David Blaikie 75e64d5564 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
..
AddressPool.cpp
AddressPool.h
ARMException.cpp PR 31534: When emitting both DWARF unwind tables and debug information, 2017-01-05 20:55:28 +00:00
AsmPrinter.cpp [mips] Fix debug information for __thread variable 2017-01-20 17:53:30 +00:00
AsmPrinterDwarf.cpp Reapply "[CodeGen] Fix invalid DWARF info on Win64" 2017-01-02 03:00:19 +00:00
AsmPrinterHandler.h
AsmPrinterInlineAsm.cpp MC: support passing search paths to the IAS 2017-01-05 05:56:39 +00:00
ByteStreamer.h
CMakeLists.txt [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
CodeViewDebug.cpp [CodeView] Finish decoupling TypeDatabase from TypeDumper. 2017-01-11 23:24:22 +00:00
CodeViewDebug.h Move VariableDbgInfo from MachineModuleInfo to MachineFunction 2016-11-30 23:48:50 +00:00
DbgValueHistoryCalculator.cpp CodeGen: Give MachineBasicBlock::reverse_iterator a handle to the current MI 2016-09-11 18:51:28 +00:00
DbgValueHistoryCalculator.h
DebugHandlerBase.cpp Refactor the DIExpression fragment query interface (NFC) 2016-12-22 05:27:12 +00:00
DebugHandlerBase.h Recommit r288212: Emit 'no line' information for interesting 'orphan' instructions. 2016-12-12 20:49:11 +00:00
DebugLocEntry.h Use print() instead of dump() in code 2017-01-28 06:53:55 +00:00
DebugLocStream.cpp
DebugLocStream.h
DIE.cpp Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
DIEHash.cpp Make a DWARF generator so we can unit test DWARF APIs with gtest. 2016-12-08 01:03:48 +00:00
DIEHash.h
DwarfAccelTable.cpp This change removes the dependency on DwarfDebug that was used for DW_FORM_ref_addr by making a new DIEUnit class in DIE.cpp. 2016-12-01 18:56:29 +00:00
DwarfAccelTable.h Remove LLVM_CONSTEXPR. 2016-10-23 19:39:16 +00:00
DwarfCFIException.cpp PR 31534: When emitting both DWARF unwind tables and debug information, 2017-01-05 20:55:28 +00:00
DwarfCompileUnit.cpp 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
DwarfCompileUnit.h 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
DwarfDebug.cpp 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
DwarfDebug.h DebugInfo: Address non-deterministic output (iterating a SmallPtrSet) in 289697 2016-12-15 23:37:38 +00:00
DwarfException.h Emit .cfi_sections before the first .cfi_startproc 2017-01-02 18:05:27 +00:00
DwarfExpression.cpp DebugInfo: remove unused parameter from function. NFC. 2017-01-25 20:58:07 +00:00
DwarfExpression.h DebugInfo: remove unused parameter from function. NFC. 2017-01-25 20:58:07 +00:00
DwarfFile.cpp Make a DWARF generator so we can unit test DWARF APIs with gtest. 2016-12-08 01:03:48 +00:00
DwarfFile.h Make a DWARF generator so we can unit test DWARF APIs with gtest. 2016-12-08 01:03:48 +00:00
DwarfStringPool.cpp
DwarfStringPool.h
DwarfUnit.cpp 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
DwarfUnit.h 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
EHStreamer.cpp Move most EH from MachineModuleInfo to MachineFunction 2016-12-01 19:32:15 +00:00
EHStreamer.h
ErlangGCPrinter.cpp
LLVMBuild.txt Prune unused libdeps. 2016-12-08 15:28:02 +00:00
OcamlGCPrinter.cpp
WinException.cpp [WinEH] Don't assume endFunction is called while in .text 2016-12-28 19:05:12 +00:00
WinException.h [WinEH] Don't assume endFunction is called while in .text 2016-12-28 19:05:12 +00:00