-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Deduplicate obligations in opt_normalize_projection_type
#90913
Conversation
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 78b5f2d with merge 223f5e877fe93b5f437c2d703f883797913cd2b7... |
☀️ Try build successful - checks-actions |
Queued 223f5e877fe93b5f437c2d703f883797913cd2b7 with parent ad44239, future comparison URL. |
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 dd05c32256545056356f5547af03eb17e173d889 with merge d1b7285495d8ea2363fd7d7efc2b6989f0029424... |
💔 Test failed - checks-actions |
dd05c32
to
0330941
Compare
@bors try |
⌛ Trying commit 033094176cdafa8b165a658604ecf2ddff3e53b1 with merge 39d7399cd1e666e48aecc980ee352b3daf8c420b... |
This comment has been minimized.
This comment has been minimized.
☀️ Try build successful - checks-actions |
Queued 39d7399cd1e666e48aecc980ee352b3daf8c420b with parent eab2d75, future comparison URL. |
This comment has been minimized.
This comment has been minimized.
Well, not as rosy as the first commit, but now it fixes the OOM reported in #74456. |
⌛ Trying commit 307a2b675b94d53a765894b0a169225e8a831772 with merge 92da4f029ba76f78f916fa529c0c6add294fbb04... |
☀️ Try build successful - checks-actions |
Queued 92da4f029ba76f78f916fa529c0c6add294fbb04 with parent 311fa1f, future comparison URL. |
Finished benchmarking commit (92da4f029ba76f78f916fa529c0c6add294fbb04): 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 |
307a2b6
to
b6c2cf0
Compare
Previous run looks much better, let's see if we can squeeze a bit more out of it. @bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit b6c2cf00116d7097d36ae67f593f36e1c7b74903 with merge 2d385d312cf7a0119d96d63907bb119e2b83923c... |
@bors cancel |
b6c2cf0
to
6972c6e
Compare
@bors try |
⌛ Trying commit 6972c6e with merge a5fcd75b334a8bb8bc3e870f0e2c1173c48e0712... |
☀️ Try build successful - checks-actions |
Queued a5fcd75b334a8bb8bc3e870f0e2c1173c48e0712 with parent 7b3cd07, future comparison URL. |
Finished benchmarking commit (a5fcd75b334a8bb8bc3e870f0e2c1173c48e0712): 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 |
If we ignore Sorry for all the noise from the experiments. I'll create a new PR to make it easier to review. |
new pr: #91186 |
This adds a second deduplication site (in addition to the original one at
impl_or_trait_obligations
) inopt_normalize_projection_type
since that's where the OOMing allocations occured in #74456.Fixes an OOM and compile time blowup in the reduced test-case on that issue.
Since it only touches one place where obligations are processed it might not fix all of these blowups. A more general fix would require replacing most uses of
Vec<Obligation>
with someOrderedSet<Obligation>
.