-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Use <[T; N]>::map in Sharded instead of SmallVec and unsafe code #89069
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
Conversation
This results in a lot less assembly
r? @davidtwco (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 7b50fd5 with merge d7e5e4ab57e3fa2aca41f679c8baab3581926670... |
Probably doesn't matter too much for perf - I don't think we frequently initialize Sharded - but r=me, seems like a good improvement if perf is good. |
☀️ Try build successful - checks-actions |
Queued d7e5e4ab57e3fa2aca41f679c8baab3581926670 with parent 6cdd42f, future comparison URL. |
Finished benchmarking commit (d7e5e4ab57e3fa2aca41f679c8baab3581926670): comparison url. Summary: This change led to moderate relevant mixed results 🤷 in compiler performance.
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 led 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 |
A couple of regressions, mostly improvements. |
Looking at a cachegrind diff locally, the regression seems to be caused by noise rather than something genuine -- I'm seeing a bump in the number of instructions used for PartialEq ConstKind not equals, which seems pretty unrelated to this change, and some LLVM functions. Ultimately doesn't seem like this is something we can address and the change does bring a win on both how simple the code is and bootstrap compilation time. @rustbot label +perf-regression-triaged @bors r+ |
📌 Commit 7b50fd5 has been approved by |
☀️ Test successful - checks-actions |
Finished benchmarking commit (3bb9eec): comparison url. Summary: This change led to large relevant mixed results 🤷 in compiler performance.
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression |
Visiting for performance triage. The report from when this PR was first timed looks pretty different from the report from when it landed. But either way, I'm inclined to apply @Mark-Simulacrum 's analysis above. @rustbot label: +perf-regression-triaged |
This results in a lot less assembly