Rollup merge of #127164 - Nadrieril:clean-lowering-loop, r=matthewjasper · rust-lang/rust@58fe37f (original) (raw)
`@@ -38,65 +38,61 @@ fn main() -> () {
`
38
38
`StorageLive(_2);
`
39
39
`_2 = Option::::Some(const 1_i32);
`
40
40
`PlaceMention(_2);
`
41
``
`-
_5 = discriminant(_2);
`
42
``
`-
switchInt(move _5) -> [1: bb8, otherwise: bb2];
`
``
41
`+
_4 = discriminant(_2);
`
``
42
`+
switchInt(move _4) -> [1: bb2, otherwise: bb1];
`
43
43
`}
`
44
44
``
45
45
`bb1: {
`
46
``
`-
FakeRead(ForMatchedPlace(None), _2);
`
47
``
`-
unreachable;
`
``
46
`+
falseEdge -> [real: bb14, imaginary: bb4];
`
48
47
`}
`
49
48
``
50
49
`bb2: {
`
51
``
`-
falseEdge -> [real: bb15, imaginary: bb3];
`
``
50
`+
falseEdge -> [real: bb9, imaginary: bb1];
`
52
51
`}
`
53
52
``
54
53
`bb3: {
`
55
``
`-
_4 = discriminant(_2);
`
56
``
`-
switchInt(move _4) -> [1: bb6, otherwise: bb4];
`
``
54
`+
goto -> bb1;
`
57
55
`}
`
58
56
``
59
57
`bb4: {
`
``
58
`+
_5 = discriminant(_2);
`
``
59
`+
switchInt(move _5) -> [1: bb6, otherwise: bb5];
`
``
60
`+
}
`
``
61
+
``
62
`+
bb5: {
`
60
63
`StorageLive(_14);
`
61
64
`_14 = _2;
`
62
65
`_1 = const 4_i32;
`
63
66
`StorageDead(_14);
`
64
``
`-
goto -> bb21;
`
65
``
`-
}
`
66
``
-
67
``
`-
bb5: {
`
68
``
`-
goto -> bb1;
`
``
67
`+
goto -> bb20;
`
69
68
`}
`
70
69
``
71
70
`bb6: {
`
72
``
`-
falseEdge -> [real: bb16, imaginary: bb4];
`
``
71
`+
falseEdge -> [real: bb15, imaginary: bb5];
`
73
72
`}
`
74
73
``
75
74
`bb7: {
`
76
``
`-
goto -> bb4;
`
``
75
`+
goto -> bb5;
`
77
76
`}
`
78
77
``
79
78
`bb8: {
`
80
``
`-
falseEdge -> [real: bb10, imaginary: bb2];
`
``
79
`+
FakeRead(ForMatchedPlace(None), _2);
`
``
80
`+
unreachable;
`
81
81
`}
`
82
82
``
83
83
`bb9: {
`
84
``
`-
goto -> bb2;
`
85
``
`-
}
`
86
``
-
87
``
`-
bb10: {
`
88
84
`StorageLive(_7);
`
89
85
`_7 = &((_2 as Some).0: i32);
`
90
86
`_3 = &fake shallow _2;
`
91
87
`StorageLive(_8);
`
92
``
`-
_8 = guard() -> [return: bb11, unwind: bb24];
`
``
88
`+
_8 = guard() -> [return: bb10, unwind: bb22];
`
93
89
`}
`
94
90
``
95
``
`-
bb11: {
`
96
``
`-
switchInt(move _8) -> [0: bb13, otherwise: bb12];
`
``
91
`+
bb10: {
`
``
92
`+
switchInt(move _8) -> [0: bb12, otherwise: bb11];
`
97
93
`}
`
98
94
``
99
``
`-
bb12: {
`
``
95
`+
bb11: {
`
100
96
`StorageDead(_8);
`
101
97
`FakeRead(ForMatchGuard, _3);
`
102
98
`FakeRead(ForGuardBinding, _7);
`
`@@ -105,42 +101,42 @@ fn main() -> () {
`
105
101
`_1 = const 1_i32;
`
106
102
`StorageDead(_6);
`
107
103
`StorageDead(_7);
`
108
``
`-
goto -> bb21;
`
``
104
`+
goto -> bb20;
`
109
105
`}
`
110
106
``
111
``
`-
bb13: {
`
112
``
`-
goto -> bb14;
`
``
107
`+
bb12: {
`
``
108
`+
goto -> bb13;
`
113
109
`}
`
114
110
``
115
``
`-
bb14: {
`
``
111
`+
bb13: {
`
116
112
`StorageDead(_8);
`
117
113
`StorageDead(_7);
`
118
``
`-
falseEdge -> [real: bb9, imaginary: bb2];
`
``
114
`+
falseEdge -> [real: bb3, imaginary: bb1];
`
119
115
`}
`
120
116
``
121
``
`-
bb15: {
`
``
117
`+
bb14: {
`
122
118
`StorageLive(_9);
`
123
119
`_9 = _2;
`
124
120
`_1 = const 2_i32;
`
125
121
`StorageDead(_9);
`
126
``
`-
goto -> bb21;
`
``
122
`+
goto -> bb20;
`
127
123
`}
`
128
124
``
129
``
`-
bb16: {
`
``
125
`+
bb15: {
`
130
126
`StorageLive(_11);
`
131
127
`_11 = &((_2 as Some).0: i32);
`
132
128
`_3 = &fake shallow _2;
`
133
129
`StorageLive(_12);
`
134
130
`StorageLive(_13);
`
135
131
`_13 = (*_11);
`
136
``
`-
_12 = guard2(move _13) -> [return: bb17, unwind: bb24];
`
``
132
`+
_12 = guard2(move _13) -> [return: bb16, unwind: bb22];
`
137
133
`}
`
138
134
``
139
``
`-
bb17: {
`
140
``
`-
switchInt(move _12) -> [0: bb19, otherwise: bb18];
`
``
135
`+
bb16: {
`
``
136
`+
switchInt(move _12) -> [0: bb18, otherwise: bb17];
`
141
137
`}
`
142
138
``
143
``
`-
bb18: {
`
``
139
`+
bb17: {
`
144
140
`StorageDead(_13);
`
145
141
`StorageDead(_12);
`
146
142
`FakeRead(ForMatchGuard, _3);
`
`@@ -150,38 +146,34 @@ fn main() -> () {
`
150
146
`_1 = const 3_i32;
`
151
147
`StorageDead(_10);
`
152
148
`StorageDead(_11);
`
153
``
`-
goto -> bb21;
`
``
149
`+
goto -> bb20;
`
154
150
`}
`
155
151
``
156
``
`-
bb19: {
`
157
``
`-
goto -> bb20;
`
``
152
`+
bb18: {
`
``
153
`+
goto -> bb19;
`
158
154
`}
`
159
155
``
160
``
`-
bb20: {
`
``
156
`+
bb19: {
`
161
157
`StorageDead(_13);
`
162
158
`StorageDead(_12);
`
163
159
`StorageDead(_11);
`
164
``
`-
falseEdge -> [real: bb7, imaginary: bb4];
`
``
160
`+
falseEdge -> [real: bb7, imaginary: bb5];
`
165
161
`}
`
166
162
``
167
``
`-
bb21: {
`
``
163
`+
bb20: {
`
168
164
`PlaceMention(_1);
`
169
165
`StorageDead(_2);
`
170
166
`StorageDead(_1);
`
171
167
`_0 = const ();
`
172
168
`return;
`
173
169
`}
`
174
170
``
175
``
`-
bb22: {
`
``
171
`+
bb21: {
`
176
172
`FakeRead(ForMatchedPlace(None), _1);
`
177
173
`unreachable;
`
178
174
`}
`
179
175
``
180
``
`-
bb23: {
`
181
``
`-
goto -> bb22;
`
182
``
`-
}
`
183
``
-
184
``
`-
bb24 (cleanup): {
`
``
176
`+
bb22 (cleanup): {
`
185
177
`resume;
`
186
178
`}
`
187
179
`}
`