Skip to content

Commit cc3d903

Browse files
committed
Enable MultipleReturnTerminators by default.
1 parent 227abac commit cc3d903

6 files changed

+15
-35
lines changed

‎compiler/rustc_mir_transform/src/multiple_return_terminators.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub struct MultipleReturnTerminators;
1010

1111
impl<'tcx> MirPass<'tcx> for MultipleReturnTerminators {
1212
fn is_enabled(&self, sess: &rustc_session::Session) -> bool {
13-
sess.mir_opt_level() >= 4
13+
sess.mir_opt_level() >= 2
1414
}
1515

1616
fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {

‎tests/mir-opt/issues/issue_59352.num_to_digit.PreCodegen.after.panic-abort.mir‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ fn num_to_digit(_1: char) -> u32 {
5858
_0 = move ((_5 as Some).0: u32);
5959
StorageDead(_6);
6060
StorageDead(_5);
61-
goto -> bb8;
61+
return;
6262
}
6363

6464
bb6: {
@@ -68,10 +68,6 @@ fn num_to_digit(_1: char) -> u32 {
6868
bb7: {
6969
StorageDead(_4);
7070
_0 = const 0_u32;
71-
goto -> bb8;
72-
}
73-
74-
bb8: {
7571
return;
7672
}
7773
}

‎tests/mir-opt/issues/issue_59352.num_to_digit.PreCodegen.after.panic-unwind.mir‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ fn num_to_digit(_1: char) -> u32 {
5858
_0 = move ((_5 as Some).0: u32);
5959
StorageDead(_6);
6060
StorageDead(_5);
61-
goto -> bb8;
61+
return;
6262
}
6363

6464
bb6: {
@@ -68,10 +68,6 @@ fn num_to_digit(_1: char) -> u32 {
6868
bb7: {
6969
StorageDead(_4);
7070
_0 = const 0_u32;
71-
goto -> bb8;
72-
}
73-
74-
bb8: {
7571
return;
7672
}
7773
}

‎tests/mir-opt/pre-codegen/chained_comparison.returning.PreCodegen.after.mir‎

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,50 +87,46 @@ fn returning(_1: &Blueprint, _2: &Blueprint) -> bool {
8787
StorageDead(_15);
8888
StorageDead(_17);
8989
_0 = const true;
90-
goto -> bb11;
90+
return;
9191
}
9292

9393
bb6: {
9494
StorageDead(_16);
9595
StorageDead(_15);
9696
_0 = const false;
9797
StorageDead(_17);
98-
goto -> bb11;
98+
return;
9999
}
100100

101101
bb7: {
102102
StorageDead(_13);
103103
StorageDead(_12);
104104
_0 = const false;
105105
StorageDead(_14);
106-
goto -> bb11;
106+
return;
107107
}
108108

109109
bb8: {
110110
StorageDead(_10);
111111
StorageDead(_9);
112112
_0 = const false;
113113
StorageDead(_11);
114-
goto -> bb11;
114+
return;
115115
}
116116

117117
bb9: {
118118
StorageDead(_7);
119119
StorageDead(_6);
120120
_0 = const false;
121121
StorageDead(_8);
122-
goto -> bb11;
122+
return;
123123
}
124124

125125
bb10: {
126126
StorageDead(_4);
127127
StorageDead(_3);
128128
_0 = const false;
129129
StorageDead(_5);
130-
goto -> bb11;
131-
}
132-
133-
bb11: {
134130
return;
135131
}
136132
}

‎tests/mir-opt/pre-codegen/try_identity.new.PreCodegen.after.mir‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ fn new(_1: Result<T, E>) -> Result<T, E> {
2626
bb0: {
2727
StorageLive(_4);
2828
_2 = discriminant(_1);
29-
switchInt(move _2) -> [0: bb1, 1: bb2, otherwise: bb7];
29+
switchInt(move _2) -> [0: bb1, 1: bb2, otherwise: bb6];
3030
}
3131

3232
bb1: {
@@ -43,28 +43,24 @@ fn new(_1: Result<T, E>) -> Result<T, E> {
4343

4444
bb3: {
4545
_6 = discriminant(_4);
46-
switchInt(move _6) -> [0: bb4, 1: bb5, otherwise: bb7];
46+
switchInt(move _6) -> [0: bb4, 1: bb5, otherwise: bb6];
4747
}
4848

4949
bb4: {
5050
_7 = move ((_4 as Continue).0: T);
5151
_0 = Result::<T, E>::Ok(_7);
5252
StorageDead(_4);
53-
goto -> bb6;
53+
return;
5454
}
5555

5656
bb5: {
5757
_8 = move ((_4 as Break).0: E);
5858
_0 = Result::<T, E>::Err(_8);
5959
StorageDead(_4);
60-
goto -> bb6;
61-
}
62-
63-
bb6: {
6460
return;
6561
}
6662

67-
bb7: {
63+
bb6: {
6864
unreachable;
6965
}
7066
}

‎tests/mir-opt/pre-codegen/try_identity.old.PreCodegen.after.mir‎

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,22 @@ fn old(_1: Result<T, E>) -> Result<T, E> {
1515

1616
bb0: {
1717
_2 = discriminant(_1);
18-
switchInt(move _2) -> [0: bb1, 1: bb2, otherwise: bb4];
18+
switchInt(move _2) -> [0: bb1, 1: bb2, otherwise: bb3];
1919
}
2020

2121
bb1: {
2222
_3 = move ((_1 as Ok).0: T);
2323
_0 = Result::<T, E>::Ok(_3);
24-
goto -> bb3;
24+
return;
2525
}
2626

2727
bb2: {
2828
_4 = move ((_1 as Err).0: E);
2929
_0 = Result::<T, E>::Err(_4);
30-
goto -> bb3;
31-
}
32-
33-
bb3: {
3430
return;
3531
}
3632

37-
bb4: {
33+
bb3: {
3834
unreachable;
3935
}
4036
}

0 commit comments

Comments
 (0)