Name Date Size #Lines LOC

..--

README.mdH A D25-Apr-2025881 1813

benchmark_pgo_profiles.pyH A D25-Apr-20258.1 KiB288221

benchmark_pgo_profiles_test.pyH A D25-Apr-20251.3 KiB5238

create_chroot_and_generate_pgo_profile.pyH A D25-Apr-20257.5 KiB259212

create_chroot_and_generate_pgo_profile_test.pyH A D25-Apr-20252.4 KiB8260

ensure_pgo_is_a_win.pyH A D25-Apr-20252.7 KiB9267

ensure_pgo_is_a_win_test.pyH A D25-Apr-20251.4 KiB5337

generate_pgo_profile.pyH A D25-Apr-202515.1 KiB478348

generate_pgo_profile_test.pyH A D25-Apr-20253.8 KiB11386

pgo_tools.pyH A D25-Apr-20255.2 KiB161114

pgo_tools_test.pyH A D25-Apr-20254.2 KiB10987

update_llvm_manifest.pyH A D25-Apr-20253 KiB10676

README.md

1# pgo_tools
2
3This directory contains scripts used to generate and vet PGO profiles for LLVM.
4
5If you're a Mage who wants to generate a new PGO profile for the llvm-next
6release, `./generate_llvm_next_pgo.py` is what you should run **outside of a
7chroot**. It will create a new chroot, and generate a profile that's
8backwards-compatible with our bootstrap chroot toolchains. This script takes a
9few dozen minutes, and prints an "upload PGO profile" command at the end.
10
11If you're a user who wants to generate a bespoke PGO profile for LLVM,
12`./generate_pgo_profile.py` is what you want. Run it **inside of a chroot**, and
13it will generate a profile for you with a pretty comprehensive, predefined
14workload (building absl's tests for arm32, arm64, and a few x86_64 configs).
15
16If you want to compare the rough performance of PGO profiles,
17`./benchmark_pgo_profiles.py` may be useful.
18