-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
Include llvm-profgen in llvm-tools component #155525
Copy link
Copy link
Open
Labels
A-llvm-bintoolsArea: LLVM bintools (`llvm-nm` et.). Note that `llvm-tools{,-preview` has no stability guarantees.Area: LLVM bintools (`llvm-nm` et.). Note that `llvm-tools{,-preview` has no stability guarantees.C-feature-requestCategory: A feature request, i.e: not implemented / a PR.Category: A feature request, i.e: not implemented / a PR.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
A-llvm-bintoolsArea: LLVM bintools (`llvm-nm` et.). Note that `llvm-tools{,-preview` has no stability guarantees.Area: LLVM bintools (`llvm-nm` et.). Note that `llvm-tools{,-preview` has no stability guarantees.C-feature-requestCategory: A feature request, i.e: not implemented / a PR.Category: A feature request, i.e: not implemented / a PR.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Hi!
I want to propose adding a llvm-profgen tool to the
llvm-toolscomponent with motivation to simplify Sampling PGO (SPGO) scenarios for the Rust ecosystem. As a part of the #117023 issue, I want to make as easy as possible SPGO scenarios for Rust users since SPGO resolves some critical issues with Instrumentation PGO (like runtime overhead) that limits PGO adoption in the ecosystem.Having this tool as a part of
llvm-tools(orllvm-tools-preview- I am not sure about a difference between them) simplifies downloading the tool for Rust users. This tool is pretty small so it will not bloat the component a lot. Alternative approches (from Clang docs) like AutoFDO set of tools are too hard to ship propeply since AutoFDO usually lags behind actual LLVM for several versions, requires applying patches for fixing builds with the latest LLVM, etc.llvm-profgendoesn't have such a limitation and is more LLVM-friendly (since it's in the upstream already). Additional motivation for having it delivered by Rustup and not somehow externally - possible issues with SPGO profile format compatibility between different LLVM versions - by providing the tool with matching to the used by Rustc LLVM version will remove such nasty issues in the future. Since we already havellvm-profdataI think from consistency perspective havingllvm-profgenwould be a nice addition too.I tried to follow process about requesting a new tool in a similar way to other requests:
llcclangIf the issue requires some additional discussions somewhere else or even an RFC (like it's done for
clangabove) - just let me know, I'll do it.Thank you.