Only use SSA locals in SimplifyComparisonIntegral#150925
Only use SSA locals in SimplifyComparisonIntegral#150925rust-bors[bot] merged 6 commits intorust-lang:mainfrom
Conversation
|
Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt |
|
r? @SparrowLii rustbot has assigned @SparrowLii. Use |
|
r? @saethlin (I think you may be interested.) |
|
#75370 (comment) is this still true? (edit: yes) |
|
Looking at #75144 which suggested the pass it does look like it's beneficial for Cranelift but entirely useless for LLVM (also confirmed by https://godbolt.org/z/7jMsGjYvP). I suggest we delete this pass and let Cranelift implement this optimization on their side, their ISLE framework should be much better suited for these transforms than our MIR opts. |
|
I have no objection to removing this pass since it also isn't beneficial for other passes, but perhaps the pass can be removed after Cranelift implements the optimization. cc @bjorn3 |
This comment has been minimized.
This comment has been minimized.
|
SsaLocals is not a trivial amount of analysis, so using it here will need a perf run. But I agree that SsaLocals and removing the pass are the only real options here. |
Given the current status of the Cranelift backend (not production ready) I see no reason to block removal on Cranelift implementing anything. That can happen at a later point just fine. |
|
If this pass is giving trouble, it is fine to remove it by me. I can implement a replacement in cg_clif if necessary, but no need to block on that. |
|
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
|
🔒 Merge conflict This pull request and the base branch diverged in a way that cannot How do I rebase?Assuming
You may also read Please avoid the "Resolve conflicts" button on GitHub. Sometimes step 4 will complete without asking for resolution. This is usually due to difference between how |
|
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. |
|
@bors retry (potential flaky test) |
|
This comment has been minimized.
This comment has been minimized.
Interesting, the middle portion of the baseline ICE message is just I'll disable it on i686 msvc again EDIT: #151185 |
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 22c74ba (parent) -> 18ae990 (this PR) Test differencesShow 11 test diffs11 doctest diffs were found. These are ignored, as they are noisy. Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 18ae99075575810a158cc670dcc7579f1c2ca012 --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 (18ae990): comparison URL. Overall result: ❌ regressions - please read the text belowOur 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 -0.9%, secondary -2.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 3.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.0%, secondary 0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 471.202s -> 471.758s (0.12%) |
Disable `dump-ice-to-disk` on `i686-pc-windows-msvc` Sometimes the middle frames of the ICE backtrace becomes `<unknown>` on `i686-pc-windows-msvc` which then makes this test flaky. Noticed in rust-lang#150925 (comment). Originally expanded in rust-lang#142563 to see if it's still flaky for other `*-windows-*` targets, unfortunately the answer is yes for `i686-pc-windows-msvc` as well. r? @dianqk (or compiler or anyone really)
Disable `dump-ice-to-disk` on `i686-pc-windows-msvc` Sometimes the middle frames of the ICE backtrace becomes `<unknown>` on `i686-pc-windows-msvc` which then makes this test flaky. Noticed in rust-lang#150925 (comment). Originally expanded in rust-lang#142563 to see if it's still flaky for other `*-windows-*` targets, unfortunately the answer is yes for `i686-pc-windows-msvc` as well. r? @dianqk (or compiler or anyone really)
Disable `dump-ice-to-disk` on `i686-pc-windows-msvc` Sometimes the middle frames of the ICE backtrace becomes `<unknown>` on `i686-pc-windows-msvc` which then makes this test flaky. Noticed in rust-lang#150925 (comment). Originally expanded in rust-lang#142563 to see if it's still flaky for other `*-windows-*` targets, unfortunately the answer is yes for `i686-pc-windows-msvc` as well. r? @dianqk (or compiler or anyone really)
Rollup merge of #151185 - disable-dump-ice-i686, r=dianqk Disable `dump-ice-to-disk` on `i686-pc-windows-msvc` Sometimes the middle frames of the ICE backtrace becomes `<unknown>` on `i686-pc-windows-msvc` which then makes this test flaky. Noticed in #150925 (comment). Originally expanded in #142563 to see if it's still flaky for other `*-windows-*` targets, unfortunately the answer is yes for `i686-pc-windows-msvc` as well. r? @dianqk (or compiler or anyone really)
|
#151244 refines the test. |
[beta] backports * [beta] Disable SimplifyComparisonIntegral #151267 * Use the old homu bors e-mail address again #150959 Does not backport other nominated PRs: * Only use SSA locals in SimplifyComparisonIntegral #150925 (replaced with the disablement PR) * Don't try to evaluate const blocks during constant promotion #150557 (backport essentially denied at this point) * Use realstd current thread static variables in tests #150131 (as far as I can tell, this only affects internal std tests and hasn't landed in time for backport) r? @Mark-Simulacrum
|
perf triage: This fixes miscompilation regression, and the perf impact was measured and discussed before merge, so I assume this result is expected. @rustbot label: +perf-regression-triaged |
Fixes #150904.
The place may be modified from the comparison statement to the switchInt terminator.
Best reviewed commit by commit.