[llvm] [BOLT] Add an option to remove pseudo probe sections (PR #218662)
Jinjie Huang via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 11 04:19:04 PDT 2026
Jinjie-Huang wrote:
@rafaelauler @aaupov Thanks for the feedback!
> Thanks, I think I understand the flow now. The reason is you're aiming for fresh/zero-gap CSSPGO profile whereas in our usage CSSPGO profile is collected directly from prod post-BOLT binary.
Exactly. This on-demand pipeline aims to grab the freshest CSSPGO+BOLT profile.(need to rely on canary profiling to break the deployment 'deadlock' caused by the 0-gap CSSPGO profile + stale BOLT profile regression).
> > Behind this, there may be an interesting problem worth discussing: for a CSSPGO + BOLT optimization continuous profiling pipeline, iteratively collecting CSSPGO profiles using a post-BOLT binary actually means we need to re-deploy the CSSPGO-optimized version to the production environment to update the BOLT profile as well.
>
> Sorry, I don't follow. You should be able to collect CSSPGO profile from post-BOLT binary.
Yes, we can indeed fetch the CSSPGO profile directly from production. Since we already have an 'on-demand pipeline' in place, we simply chose to build from the baseline (with or without the previous CSSPGO profile) and collect the data from there. But skipping that to save a baseline compilation step is definitely a potential improvement we should look into. (Though, as far as I know, BOLT slightly alters function sizes and other characteristics. This might have a minor impact on llvm-profgen's pre-inlining decisions, which rely on binary size heuristics and else. The context 'seen' by llvm-profgen might not perfectly match the replay context seen by the profile loader pass later. But I suspect the actual impact of this discrepancy is negligible?)
https://github.com/llvm/llvm-project/pull/218662
More information about the llvm-commits
mailing list