We tested the stale profile matching on several Meta's internal services, all results are positive, for instance, in one service that refreshed its profile every one or two weeks, it consistently gave 1~2% performance improvement. We also observed an instance that a trivial refactoring caused a 2% regression and the matching can successfully recover the whole regression. Therefore, we'd like to turn it on by default for CSSPGO.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Thanks for the change. Would be good to call out some rough numbers measured with our internal services.
llvm/lib/Transforms/IPO/SampleProfile.cpp | ||
---|---|---|
2052 | Wrap this under a check of profileIsPseudoProbed? |
llvm/lib/Transforms/IPO/SampleProfile.cpp | ||
---|---|---|
2053 | nit: combine the two ifs. also add a comment why pseudo probe is needed. |
Wrap this under a check of profileIsPseudoProbed?