[PATCH] D18706: [DWARF] Force a linkage_name on an inlined subprogram's abstract origin

Paul Robinson via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 4 15:34:20 PDT 2016


probinson added a comment.

Built Clang with Clang 3 times: linkage names Enabled, linkage names Disabled but with the patch, linkage names Disabled without the patch (aka: all names, some names, no names).
'all names' and 'no names' are the options we have today; this patch replaces 'no names' with 'some names.'

Total ELF size of 'all names' is 11.2% larger than 'no names'; sum of all .debug_* sections is 11.9% larger.
Total ELF size of 'some names' is 0.6% larger than 'no names'; sum of all .debug_* sections is 0.6% larger.
The bulk of the difference obviously in .debug_str, with some in .debug_info and .debug_abbrev.

(Debug info turns out to be about 95% of the total ELF size, without LTO or .debug_types or any other deduplication; hence the ELF and .debug_* percentages are naturally very similar.)

A size cost of <1% seems pretty reasonable here.


http://reviews.llvm.org/D18706





More information about the llvm-commits mailing list