@@ -183,13 +183,22 @@ static void addMandatoryDiagnosticOptPipeline(SILPassPipelinePlan &P) {
183
183
if (EnableDeinitDevirtualizer)
184
184
P.addDeinitDevirtualizer ();
185
185
186
+ // FIXME: rdar://122701694 (`consuming` keyword causes verification error on
187
+ // invalid SIL types)
188
+ //
186
189
// Lower move only wrapped trivial types.
187
- P.addTrivialMoveOnlyTypeEliminator ();
190
+ // P.addTrivialMoveOnlyTypeEliminator();
191
+
188
192
// Check no uses after consume operator of a value in an address.
189
193
P.addConsumeOperatorCopyableAddressesChecker ();
190
194
// No uses after consume operator of copyable value.
191
195
P.addConsumeOperatorCopyableValuesChecker ();
192
196
197
+ // As a temporary measure, we also eliminate move only for non-trivial types
198
+ // until we can audit the later part of the pipeline. Eventually, this should
199
+ // occur before IRGen.
200
+ P.addMoveOnlyTypeEliminator ();
201
+
193
202
//
194
203
// End Ownership Optimizations
195
204
// ===---
@@ -255,11 +264,6 @@ static void addMandatoryDiagnosticOptPipeline(SILPassPipelinePlan &P) {
255
264
// Canonical swift requires all non cond_br critical edges to be split.
256
265
P.addSplitNonCondBrCriticalEdges ();
257
266
258
- // As a temporary measure, we also eliminate move only for non-trivial types
259
- // until we can audit the later part of the pipeline. Eventually, this should
260
- // occur before IRGen.
261
- P.addMoveOnlyTypeEliminator ();
262
-
263
267
// For embedded Swift: Specialize generic class vtables.
264
268
P.addVTableSpecializer ();
265
269
0 commit comments