-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
Optimize obligation gathering. #92017
Conversation
@bors try @rust-timer queue r=me presuming perf looks good on other benchmarks |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 32d95de905055f1cce7e3b82de039bca7cf78fec with merge 17753d3bec6170d9cf3bf2d3da5ce97d8350dda6... |
☀️ Try build successful - checks-actions |
Queued 17753d3bec6170d9cf3bf2d3da5ce97d8350dda6 with parent 23c2723, future comparison URL. |
Finished benchmarking commit (17753d3bec6170d9cf3bf2d3da5ce97d8350dda6): 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 |
Some weirdly large changes that I'll have to look at next week. Note that this change isn't expected to have much effect on existing benchmarks. |
FWIW a bunch of rustdoc PRs were also getting nonsensical results like this so I think it might just be a bug in the perf suite somehow. |
@bors try @rust-timer queue rerunning now that we've landed rust-lang/rustc-perf#1123 |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 32d95de905055f1cce7e3b82de039bca7cf78fec with merge 2a37f5b6ca4b0180260dbbb2c5801176ddc67b77... |
☀️ Try build successful - checks-actions |
Queued 2a37f5b6ca4b0180260dbbb2c5801176ddc67b77 with parent 7abab1e, future comparison URL. |
Finished benchmarking commit (2a37f5b6ca4b0180260dbbb2c5801176ddc67b77): comparison url. Summary: This change led to 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 |
I wasn't expecting much change on the rustc-perf benchmarks, because this change is aimed at the example from #87012. But there are more improvements than regressions, which seems fine. |
Note: this might not be worthwhile once #92044 lands. We should re-evaluate then. |
Blocked on #92044, will mark as waiting on author. |
By passing in a `&mut Vec` in various places and appending to it, rather than building many tiny `Vec`'s and then combining them. This removes about 20% of the allocations occurred in a `check` build of a test program from rust-lang#87012, making it roughly 2% faster.
32d95de
to
528b6a4
Compare
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 528b6a4 with merge 87208aad822ca9fc68eadabdc1fb00df5f862801... |
☀️ Try build successful - checks-actions |
Queued 87208aad822ca9fc68eadabdc1fb00df5f862801 with parent 60e50fc, future comparison URL. |
Finished benchmarking commit (87208aad822ca9fc68eadabdc1fb00df5f862801): comparison url. Summary:
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 Footnotes |
I was seeing consistent small wins locally, in a non-PGO build, but the CI results are not good. Time to give up on this one. |
By passing in a
&mut Vec
in various places and appending to it, ratherthan building many tiny
Vec
's and then combining them.This removes about 20% of the allocations occurred in a
check
build ofa test program from #87012, making it roughly 3-5% faster.
r? @Mark-Simulacrum