-
Notifications
You must be signed in to change notification settings - Fork 13k
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
Index and hash HIR as part of lowering #89124
Conversation
Some changes occurred in src/tools/clippy. cc @rust-lang/clippy |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 701098f9476dcab4555517d26abe5d1050c2b899 with merge 5395b5fa9aea18700afc4e5ac3e94a260e124494... |
☀️ Try build successful - checks-actions |
Queued 5395b5fa9aea18700afc4e5ac3e94a260e124494 with parent 49c0861, future comparison URL. |
Finished benchmarking commit (5395b5fa9aea18700afc4e5ac3e94a260e124494): comparison url. Summary: This change led to very large 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 |
Thanks, @cjgillot, I've blocked off some time to review this tomorrow. |
This looks pretty promising
Is this still based on pending PRs? If yes, would you mind listing them? If no, please rebase. |
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.
This is not a complete review. Just leaving a few comments.
Do we have a high-level description of what the lowering process and query setup will look like after rust-lang/compiler-team#452? |
701098f
to
f6ec113
Compare
I added a summary description in #88186 description. |
f6ec113
to
87aa3fd
Compare
This comment has been minimized.
This comment has been minimized.
87aa3fd
to
3e037ab
Compare
@bors r+ |
📌 Commit 1e2dbb5 has been approved by |
☀️ Test successful - checks-actions |
Finished benchmarking commit (bd41e09): comparison url. Summary: This change led to very 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 |
@cjgillot @michaelwoerister this indeed looks like a pretty significant regression. The |
My reading of the results was: this regresses two small, synthetic benchmarks while improving performance for many real-world benchmarks. That seemed like a good tradeoff. |
@michaelwoerister that's certainly reasonable, but two thoughts to add there:
In my opinion, we should look into this regression or at the very least have a larger discussion about how to interpret these types of regressions. In the future, the plan is to make regressions such as this one block bors from merging without an explicit opting out. |
This PR also regressed max-rss across several benchmarks. It's not noise, as can be seen in the stm32f4 timelines which are low-noise for max-rss benchmarks. |
Part of #88186
Based on #88880 (see merge commit).Once HIR is lowered, it is later indexed by the
index_hir
query and hashed forcrate_hash
. This PR moves those post-processing steps to lowering itself. As a side objective, the HIR crate data structure is refactored as anIndexVec<LocalDefId, Option<OwnerInfo<'hir>>>
whereOwnerInfo
stores all the relevant information for an HIR owner.r? @michaelwoerister
cc @petrochenkov