-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Refactor unwind in MIR #102906
Refactor unwind in MIR #102906
Conversation
r? @wesleywiser (rust-highfive has picked a reviewer for you, use r? to override) |
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 29a7d5a9230feef9e0a9f019b25ddfa1089bf8e8 with merge 02e51c2b883c3f2fc8a03d5a87b911728cb867bc... |
Will definitely review, but might be a couple days |
This comment has been minimized.
This comment has been minimized.
☀️ Try build successful - checks-actions |
Queued 02e51c2b883c3f2fc8a03d5a87b911728cb867bc with parent 36c8e29, future comparison URL. |
Finished benchmarking commit (02e51c2b883c3f2fc8a03d5a87b911728cb867bc): 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 |
I only looked at the interpreter changes, those look good modulo the comments I left. Miri fails to build; |
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 29a7d5a9230feef9e0a9f019b25ddfa1089bf8e8 with merge a8b66909b50a4a69527d99b7213f97309bd55514... |
☀️ Try build successful - checks-actions |
Queued a8b66909b50a4a69527d99b7213f97309bd55514 with parent 3655784, future comparison URL. |
Finished benchmarking commit (a8b66909b50a4a69527d99b7213f97309bd55514): comparison URL. Overall result: ❌ regressions - 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 |
tests/run-make/coverage-reports/expected_show_coverage.abort.txt
Outdated
Show resolved
Hide resolved
@bors delegate=nbdd0121 |
✌️ @nbdd0121 can now approve this pull request |
@bors r=wesleywiser,tmiasko |
☀️ Test successful - checks-actions |
Finished benchmarking commit (da14081): 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.
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.
|
…windAction enum. This is the relevant PR that introduced the changes to rustc rust-lang/rust#102906 Now there a new enum called `UnwindAction`, which may contain in some cases a basic block for the cleanup that we need to handle. This change requires some renaming to keep some consistency when using the words "unwind" and "cleanup" All tests are passing again. Updated the README
The panic test is now counted as an error test; we encounter a Terminate terminator, and emit an interpreter error, as opposed to just terminating due to a panic. So this test should have broken with rust-lang/rust#102906 but wasn't because the Miri test suite is currently broken in rust-lang/rust: rust-lang/rust#110102
The panic test is now counted as an error test; we encounter a Terminate terminator, and emit an interpreter error, as opposed to just terminating due to a panic. So this test should have broken with rust-lang#102906 but wasn't because the Miri test suite is currently broken in rust-lang/rust: rust-lang#110102
Perf wins outweigh losses. @rustbot label: +perf-regression-triaged |
… terminate]` This is important since a lot of example programs exhibit this structure since the `UnwindAction` enum was introduced to rustc in rust-lang/rust#102906 In a previous commit, the change in rustc was incorporated but without handling all the cases. This improvement now handles all the variants that enum `UnwindAction` has instead of ignoring some of them. 8cf95cd
Update the toolchain to use nightly-2023-04-16. Changes were related to the following changes to the toolchain: - rust-lang/rust#108944 - rust-lang/rust#108148 - rust-lang/rust#108471 - rust-lang/rust#109358 - rust-lang/rust#109849 - rust-lang/rust#109819 - rust-lang/rust#109718 - rust-lang/rust#109092 - rust-lang/rust#108856 - rust-lang/rust#105613 - rust-lang/rust#103042 - rust-lang/rust#109716 - rust-lang/rust#108340 - rust-lang/rust#102906 - rust-lang/rust#98112 - rust-lang/rust#108080
This makes unwinding from current
Option<BasicBlock>
intocc @JakobDegen @RalfJung @Amanieu