-
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
Some perf optimizations and logging #87203
Conversation
(rust-highfive has picked a reviewer for you, use r? to override) |
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 5e1b7819b4585e25c74a751aa2f44503ff534535 with merge e2e811f95353b3dc2ef55ab8201023faade67192... |
Is there a chance you can extract it to a separate commit? It seems like that would help a targeted revert (if necessary) and review. |
Sure, I'll do that when the try build has finished. |
☀️ Try build successful - checks-actions |
Queued e2e811f95353b3dc2ef55ab8201023faade67192 with parent c49895d, future comparison URL. |
r=me once perf is complete |
5a65ad1
to
eb5b836
Compare
Finished benchmarking try commit (e2e811f95353b3dc2ef55ab8201023faade67192): comparison url. Summary: This change led to significant 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 perf run, please indicate this with @bors rollup=never |
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit fe782327f3e0474e156c0d6ace73fa54f32963fb with merge 22d8be524c5ecb4aaef5b971d28e73641eeee4db... |
☀️ Try build successful - checks-actions |
Queued 22d8be524c5ecb4aaef5b971d28e73641eeee4db with parent 32c447e, future comparison URL. |
Finished benchmarking try commit (22d8be524c5ecb4aaef5b971d28e73641eeee4db): comparison url. Summary: This change led to significant 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 perf run, please indicate this with @bors rollup=never |
Ok, so looks like inlining changes did help a bit. But still seeing a regression. So let's continue to search. |
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 42888331694285f5516498ff5339d690b58a1a21 with merge c935d2011581bef6e0a684430dcf22ad2a8ecd32... |
cachegrind diff from previous try build for ctfe-stress-4-check:
|
☀️ Try build successful - checks-actions |
Queued c935d2011581bef6e0a684430dcf22ad2a8ecd32 with parent f502bd3, future comparison URL. |
Finished benchmarking try commit (c935d2011581bef6e0a684430dcf22ad2a8ecd32): comparison url. Summary: This change led to significant improvements 🎉 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. @bors rollup=never |
Okay readded the inlining change since that did seem good. Removed the @bors r=nikomatsakis |
📌 Commit fa839b1 has been approved by |
☀️ Test successful - checks-actions |
Various bits of (potential) perf optimizations and some logging additions/changes pulled out from #85499
The only not extremely straightforward change is adding
needs_normalization
intrait::project
. This is just a perf optimization to avoid fold through a type with only opaque types inUserFacing
mode (as they aren't replaced).This should be a simple PR for anyone to review, so I'm going to let highfive assign. But I'll go ahead and cc @nikomatsakis in case he has time today.