-
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
shrink OpTy back down to 80 bytes #99097
Conversation
Some changes occurred to the CTFE / Miri engine cc @rust-lang/miri Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt |
Let's see if this undoes the Max RSS regressions from #98846. @bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit da4adcf29a2d797d416fb3aa978a23d973c37641 with merge f2f6207794ada785a91f6dbd3a9c4a29924b54ab... |
☀️ Try build successful - checks-actions |
Queued f2f6207794ada785a91f6dbd3a9c4a29924b54ab with parent f893495, future comparison URL. |
)?)?, | ||
op.layout, | ||
)); | ||
// Sanity-check the type we ended up with. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
duplicate comment?
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Blocked on #99101. |
I wouldn't worry about the max RSS regression, it has a low significance factor and it's just on a single |
…-obk interpret: refactor projection handling code Moves our projection handling code into a common file, and avoids the use of a general mplace-based fallback function by have more specialized implementations. mplace_index (and the other slice-related functions) could be more efficient by copy-pasting the body of operand_index. Or we could do some trait magic to share the code between them. But for now this is probably fine. This is the common part of rust-lang#99013 and rust-lang#99097. I am seeing some strange perf results so this probably should be its own change so we know which diff caused which perf changes... r? `@oli-obk`
☔ The latest upstream changes (presumably #99101) made this pull request unmergeable. Please resolve the merge conflicts. |
these are not things you *should* usually be comparing for equality...
All right, finally ready for review. :) Also just to be sure... |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit b077049 with merge a0d6fe90aadd2f3d45db9497150c9f211b4adf24... |
☀️ Try build successful - checks-actions |
Queued a0d6fe90aadd2f3d45db9497150c9f211b4adf24 with parent ca4e394, future comparison URL. |
Finished benchmarking commit (a0d6fe90aadd2f3d45db9497150c9f211b4adf24): 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. @bors rollup=never Footnotes |
I guess that is not too surprising, all these @rust-lang/wg-compiler-performance what do you think? This PR fixes a memory consumption regression (introduced by #98846) at the cost of some performance. |
max-rss isn't affected much by this PR. Instructions only regress for But then, I think max-rss also wasn't affected much by #98846, so I'm not sure if this PR is really necessary? |
Well, I saw the 6% max regression in a primary benchmark and thought that had to be fixed. Later I learned max-RSS is very noisy, so... if you tell me the RSS numbers in #98846 are fine, I am okay with closing this PR. |
I think the RSS numbers in #98846 are fine. For the affected benchmarks, it's only 1 or 2 of the runs, which is a clue that it's just noise. Also, the significance factors are very low, just a little over 1, which is the threshold for displaying. In clearer cases the significant factor will be over 10, sometimes over 50. All this is unclear with deep understanding of rustc-perf, so apologies for that. We are trying to improve this, but presenting this data in a way that is both precise and comprehensible to non-experts is a genuine challenge. |
I know, and no need to apologize. :) After all, we then have you around to ask questions when things are unclear. :D I'll close this PR then. I will investigate making |
This shares the first commit with #99013, but seeing the perf trouble in that PR, maybe this one is worth considering first. It gets the size of
OpTy
down to how it was before #98846.r? @oli-obk