On Mon, Jul 29, 2024 at 2:53 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > On Sun, Jul 28, 2024 at 01:29:59PM -0700, Rong Xu wrote: > > Add the build support for using Clang's Propeller optimizer. Like > > AutoFDO, Propeller uses hardware sampling to gather information > > about the frequency of execution of different code paths within a > > binary. This information is then used to guide the compiler's > > optimization decisions, resulting in a more efficient binary. > > > > The support requires a Clang compiler LLVM 19 or later, and the > > create_llvm_prof tool > > (https://github.com/google/autofdo/releases/tag/v0.30.1). This > > What's the relation between this and llvm-profgen? Is the above simply > a google 'internal' proof of concept thing that will eventually make its > way into llvm-profgen? > > It seems a bit weird LLVM landed propeller without the required profile > generation tool. AutoFDO historically required a third-party tool (create_llvm_prof, mentioned above) in Clang. AutoFDO in GCC also requires this tool (same source, different name). llvm-profgen is a relatively new tool that was integrated directly into LLVM (similar purpose, but different implementation). AutoFDO and create_llvm_prof are not "proof of concept". They have been widely used in Google for many years. Propeller currently uses create_llvm_prof as the profile converting tool. But there is an effort to move to LLVM.