In general is the usage of PGO/AUTOFDO/BOLT a good performance optimization.
For example, firefox/firedragon/... are all compiled with PGO + LTO which gives around a 30 % better Performance. So, since you need minimum one compile for the profile itself (ProfileGuidedOptimization) you need one more compile with using the profile at compiling xyz.
It depends much on which application you want to do this.
- How big will be performance increase ?
- If i need to compile xyz 3 times longer for 2-5% performance more it does not really worth it
Next thing is, is the compiled code really cleaner and has less heatmaps then before needs to be tested also.
For toolchains creating a multi stage llvm compiler and also bolting it, is definitly worth since your compile times will be 30 - 50 percent better, which is a huge improvement.
But you dont know how the compiler will compile the other "new" of application xyz.
Everything needs to be tested.
Next example, the llvm compiler from amd --> AOCC.
It compiles much slower the kernel, but it gives maybe a cleaner code. Needs also to be tested. Tools like perf are used for this.
People like compiling all stuff with -Ofast is completely retarded.
Don't waste your time to much in compiling stuff with PGO.