-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Move OnDiskCache to rustc_query_impl. #86698
Conversation
r? @estebank (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 97f5a40109c71a722d059fd1ffac8d86820aeb94 with merge 80ff6e6d03c2115be287fa6ce7b94ba7c1e3dcd7... |
This comment has been minimized.
This comment has been minimized.
☀️ Try build successful - checks-actions |
Queued 80ff6e6d03c2115be287fa6ce7b94ba7c1e3dcd7 with parent a435b49, future comparison URL. |
Finished benchmarking try commit (80ff6e6d03c2115be287fa6ce7b94ba7c1e3dcd7): comparison url. Summary: This change led to significant improvements 🎉 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. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up. @bors rollup=never |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
1b6de32
to
5d1a8ad
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #87044) made this pull request unmergeable. Please resolve the merge conflicts. |
☔ The latest upstream changes (presumably #87133) made this pull request unmergeable. Please resolve the merge conflicts. |
☔ The latest upstream changes (presumably #86676) made this pull request unmergeable. Please resolve the merge conflicts. |
r=me after rebasing |
@bors r=estebank |
📌 Commit 5b92150 has been approved by |
☀️ Test successful - checks-actions |
Just a heads up: The perf run that we got after this landed on nightly did not come out quite as rosy as what was predicted from the perf run done locally. Namely, I see a lot of (small) regressions across several benchmarks, and very few wins at all. Is there a reason for the different in what we expected from the local run versus what we actually got? |
Investigation with cachegrind here is a little difficult: the movement to trait methods (instead of inherent) and a number of other, similar, changes means that the function paths differ sufficiently from run to run that mapping them is hard. That said, some sed'ing and such to adjust seems to point at most of the small regressions here being largely a result of low-level changes in instruction counts scattered across many of the moved functions. I suspect this is largely due to the movement across different crates creating a slightly different inlining environment and changing optimizer decisions. A diff of one of the moved functions disassembly shows a lot of changes, and the new version is a little longer (-287, +305). It's also worth noting that the new significance algorithm which more effectively ignores noise on every statistic we collect shows only one benchmark regressing in wall times. This PR also did lower bootstrap time -- overall by 6 seconds -- which is not much, but still a nice improvement. I think that means that the regressions (which are small) are justified. @rustbot label +perf-regression-triaged |
This should be the last remnant of the query implementation that was still in rustc_middle.