LLVM's LLD Linker Gets Faster Performance (Parallelized ICF)

Written by Michael Larabel in LLVM on 5 December 2016 at 06:17 AM EST. 7 Comments
LLVM
As pointed out by this week's LLVM Weekly, the LLVM Linker (LLD) received a rather nice performance optimization this past week.

LLD's Identical Code Folding (ICF) optimization is now parallelized. ICF is about identifying multiple functions with the same contents and merging them together, in order to save space in the binary.

LLD's ICF pass on Chromium previously took 7.9 seconds and now it's down to 1.06 seconds. LLD is now able to link a Chromium binary with ICF enabled in 10.28 seconds compared to 40.94 seconds with the GNU Gold linker. Details via this review.

When the parallel ICF was ported to COFF, it's a big win too with LLD formerly taking 11.73 seconds to link Clang while now it's down to 6.94 seconds while Microsoft MSVC link takes 83 seconds.

Quite the win now when using LLD with ICF enabled. This though is just one of many improvements LLD has been working on recently, as well as considering multi-threading by default and other optimizations as LLD becomes a suitable, production-ready linker alternative.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week