-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Allow patterns to constrain the hidden type of opaque types #99806
Conversation
r? @jackh726 (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 459499fc9b0b46cca8fe035ab6c0c35d046e3065 with merge 3f31457bb3c0282484d0c1277e64f571afa882cd... |
☀️ Try build successful - checks-actions |
Queued 3f31457bb3c0282484d0c1277e64f571afa882cd with parent 48316df, future comparison URL. |
Finished benchmarking commit (3f31457bb3c0282484d0c1277e64f571afa882cd): comparison url. Instruction count
Max RSS (memory usage)Results
CyclesResults
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Benchmarking 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 Footnotes |
☔ The latest upstream changes (presumably #99979) made this pull request unmergeable. Please resolve the merge conflicts. |
…rors Some `is_useful` cleanups rust-lang#98582 was reverted because it was a perf regression. rust-lang#99806 reintroduces the changes, but this PR picks individual ones that have no regressions.
fad4617
to
95dc7f8
Compare
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 95dc7f8590787fb1a19e2c43174a522d575dfc78 with merge 6642984ad271a4e8d3ef4b40e65cb81333574b2f... |
☀️ Try build successful - checks-actions |
Queued 6642984ad271a4e8d3ef4b40e65cb81333574b2f with parent 12e4fd0, future comparison URL. |
Finished benchmarking commit (6642984ad271a4e8d3ef4b40e65cb81333574b2f): 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 |
@bors r+ rollup=never |
@bors r=estebank |
⌛ Testing commit 1905f8c with merge 96e76bf486de500ea58ae9ec78dd9c386321aa0a... |
@bors retry I can't find any failure in the logs, only cancelled builds |
☀️ Test successful - checks-actions |
Finished benchmarking commit (4136b59): 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.
Footnotes |
…estebank Allow patterns to constrain the hidden type of opaque types fixes rust-lang#96572 reverts a revert as original PR was a perf regression that was fixed by reverting it: rust-lang#99368 (comment)) TODO: * check if rust-lang#99685 is avoided
…estebank Allow patterns to constrain the hidden type of opaque types fixes rust-lang#96572 reverts a revert as original PR was a perf regression that was fixed by reverting it: rust-lang#99368 (comment)) TODO: * check if rust-lang#99685 is avoided
…ction, r=cjgillot Perform OpaqueCast field projection on HIR, too. fixes rust-lang#105819 This is necessary for closure captures in 2021 edition, as they capture individual fields, not the full mentioned variables. So it may try to capture a field of an opaque (because the hidden type is known to be something with a field). See rust-lang#99806 for when and why we added OpaqueCast to MIR.
…ction, r=cjgillot Perform OpaqueCast field projection on HIR, too. fixes rust-lang#105819 This is necessary for closure captures in 2021 edition, as they capture individual fields, not the full mentioned variables. So it may try to capture a field of an opaque (because the hidden type is known to be something with a field). See rust-lang#99806 for when and why we added OpaqueCast to MIR.
…ction, r=cjgillot Perform OpaqueCast field projection on HIR, too. fixes rust-lang#105819 This is necessary for closure captures in 2021 edition, as they capture individual fields, not the full mentioned variables. So it may try to capture a field of an opaque (because the hidden type is known to be something with a field). See rust-lang#99806 for when and why we added OpaqueCast to MIR.
…cjgillot Perform OpaqueCast field projection on HIR, too. fixes #105819 This is necessary for closure captures in 2021 edition, as they capture individual fields, not the full mentioned variables. So it may try to capture a field of an opaque (because the hidden type is known to be something with a field). See rust-lang/rust#99806 for when and why we added OpaqueCast to MIR.
Some `is_useful` cleanups #98582 was reverted because it was a perf regression. rust-lang/rust#99806 reintroduces the changes, but this PR picks individual ones that have no regressions.
Some `is_useful` cleanups #98582 was reverted because it was a perf regression. rust-lang/rust#99806 reintroduces the changes, but this PR picks individual ones that have no regressions.
fixes #96572
reverts a revert as original PR was a perf regression that was fixed by reverting it: #99368 (comment))
TODO: