always rerun if we normalize local opaques - #161795
Conversation
|
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
always rerun if we normalize local opaques
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (82f99bb): comparison URL. Overall result: ❌✅ regressions and improvements - please read:Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf. Next, please: If you can, justify the regressions found in this try perf run in writing along with @bors rollup=never rustc-perf Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)This perf run didn't have relevant results for this metric. CyclesResults (secondary 5.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.0%, secondary -0.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 475.39s -> 474.699s (-0.15%) |
| self.opaque_accesses.rerun_always(RerunReason::NormalizeOpaqueType)?; | ||
| } else { | ||
| self.opaque_accesses | ||
| .rerun_if_in_post_analysis(RerunReason::NormalizeOpaqueTypeRemoteCrate)?; |
There was a problem hiding this comment.
that's also wrong, is it not. We also need to just rerun_always. We need to make sure we never mark an alias as rigid if it's not. We should add this invariant as a comment to ErasedNonCoherence
There was a problem hiding this comment.
Doing that basically undoes our perf improvement for wg-grammar. For remote opaques, we won't have query cycle from type_of. Uncertain about other potential problems caused by improperly marked rigid aliases.
There was a problem hiding this comment.
okay, yeah 🤔 that's interesting. So instead:
- always reveal auto traits for rigid aliases, and don't allow "incorrectly rigid local opaques"?
please comment this on ErasedNonCoherence and also IsRigid I think
cdb50b8 to
009cc84
Compare
|
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
always rerun if we normalize local opaques
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (ca934c3): comparison URL. Overall result: ❌✅ regressions and improvements - please read:Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf. Next, please: If you can, justify the regressions found in this try perf run in writing along with @bors rollup=never rustc-perf Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 2.9%, secondary 16.9%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -2.2%, secondary 135.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 476.343s -> 475.472s (-0.18%) |
009cc84 to
64fea5e
Compare
64fea5e to
0a26490
Compare
0a26490 to
8720f91
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
This comment has been minimized.
This comment has been minimized.
always rerun if we normalize local opaques Fixes #135062 The problem is that we rerun goals too late such that we compute auto trait for wrongly-marked-as-rigid opaques. We call `type_of` on those opaques which would trigger query cycle if we're already in typeck/borrowck of the same opaques. It's fixed by eagerly rerun if we ever normalize a local opaque. To be more consersative, we could also rerun if we normalize remote opaque. But that causes regression for `wg-grammar`. Since we wouldn't be in typeck/borrowck if we're in post analysis mode, we don't have the query cycle problem. We **might** get away with not rerunning there. `OpaqueInStorage` removal doesn't affect behavior and can be done in a followup. r? @lcnr
|
The job Click to see the possible cause of the failure (guessed by this bot) |
|
💔 Test for 9db98a2 failed: CI. Failed job:
|
|
@bors retry |
This comment has been minimized.
This comment has been minimized.
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing b924f94 (parent) -> 0ed41eb (this PR) Test differencesShow 42 test diffsStage 1
Stage 2
Additionally, 39 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 0ed41eb4142dda2df61eb1145a312c1a9d62eb56 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (0ed41eb): comparison URL. Overall result: ❌✅ regressions and improvements - please read:Our benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 6.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -2.9%, secondary 5.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 480.684s -> 476.718s (-0.83%) |
View all comments
Fixes #135062
The problem is that we rerun goals too late such that we compute auto trait for wrongly-marked-as-rigid opaques.
We call
type_ofon those opaques which would trigger query cycle if we're already in typeck/borrowck of the same opaques.It's fixed by eagerly rerun if we ever normalize a local opaque.
To be more consersative, we could also rerun if we normalize remote opaque. But that causes regression for
wg-grammar. Since we wouldn't be in typeck/borrowck if we're in post analysis mode, we don't have the query cycle problem. We might get away with not rerunning there.OpaqueInStorageremoval doesn't affect behavior and can be done in a followup.r? @lcnr