1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
llvm-mirror/lib
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
..
Analysis [ThinLTO] Add an auto-hide feature 2017-02-03 00:32:38 +00:00
AsmParser Change debug-info-for-profiling from a TargetOption to a function attribute. 2017-02-01 22:45:09 +00:00
Bitcode [ThinLTO] Add an auto-hide feature 2017-02-03 00:32:38 +00:00
CodeGen 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
DebugInfo Re-submit r293820: Return Error instead of bool from mergeTypeStreams(). 2017-02-02 00:47:10 +00:00
Demangle Add support for demangling C++11 thread_local variables. 2017-01-31 15:56:36 +00:00
ExecutionEngine RuntimeDyldELF: Don't abort on R_X86_64_NONE, it's a no-oop. 2017-01-28 18:39:01 +00:00
Fuzzer [libFuzzer] reorganize the tracing code to make it easier to experiment with inlined coverage instrumentation. NFC 2017-02-02 19:56:01 +00:00
IR [LV] Also port failure remarks to new OptimizationRemarkEmitter API 2017-02-02 05:41:51 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LibDriver LibDriver: Allow resource files to be archive members. 2016-12-15 19:37:46 +00:00
LineEditor
Linker Linker: Move special casing for available_externally in IRMover to clients. NFCI. 2017-02-02 05:12:15 +00:00
LTO [ThinLTO] Add an auto-hide feature 2017-02-03 00:32:38 +00:00
MC Change how we handle section symbols on ELF. 2017-02-02 21:26:06 +00:00
Object [WebAssembly] Add wasm support for llvm-readobj 2017-01-30 23:30:52 +00:00
ObjectYAML Make this file clang-format friendly and clang-format it. 2017-01-31 21:11:12 +00:00
Option Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
Passes [PM] Port LoopLoadElimination to the new pass manager and wire it into 2017-01-27 01:32:26 +00:00
ProfileData Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
Support Fix LLDB Android AArch64 GCC debug info build 2017-02-02 01:17:49 +00:00
TableGen Use print() instead of dump() in code 2017-01-28 02:47:46 +00:00
Target [X86] Mark 256-bit and 512-bit INSERT_SUBVECTOR operations as legal and remove the custom lowering. 2017-02-03 00:24:49 +00:00
Transforms [ThinLTO] Add an auto-hide feature 2017-02-03 00:32:38 +00:00
XRay [XRay] Define the InstrumentationMap type 2017-02-01 00:05:29 +00:00
CMakeLists.txt [XRay] Define the library for XRay trace logs 2017-01-11 06:39:09 +00:00
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00