Google engineers have proposed integrating the Propeller tool into LLVM’s main codebase. Propeller is a profile-guided optimizer that accelerates large applications by re-optimizing the layout and relationships between a program’s components.
Propeller has been under development for several years. Built atop LLVM, it enables whole-program optimization across the entire codebase. Google has already deployed Propeller in conjunction with AutoFDO when building the Linux kernel, achieving performance gains of 5 to 10 percent.
An engineer from Google’s compiler team published the proposal on the LLVM Discourse forum. As outlined in the document, Propeller boosts application performance through precise placement of functions and basic blocks. Some of the necessary infrastructure for Propeller already exists within LLVM, including support in the Clang compiler and the LLD linker. However, the critical tool for generating profiles still resides in a separate Google-maintained repository.
At present, using Propeller requires interacting with this external repository, which adds friction to the workflow. Integrating the tool into the main LLVM tree would allow it to be distributed alongside standard utilities, significantly simplifying adoption for developers. According to the proposal’s authors, Propeller employs a relinking-based approach that scales well for distributed and incremental builds. The tool is positioned as an alternative to binary rewriting frameworks such as BOLT.