-
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
traits/fulfill: allow stalled_on
to track ty::Const::Infer(_)
(unused yet).
#70213
Conversation
@bors try @rust-timer queue |
Awaiting bors try build completion |
⌛ Trying commit 78c178b with merge cd27e54b181fec28e8c3e2b457e51762e307281b... |
☀️ Try build successful - checks-azure |
Queued cd27e54b181fec28e8c3e2b457e51762e307281b with parent 5f13820, future comparison URL. |
Finished benchmarking try commit cd27e54b181fec28e8c3e2b457e51762e307281b, comparison URL. |
@nnethercote ^^ Can you help me make sense of this? The query timings say a different story (the "regressions" actually spend less time in |
Okay so I've compared "
That's over 40x smaller, and I suspect the 0.3% "slowdown" is just noise. While the |
The perf results look good:
Overall, looks like a slight performance improvement. |
@bors r+ |
📌 Commit 78c178b has been approved by |
…omatsakis traits/fulfill: allow `stalled_on` to track `ty::Const::Infer(_)` (unused yet). This PR addresses the representation side of rust-lang#70180, but only *actually collects* `ty::Infer`s via `Ty::walk` into `stalled_on` (collecting `ty::ConstKind::Infer`s requires rust-lang#70164). However, it should be enough to handle rust-lang#70107's needs (WF obligations are stalled only on the outermost type/const being an inference variable, no `walk`-ing is involved). This is my second attempt, see rust-lang#70181 for the previous one, which unacceptably regressed perf. r? @nikomatsakis cc @nnethercote
…omatsakis traits/fulfill: allow `stalled_on` to track `ty::Const::Infer(_)` (unused yet). This PR addresses the representation side of rust-lang#70180, but only *actually collects* `ty::Infer`s via `Ty::walk` into `stalled_on` (collecting `ty::ConstKind::Infer`s requires rust-lang#70164). However, it should be enough to handle rust-lang#70107's needs (WF obligations are stalled only on the outermost type/const being an inference variable, no `walk`-ing is involved). This is my second attempt, see rust-lang#70181 for the previous one, which unacceptably regressed perf. r? @nikomatsakis cc @nnethercote
Rollup of 8 pull requests Successful merges: - rust-lang#68884 (Make the `type_of` return a generic type for generators) - rust-lang#69788 (Fix sequence of Type and Trait in optin-builtin-traits in Unstable Book) - rust-lang#70074 (Expand: nix all fatal errors) - rust-lang#70077 (Store idents for `DefPathData` into crate metadata) - rust-lang#70213 (traits/fulfill: allow `stalled_on` to track `ty::Const::Infer(_)` (unused yet).) - rust-lang#70259 (Use Reveal::All in MIR optimizations) - rust-lang#70284 (correctly handle const params in type_of) - rust-lang#70289 (Refactor `codegen`) Failed merges: r? @ghost
add regression tests for stalled_on const vars closes rust-lang#70180 Afaict this has been fixed sometime after rust-lang#70213 `trait_ref_type_vars` correctly adds const infers and I did not find any remaining `FIXME`s which correspond to this issue. https://github.com/rust-lang/rust/blob/7c59a81a5fcbaaca311f744cd7c68d99bfbb05d3/src/librustc_trait_selection/traits/fulfill.rs#L555-L557 Added both examples from the issue as regression tests and renamed `trait_ref_type_vars` -> `trait_ref_infer_vars`. r? @eddyb
add regression tests for stalled_on const vars closes rust-lang#70180 Afaict this has been fixed sometime after rust-lang#70213 `trait_ref_type_vars` correctly adds const infers and I did not find any remaining `FIXME`s which correspond to this issue. https://github.com/rust-lang/rust/blob/7c59a81a5fcbaaca311f744cd7c68d99bfbb05d3/src/librustc_trait_selection/traits/fulfill.rs#L555-L557 Added both examples from the issue as regression tests and renamed `trait_ref_type_vars` -> `trait_ref_infer_vars`. r? @eddyb
This PR addresses the representation side of #70180, but only actually collects
ty::Infer
s viaTy::walk
intostalled_on
(collectingty::ConstKind::Infer
s requires #70164).However, it should be enough to handle #70107's needs (WF obligations are stalled only on the outermost type/const being an inference variable, no
walk
-ing is involved).This is my second attempt, see #70181 for the previous one, which unacceptably regressed perf.
r? @nikomatsakis cc @nnethercote