diff options
| author | David Blaikie <dblaikie@gmail.com> | 2017-07-30 22:10:00 +0000 |
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2017-07-30 22:10:00 +0000 |
| commit | 89c81a0b91553529173ef558ee72692341a6b524 (patch) | |
| tree | d9742f39f87ee412d5412e7003177560edfcb026 /libcxx/test/std/utilities/memory | |
| parent | 16a2f5ac8e8a0776ba6a3251e2eb1aeda0adf929 (diff) | |
| download | bcm5719-llvm-89c81a0b91553529173ef558ee72692341a6b524.tar.gz bcm5719-llvm-89c81a0b91553529173ef558ee72692341a6b524.zip | |
DebugInfo: Use base address selection entries in debug_ranges to reduce relocations
(from comments in the test)
Group ranges in a range list that apply to the same section and use a base
address selection entry to reduce the number of relocations to one reloc per
section per range list. DWARF5 debug_rnglist will be more efficient than this
in terms of relocations, but it's still better than one reloc per entry in a
range list.
This is an object/executable size tradeoff - shrinking objects, but growing
the linked executable. In one large binary tested, total object size (not just
debug info) shrank by 16%, entirely relocation entries. Linked executable
grew by 4%. This was with compressed debug info in the objects, uncompressed
in the linked executable. Without compression in the objects, the win would be
smaller (the growth of debug_ranges itself would be more significant).
llvm-svn: 309526
Diffstat (limited to 'libcxx/test/std/utilities/memory')
0 files changed, 0 insertions, 0 deletions

