Enable ThinLTO for rustc on x64 msvc - #103591
Conversation
|
@bors try |
|
⌛ Trying commit 0abf95bdd7e7f98b53c310649ecb03bc60d986f6 with merge 00df0000c5e43d256786737e9f49379e1b3054c4... |
|
💔 Test failed - checks-actions |
This comment was marked as outdated.
This comment was marked as outdated.
|
@bors try |
|
⌛ Trying commit 0e16a37a9f376091f4573feb33d0bcd603c811e8 with merge 68c5c85ed759334a11f0b0e586f5032a23f85ce4... |
|
☀️ Try build successful - checks-actions |
|
To compare with the size increase we see on linux:
|
|
I've updated the PR description with the results of the I will look at CI time tomorrow, as well as the sizes of the |
|
For CI time, it's going to be hard to say with a sample of 1, and t-infra should have better data like the variance on that builder, but here goes: on the 5 most recent merged PRs on the For the rustup
So it's a similar scale to #103538, which saw an 80MB increase. The possible fix mentioned in that issue would work on all targets I assume. I wouldn't think it's a blocking issue though. |
|
@rustbot ready I don't have access to the MSVC builder times graph that t-infra has, but from the tests above, it seems the additional time wouldn't necessarily be impactful on CI times, and that we could land this change @Mark-Simulacrum ? |
|
This is the current state of the world: So msvc dist is ~3rd slowest today. I think this should be OK to merge though, we can adjust further as we iterate on the CI times -- I expect our planned improvements around LLVM caching on Linux should fairly cleanly map directly to the msvc builder here. @bors r+ |
|
⌛ Testing commit 684663e with merge da2270c1464b4af6c57a1193a1600cd7dd352c98... |
|
💔 Test failed - checks-actions |
|
@bors retry spurious toolstate failure (see Zulip thread) |
This comment was marked as outdated.
This comment was marked as outdated.
|
☀️ Test successful - checks-actions |
|
Finished benchmarking commit (657eefe): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. 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.
CyclesResultsThis 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.
|
|
Note: the perf CI result showed no change because it only measures on Windows. See the image at the top of this PR for some previously-measured Windows results. |

This applies the great work from @bjorn3 and @Kobzol in #101403 to x64 msvc.
Here are the local results for the try build
68c5c85ed759334a11f0b0e586f5032a23f85ce4, compared to its parent0a6b941df354c59b546ec4c0d27f2b9b0cb1162c. Looking better than my previous local builds.(I can't show cycle counts, as that option is failing on the windows version of the perf collector, but I'll try to analyze and debug this soon)
This will be the first of a few tests for rustc / llvm / both ThinLTO on the windows and mac targets.