[llvm-dev] Default compression level for -compress-debug-info=zlib?

Rui Ueyama via llvm-dev llvm-dev at lists.llvm.org
Wed Aug 1 17:57:17 PDT 2018


Folks,

I'd like to get expert's opinion on which compression level is suitable for
lld's -compress-debug-section=zlib option, which let the linker compress
.debug_* sections using zlib.

Currently, lld uses compression level 9 which produces the smallest output
in exchange for a longer link time. My question is, is this what people
actually want? We didn't consciously choose compression level 9. That was
just the default compression level for zlib::compress function.

For an experiment, I created a patch to use compression level 1 instead of
9 and linked clang using that modified lld. By default, lld takes 1m4s to
link clang with --compress-debug-sections=zlib. With that patch, it took
only 31s.

Here is a comparison of clang executable size with various configurations:

no debug sections:    275 MB
level 9 compression:  855 MB
level 1 compression:  922 MB
no compression:      2044 MB

Given that the best compression takes significantly longer time than the
fastest compression, we probably should change the default to level 1. Any
objections?

I wonder what is the best compression level when -O2 is passed to lld. We
could use level 9 when -O2 is passed, but is there any reason to compress
debug sections that hard in the first place?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180801/7c57e5c0/attachment.html>


More information about the llvm-dev mailing list