tree: d65b6afa62c2a299ec2c586efdd2bcf599ef423d [path history] [tgz]
  1. benchmark_pgo_profiles.py
  2. benchmark_pgo_profiles_test.py
  3. create_chroot_and_generate_pgo_profile.py
  4. create_chroot_and_generate_pgo_profile_test.py
  5. ensure_pgo_is_a_win.py
  6. ensure_pgo_is_a_win_test.py
  7. generate_pgo_profile.py
  8. generate_pgo_profile_test.py
  9. pgo_utils.py
  10. pgo_utils_test.py
  11. README.md
pgo_tools/README.md

pgo_tools

This directory contains scripts used to generate and vet PGO profiles for LLVM.

If you‘re a Mage who wants to generate a new PGO profile for the llvm-next release, ./generate_llvm_next_pgo.py is what you should run outside of a chroot. It will create a new chroot, and generate a profile that’s backwards-compatible with our bootstrap chroot toolchains. This script takes a few dozen minutes, and prints an “upload PGO profile” command at the end.

If you‘re a user who wants to generate a bespoke PGO profile for LLVM, ./generate_pgo_profile.py is what you want. Run it inside of a chroot, and it will generate a profile for you with a pretty comprehensive, predefined workload (building absl’s tests for arm32, arm64, and a few x86_64 configs).

If you want to compare the rough performance of PGO profiles, ./benchmark_pgo_profiles.py may be useful.