-
Notifications
You must be signed in to change notification settings - Fork 13.1k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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