BOLT Close To Merging Into LLVM For Optimizing Performance Of Binaries
Going on for the past several years has been Facebook's BOLT to speed-up Linux binaries by collecting an execution profile for large applications/binaries and then BOLT optimizes the code layout of the binary.
Facebook has found very promising results with BOLT and have been using it within their production environment. They have been offering it as a new LLVM sub-project and exploring new areas like using BOLT to speed-up the Linux kernel and other very large, very real-world applications.
BOLT by itself can provide greater speed-ups than other common compiler optimization techniques like profile-guided optimizations (PGO) and link-time optimizations (LTO), or they can be combined with BOLT for really ensuring maximum performance.
They have been working towards upstreaming it into the LLVM mono repository and given recent mailing list discussions it looks like they could soon cross that threshold. Currently the developers are still discussing the logistics for around how this large addition should land given its long history and spread across many commits.
See this mailing list thread for the latest BOLT discussions for landing it. Next year's LLVM 14 release is looking mighty interesting if both BOLT and the SPIR-V back-end manage to land in time as well as seeing more performance optimizations and other features. With the Linux kernel now in great shape for building with Clang, great performance on both x86_64 and AArch64, and other milestomnes being met, it will be interesting to see if any more Linux distributions decide to move to this GCC alternative as their default system compiler in 2022.