-
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
Make lowering pull-based #90204
Make lowering pull-based #90204
Conversation
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 30c685c9a863546ffe3be12e65ec08fa38c15acb with merge 40908995bf1a9271ebb46383e84e7fb7238b5971... |
☀️ Try build successful - checks-actions |
Queued 40908995bf1a9271ebb46383e84e7fb7238b5971 with parent 55ccbd0, future comparison URL. |
Finished benchmarking commit (40908995bf1a9271ebb46383e84e7fb7238b5971): comparison url. Summary: This change led to moderate 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 |
This comment has been minimized.
This comment has been minimized.
Thanks, @cjgillot! I hope to get to this next week. |
☔ The latest upstream changes (presumably #90145) made this pull request unmergeable. Please resolve the merge conflicts. |
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #90564) made this pull request unmergeable. Please resolve the merge conflicts. |
Marking this as blocked on #90451 for now. |
☔ The latest upstream changes (presumably #94584) made this pull request unmergeable. Please resolve the merge conflicts. |
Do you think that some of the performance will be recovered once the whole refactoring is done? |
I don't know, though I hope so. For now, #88186 is a perf regression (up to 4% on primary benchmarks, up to 11% with stress benchmarks). If we want to skip parts of lowering altogether, we will need in addition:
|
OK, as stated before, I think the performance hit is acceptable as it should not be noticeable in any of the real-world benchmarks. You can r=me after rebasing. Thanks for all the hard work you are putting into this! |
@bors r=michaelwoerister |
📌 Commit 6b099db has been approved by |
☀️ Test successful - checks-actions |
Finished benchmarking commit (bd1a869): comparison url. Summary: This benchmark run shows 35 relevant regressions 😿 to instruction counts.
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 |
Based on #90451Part of #88186
The current lowering code visits all the item-likes in the AST in order, and lowers them one by one.
This PR changes it to index the AST and then proceed to lowering on-demand. This is closer to the logic of query-based lowering.