-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
Store all HIR owners in the same container #83723
Conversation
Some changes occurred in src/tools/clippy. cc @rust-lang/clippy |
r? @varkor (rust-highfive has picked a reviewer for you, use r? to override) |
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 ab5f8b23e95aef3bd44647be271035eeb1d269e1 with merge b50e97d3d3443c82ec42958fccf41b9ebd0ca079... |
☀️ Try build successful - checks-actions |
Queued b50e97d3d3443c82ec42958fccf41b9ebd0ca079 with parent 97717a5, future comparison URL. |
Finished benchmarking try commit (b50e97d3d3443c82ec42958fccf41b9ebd0ca079): comparison url. 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 |
Seems like there are still large regressions for the CTFE tests. |
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 3aaafaca8c72acb3ed8c4a04ecedb2d9b641cbc6 with merge c9f9b58a33f9e2eb6541b39eca9272685591930a... |
r=me with review commits squashed into main commits. |
@bors r=petrochenkov |
📌 Commit f798510 has been approved by |
☀️ Test successful - checks-actions |
Store all HIR owners in the same container This replaces the previous storage in a BTreeMap for each of Item/ImplItem/TraitItem/ForeignItem. This should allow for a more compact storage. Based on rust-lang#83114
Lower only one HIR owner at a time Based on rust-lang#83723 Additional diff is here: cjgillot/rust@ownernode...lower-mono Lowering is very tangled and has a tendency to intertwine the transformation of different items. This PR aims at simplifying the logic by: - moving global analyses to the resolver (item_generics_num_lifetimes, proc_macros, trait_impls); - removing a few special cases (non-exported macros and use statements); - restricting the amount of available information at any one time; - avoiding back-and-forth between different owners: an item must now be lowered all at once, and its parent cannot refer to its nodes. I also removed the sorting of bodies by span. The diagnostic ordering changes marginally, since definitions are pretty much sorted already according to the AST. This uncovered a subtlety in thir-unsafeck. (While these items could logically be in different PRs, the dependency between commits and the amount of conflicts force a monolithic PR.)
This replaces the previous storage in a BTreeMap for each of Item/ImplItem/TraitItem/ForeignItem.
This should allow for a more compact storage.
Based on #83114