-
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
remove obligation dedup from impl_or_trait_obligations
#84944
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 57a1c9887f7a07660872d1ffad6eaba7fc193359 with merge baa153cea1f4237cf0f42cc231044925ed4616c6... |
This comment has been minimized.
This comment has been minimized.
☀️ Try build successful - checks-actions |
Queued baa153cea1f4237cf0f42cc231044925ed4616c6 with parent 2d11e25, future comparison URL. |
Finished benchmarking try commit (baa153cea1f4237cf0f42cc231044925ed4616c6): 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 |
impl_or_trait_obligations
impl_or_trait_obligations
to project caching
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 8a7ae4b17d1e9b669d2df0dab5a7b51322f4f879 with merge 97f6956b10598cea5032a815cee5224be2243d23... |
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 fddcc01cae17efb417e88d0d356c873f1880edfc with merge cfbeb503faad5f1b68441b15f8f2660bbe95bfa8... |
☀️ Try build successful - checks-actions |
Queued cfbeb503faad5f1b68441b15f8f2660bbe95bfa8 with parent 2d11e25, future comparison URL. |
Related: #77325 |
that PR is very related 😅 From what I can tell #77325 looks sound and is more general than this PR, so it's probably easier to just merge that PR |
Agreed. Let's see if we can poke @nikomatsakis to dedicate some time to look at that PR :P |
I'm concerned that there might be code relying on this to avoid exponential blowup (similar to the 'projection caching' issue), but none of our benchmarks cover it. |
We should look at the cases found by the previous crater run. There didn't seem to be perf issues (though I don't know it that was specifically looked at). But there were some regressions (I don't remember if this was checked). Also, was the original issue that prompted this added as a perf benchmark? Probably should be if it wasn't. |
Not yet - see rust-lang/rustc-perf#1124 |
rust-lang/rustc-perf#1124 is now closed, does it still makes sense to merge this PR? I am really not up to date here 😅 |
Maybe we could just re-run perf one final time, now that the |
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit b941485 with merge e5dfa4b135ad18263acae18b00193d608bf71d85... |
☀️ Try build successful - checks-actions |
Queued e5dfa4b135ad18263acae18b00193d608bf71d85 with parent 21b4a9c, future comparison URL. |
Finished benchmarking commit (e5dfa4b135ad18263acae18b00193d608bf71d85): comparison url. Summary: This benchmark run shows 30 relevant improvements 🎉 to instruction counts.
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 |
Solid wins. I'm good to merge this, but I want to r? @Aaron1011, since they had concerns. |
impl_or_trait_obligations
to project cachingimpl_or_trait_obligations
Discussed in today's compiler meeting. Decided to go ahead and r+ this, given that the original blowup this code was added for has a benchmark. @bors r+ |
📌 Commit b941485 has been approved by |
☀️ Test successful - checks-actions |
Finished benchmarking commit (32cbc76): comparison url. Summary: This benchmark run shows 34 relevant improvements 🎉 to instruction counts.
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. @rustbot label: -perf-regression |
Looking at the examples from #38528 they all seem to compile fine even without this and it seems like this might be unnecessary effort