Disable SimplifyToExp in MatchBranchSimplification#124156
Disable SimplifyToExp in MatchBranchSimplification#124156bors merged 1 commit intorust-lang:masterfrom
Conversation
|
Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt |
|
This one is easy to review. :) |
tests/mir-opt/switch_to_self.rs
Outdated
| @@ -1,3 +1,4 @@ | |||
| //@ unit-test: MatchBranchSimplification | |||
There was a problem hiding this comment.
I think it's okay to change it for unit testing since the MIR output is the same.
There was a problem hiding this comment.
I'm surprised the test didn't already have this declaration, if it was meant to test a particular pass.
But also, unit-test is a very non-self-explaining name for "please run only and specifically this pass".
There was a problem hiding this comment.
Because the default compiler flag is -O.
There was a problem hiding this comment.
Yeah I know it doesn't need the declaration to test default-on opts. But when a test tests a specific opt, wouldn't it be good to add that declaration even if it is not needed?
There was a problem hiding this comment.
There are probably similar test cases in the repository. ;) Perhaps there was no support for unit testing in the past?
There was a problem hiding this comment.
For fixing the miscompilation, I hope to make as few changes as possible. This can go into a separate PR now.
There was a problem hiding this comment.
Oh yeah sure this was more of a general comment. Sorry for being unclear.
tests/mir-opt/issues/issue_75439.rs
Outdated
| @@ -1,9 +1,10 @@ | |||
| //@ unit-test: MatchBranchSimplification | |||
There was a problem hiding this comment.
The same as tests/mir-opt/switch_to_self.rs.
| @@ -1,4 +1,5 @@ | |||
| //@ unit-test: InstSimplify | |||
| //@ should-fail Broken due to https://github.com/rust-lang/rust/issues/124150. | |||
There was a problem hiding this comment.
Why does this affect this test, when #120614 did not change this test?
There was a problem hiding this comment.
This was already accomplished by the existing SimplifyToIf. I just did a refactor in #120614.
There was a problem hiding this comment.
Oh, so this is not equivalent to reverting #120614, it disables more than that.
In that case, hard for me to say whether it's appropriate to disable the entire pass.
|
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
Disable MatchBranchSimplification Due to the miscompilation mentioned in rust-lang#124150, We need to disable MatchBranchSimplification temporarily. To fully resolve this issue, my plan is: 1. Disable MatchBranchSimplification (this PR). 2. Remove all potentially unclear transforms in rust-lang#124122. 3. Gradually add back the removed transforms (possibly multiple PRs). r? `@Nilstrieb` or `@oli-obk`
This comment has been minimized.
This comment has been minimized.
2d3178b to
ca30ce6
Compare
|
Some changes occurred in coverage tests. cc @Zalathar |
|
If the perf result is unacceptable, I would consider revert the PR or just disable SimplifyToExp. |
If there's an easy way to disable just the affected part of this pass, then let's just do that? |
This comment has been minimized.
This comment has been minimized.
I can write the following code: if tcx.sess.opts.unstable_opts.unsound_mir_opts
&& SimplifyToExp::default().simplify(tcx, body, bb_idx, param_env).is_some()
{
should_cleanup = true;
continue;
}But I've never seen code like this before. Edit: The code below works fine for me. if false && SimplifyToExp::default().simplify(tcx, body, bb_idx, param_env).is_some()
{
should_cleanup = true;
continue;
} |
ca30ce6 to
86a51cd
Compare
This comment has been minimized.
This comment has been minimized.
86a51cd to
e2f8ec6
Compare
|
Why not use |
e2f8ec6 to
b52be28
Compare
I'm just worried it might be a bit weird because I've never seen this kind of code before. |
|
@bors r+ |
|
☀️ Test successful - checks-actions |
|
Finished benchmarking commit (a61b14d): comparison URL. Overall result: ❌ regressions - no action needed@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)ResultsThis 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.
CyclesResultsThis 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.
Binary sizeResultsThis 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.
Bootstrap: 670.395s -> 670.71s (0.05%) |
Due to the miscompilation mentioned in #124150, We need to disable MatchBranchSimplification temporarily.
To fully resolve this issue, my plan is:
r? @Nilstrieb or @oli-obk