-
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
[experiment] Build the compiler with panic=abort #124362
base: master
Are you sure you want to change the base?
Conversation
r? @fee1-dead rustbot has assigned @fee1-dead. Use |
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
[experiment] Build the compiler with panic=abort This wasn't possible until rust-lang#122362 (which this is based on, still not merged), and I want to see what performance benefits there are. This is only a proof-of-concept to get an upper bound. Some functionality around fatal errors needs to be restored using panic hooks, and without that it's likely that important code paths are being optimized out. About 4% of the ui tests are failing. With that said, in my local stage 2 builds this cuts the size of librustc_driver by 24%. That's pretty in line with the results I observed when turning this on for Fuchsia – savings were around 20%.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
[experiment] Build the compiler with panic=abort This wasn't possible until rust-lang#122362 (which this is based on, still not merged), and I want to see what performance benefits there are. This is only a proof-of-concept to get an upper bound. Some functionality around fatal errors needs to be restored using panic hooks, and without that it's likely that important code paths are being optimized out. About 4% of the ui tests are failing. With that said, in my local stage 2 builds this cuts the size of librustc_driver by 24%. That's pretty in line with the results I observed when turning this on for Fuchsia – savings were around 20%.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
You could filter out more tools that shouldn't be built for dist in a try build here. Although |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
bd72df2
to
3d781b9
Compare
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
[experiment] Build the compiler with panic=abort This wasn't possible until rust-lang#122362 (which this is based on, still not merged), and I want to see what performance benefits there are. This is only a proof-of-concept to get an upper bound. Some functionality around fatal errors needs to be restored using panic hooks, and without that it's likely that important code paths are being optimized out. About 4% of the ui tests are failing. With that said, in my local stage 2 builds this cuts the size of librustc_driver by 24%. That's pretty in line with the results I observed when turning this on for Fuchsia – savings were around 20%.
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
This comment has been minimized.
This comment has been minimized.
3d781b9
to
48e56f1
Compare
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
[experiment] Build the compiler with panic=abort This wasn't possible until rust-lang#122362 (which this is based on, still not merged), and I want to see what performance benefits there are. This is only a proof-of-concept to get an upper bound. Some functionality around fatal errors needs to be restored using panic hooks, and without that it's likely that important code paths are being optimized out. About 4% of the ui tests are failing. With that said, in my local stage 2 builds this cuts the size of librustc_driver by 24%. That's pretty in line with the results I observed when turning this on for Fuchsia – savings were around 20%.
The job Click to see the possible cause of the failure (guessed by this bot)
|
☀️ Try build successful - checks-actions |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (f5e1264): 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.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 671.645s -> 662.706s (-1.33%) |
Hmm not bad, not bad. |
Since this is based on #122362, I did a comparison. These are averages of primary check+doc times with significant results. Including build+opt makes the numbers less good, but directionally the same. Including secondary results makes most of them better. Choosing only significant results makes the numbers for #122362 look worse because the gains are smaller, but including everything pulled in some nonsensical outliers for this PR.
Compiler metrics:
Footnotes
|
What do you think about trying this again now that #122362 has landed? |
Just out of curiosity, tried it here. |
This wasn't possible until #122362 (which this is based on, still not merged), and I want to see what performance benefits there are.
This is only a proof-of-concept to get an upper bound. Some functionality around fatal errors needs to be restored using panic hooks, and without that it's likely that important code paths are being optimized out. About 4% of the ui tests are failing.
With that said, in my local stage 2 builds this cuts the size of librustc_driver by
24%(edit: 13% with unwind tables still enabled). That's pretty in line with the results I observed when turning this on for Fuchsia – savings were around 20%.