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

boulder: Add optional -fsplit-machine-functions tuning flag for PGO optimize builds #362

Open
joebonrichie opened this issue Oct 12, 2024 · 0 comments

Comments

@joebonrichie
Copy link
Contributor

https://discourse.llvm.org/t/rfc-machine-function-splitter-split-out-cold-blocks-from-machine-functions-using-profile-data/56093

Split machine functions is an optional flag that reorders functions based off their "hotness" within the profile; similarly to BOLT.

It it generally at the cost of larger binaries for a couple of extra percent performance improvement.

For small binaries it is unlikely to do anything but is recommended to try out for mid to large packages when PGO is used.

It must be disabled if using BOLT as the options conflict and BOLT will generally do a better job of it.

Why not just use BOLT? : BOLT still doesn't work on all binaries, BOLT sometimes produces worse performance on mid-size and small binaries, BOLT can balloon the binary size if the reordered .text section doesn't fit in the original .text section (-use-old-text), BOLT introduces an extra profiling step within the build and is fiddly to use.

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

1 participant