-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Make ObligationEmittingRelation
s emit Goal
rather than Obligation
#126130
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
Conversation
@bors try @rust-timer queue |
Some changes occurred to the core trait solver cc @rust-lang/initiative-trait-system-refactor changes to the core type system |
This comment has been minimized.
This comment has been minimized.
Make `ObligationEmittingRelation`s emit `Goal` rather than `Obligation` Helps avoid needing to uplift `Obligation` into the solver. We still can't get rid of `ObligationCause`, but we can keep it as an associated type for `InferCtxtLike` and just give it a `dummy` function. There's some shuttling between `Goal` and `Obligation` that may be perf-sensitive... Let's see what rust-timer says. r? lcnr
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
.obligations, | ||
.obligations | ||
.into_iter() | ||
// FIXME: Shuttling between obligations and goals is awkward. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i guess we should move the Goal -> Obligation
conversion one step further out: to ObligationCtxt
/FnCtxt
🤔
sgtm, r=me after fixing CI if no tests change |
9f8c5ca
to
e4be97c
Compare
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
Make `ObligationEmittingRelation`s emit `Goal` rather than `Obligation` Helps avoid needing to uplift `Obligation` into the solver. We still can't get rid of `ObligationCause`, but we can keep it as an associated type for `InferCtxtLike` and just give it a `dummy` function. There's some shuttling between `Goal` and `Obligation` that may be perf-sensitive... Let's see what rust-timer says. r? lcnr
☀️ Try build successful - checks-actions |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (b56de0f): comparison URL. Overall result: ❌ regressions - no action neededBenchmarking 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 may lead to changes in compiler perf. @bors rollup=never Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)Results (primary 6.6%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 679.328s -> 676.811s (-0.37%) |
@bors r=lcnr |
☀️ Test successful - checks-actions |
Finished benchmarking commit (76c7382): comparison URL. Overall result: ❌✅ regressions and improvements - ACTION NEEDEDNext Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)This benchmark run did not return any relevant results for this metric. CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 675.928s -> 675.467s (-0.07%) |
@compiler-errors I'm asssuming the perf regression was deemed acceptable since these only occurred in stress tests? @rustbot label: +perf-regression-triaged |
Helps avoid needing to uplift
Obligation
into the solver. We still can't get rid ofObligationCause
, but we can keep it as an associated type forInferCtxtLike
and just give it adummy
function.There's some shuttling between
Goal
andObligation
that may be perf-sensitive... Let's see what rust-timer says.r? lcnr