-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Build the first LLVM without LTO in try builds #113779
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
Conversation
(rustbot has picked a reviewer for you, use r? to override) |
@bors try |
⌛ Trying commit 3547fcc1f5346573d75b005185a8ef5b68219b85 with merge 770278c62068bf371f2fb8132362ae1d2ddbbfe2... |
☀️ Try build successful - checks-actions |
1 similar comment
☀️ Try build successful - checks-actions |
The try build took |
@bors r+ I guess the subsequent rustc builds are slower if we do this, which is why the gains are less significant... but seems worth it. |
📌 Commit 3547fcc1f5346573d75b005185a8ef5b68219b85 has been approved by It is now in the queue for this repository. |
⌛ Testing commit 3547fcc1f5346573d75b005185a8ef5b68219b85 with merge 64ed0e522144c53331cd897d41d103834d57c597... |
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
Fixed support for |
@bors r=Mark-Simulacrum |
☀️ Test successful - checks-actions |
Finished benchmarking commit (0be1152): comparison URL. Overall result: ❌✅ regressions and improvements - ACTION NEEDEDNext Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 652.516s -> 654.49s (0.30%) |
I’m not seeing this change being limited to try builds, but the perf results should be noise. |
Sorry, the title should have said x64 dist linux builds, not just try builds. I would believe that the compile changes are noise, but the bootstrap change seems a bit worrying (although I saw similar bootstrap noise already). I wonder if PGO profiles for Rustc can somehow get worse, when they are gathered with a non LTO optimized LLVM. |
0.3% on bootstrap is not uncommon I think. Here’s 0.26 on the PR merged around this PR, and it doesn’t change the compiler #113298 (comment). |
Ok, that looks reasonable. @rustbot label: +perf-regression-triaged |
Currently, we perform three LLVM builds in the Linux x64 dist builder, which is used for
try
builds:sccache
, but ~8 minutes to link because of ThinLTOWhen I tried to disable LTO for build 1), it suddenly takes only about a minute to build, because the linking step is much faster. The first LLVM doesn't really need LTO all that much. Without it, it will be a bit slower to build
rustc
in two subsequent steps, but it seems that the ~7 minutes saved on linking it do win that back.Btw, we can't use the host LLVM for build 1), because this LLVM then builds
rustc
in PGO instrumented mode, and we need the same compiler when later PGO optimizingrustc
. And we want to use our in-house LLVM for that I think.