[llvm-dev] Why the binary size in trunk are smaller significantly?

Jeremy Morse via llvm-dev llvm-dev at lists.llvm.org
Tue Mar 30 03:33:41 PDT 2021


Hi Chuanqi,

On Tue, Mar 30, 2021 at 9:47 AM chuanqi.xcq via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> In a private code bases, I find that the binary size produced in llvm-11 is 60M while the size produced in trunk is 51M.
>
> I tried to find the patch who made this change in git log or in phabricator by keywords like `reduce`, 'size' or 'binary'. But I find nothing.

Interesting -- which sections reduce in size between llvm-11 and
trunk? Assuming you're using ELF/DWARF binaries, `readelf -W -S` will
give you sections and sizes.

Since llvm-11 branched, there were some patches [0] that improved how
variable locations are represented in DWARF, I've seen some binaries
where that reduced file size by 10%. That would be reflected in the
.debug_loc section. There's also the constructor homing flag, passed
to clang with "-Xclang -fuse-ctor-homing", I'm not sure whether it's
on by default in trunk. That would show a significant reduction in the
.debug_info section.

[0] https://reviews.llvm.org/rG0b5a8050ea39355a3876cc6bba9383d91e224e1f

--
Thanks,
Jeremy


More information about the llvm-dev mailing list