-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
Use linker plugin LTO for compiling rustc
#101524
Conversation
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit a03fc67147e0a5d2aefd9695fde08a280262c119 with merge b51c338474ead784e7b7597faaf32bf2fb08addd... |
💔 Test failed - checks-actions |
a03fc67
to
698756f
Compare
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 698756f2150b48e392edf19a285a9f92841d962b with merge 8a5bebe6d6ddb783f1ddc270c98a17741d4bdc10... |
💔 Test failed - checks-actions |
@bors try |
⌛ Trying commit aef2314e2397a2ae50841e8c3c34293960a63bef with merge 598a81f26b77bb54387f48c4c8567e77dc398fc8... |
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@bors try |
⌛ Trying commit 7d344574170dd2ecd8f42891ae3decf387843c39 with merge 9a160451063afe87d9b5099bdedcdac73850ad50... |
💔 Test failed - checks-actions |
Hmm, locally it works, but on CI it misses some files:
It's probably caused by the fact that I switched to using |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (5cfc0ac435c3b70dbc499c8811c19f413ce3619a): comparison URL. Overall result: ✅ improvements - no action neededBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. @bors rollup=never 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.
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.
Footnotes |
Pretty incredible results, similar to the other PR. I realized one disadvantage of this approach. It requires lld, so it might be more difficult to apply this on Windows/macOS. While the dylib LTO approach should work there fine. |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
8f4e90f
to
704631f
Compare
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 704631f91aeb68d2e64cb187931427eb9f6f16cf with merge 30a91e4d795b74e3c72bb3f5796d9b908643f1c5... |
💔 Test failed - checks-actions |
704631f
to
da01952
Compare
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit da01952 with merge 40b2f253eb6bb59cd285fd33c83f1391ef0d07b9... |
This comment has been minimized.
This comment has been minimized.
The job Click to see the possible cause of the failure (guessed by this bot)
|
☀️ Try build successful - checks-actions |
Queued 40b2f253eb6bb59cd285fd33c83f1391ef0d07b9 with parent 4b5fcae, future comparison URL. |
Finished benchmarking commit (40b2f253eb6bb59cd285fd33c83f1391ef0d07b9): comparison URL. Overall result: ❌✅ regressions and improvements - ACTION NEEDEDBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never 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.
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.
Footnotes |
Looks like compiler LTO is more efficient. Closing. |
This is yet another alternative to #97154 and #101403 that experiments with using LTO for compiling
rustc
. Here I try what happens if we apply the linker plugin LTO feature.r? @ghost