File tree Expand file tree Collapse file tree 1 file changed +6
-5
lines changed
lib/SILOptimizer/PassManager Expand file tree Collapse file tree 1 file changed +6
-5
lines changed Original file line number Diff line number Diff line change @@ -157,6 +157,12 @@ static void addMandatoryDiagnosticOptPipeline(SILPassPipelinePlan &P) {
157
157
// SSA based diagnostics.
158
158
P.addPredictableMemoryAccessOptimizations ();
159
159
160
+ // Now that we have promoted simple loads for SSA based diagnostics, perform
161
+ // SSA based move function checking and no implicit copy checking.
162
+ P.addMoveKillsCopyableValuesChecker (); // No uses after _move of copyable
163
+ // value.
164
+ P.addMoveOnlyChecker (); // Check noImplicitCopy isn't copied.
165
+
160
166
// This phase performs optimizations necessary for correct interoperation of
161
167
// Swift os log APIs with C os_log ABIs.
162
168
// Pass dependencies: this pass depends on MandatoryInlining and Mandatory
@@ -173,11 +179,6 @@ static void addMandatoryDiagnosticOptPipeline(SILPassPipelinePlan &P) {
173
179
// dead allocations.
174
180
P.addPredictableDeadAllocationElimination ();
175
181
176
- // Now perform move semantic checking.
177
- P.addMoveKillsCopyableValuesChecker (); // No uses after _move of copyable
178
- // value.
179
- P.addMoveOnlyChecker (); // Check noImplicitCopy isn't copied.
180
-
181
182
// Now that we have finished performing diagnostics that rely on lexical
182
183
// scopes, if lexical lifetimes are not enabled, eliminate lexical lfietimes.
183
184
if (Options.LexicalLifetimes != LexicalLifetimesOption::On) {
You can’t perform that action at this time.
0 commit comments