Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evaluate Profile-Guided Optimization (PGO) and LLVM BOLT #3

Open
zamazan4ik opened this issue Sep 2, 2023 · 1 comment
Open

Evaluate Profile-Guided Optimization (PGO) and LLVM BOLT #3

zamazan4ik opened this issue Sep 2, 2023 · 1 comment

Comments

@zamazan4ik
Copy link

zamazan4ik commented Sep 2, 2023

Hi!

I did a lot of Profile-Guided Optimization (PGO) benchmarks recently on different kinds of software (including many compilers and compiler-like projects like Clang, Rustc, Clangd, clang-tidy, etc.) - all currently available results are located at https://github.com/zamazan4ik/awesome-pgo . According to the tests, PGO usually helps a lot for compiler-like workloads. That's why I think testing PGO would be a good idea for Redpen.

I can suggest to do the following things:

  • Evaluate PGO on Redpen
  • If it benefits Redpen - add a note to the Redpen documentation about building with PGO. In this case, users and maintainers who build their own Redpen binaries will be aware of PGO as an additional way to optimize the project
  • Optimize provided by Redpen project binaries on the CI (like it's already done for other projects like Rustc), if any
  • After that, I suggest trying to apply LLVM BOLT as an additional post-PGO step. Rustc already does it on some platforms

For the Rust projects, I suggest PGO optimizing with cargo-pgo.

I understand that the project is in the early stages of development. So just consider the issue just an idea for the possible future improvements.

@estebank
Copy link
Owner

estebank commented Sep 2, 2023

This is a great idea and I'll keep it in mind. Thank you for taking the time to document it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants