Skip to content

Commit dca7869

Browse files
committed
[move-only] Move the non-trivial move only type eliminator to the end of the guaranteed pipeline.
Still being careful with it. With time I want to move it back to IRGen.
1 parent 9d92d40 commit dca7869

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

lib/SILOptimizer/PassManager/PassPipeline.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,6 @@ static void addMandatoryDiagnosticOptPipeline(SILPassPipelinePlan &P) {
140140
P.addMoveKillsCopyableValuesChecker(); // No uses after _move of copyable
141141
// value.
142142
P.addTrivialMoveOnlyTypeEliminator();
143-
// As a temporary measure, we also eliminate move only for non-trivial types
144-
// until we can audit the later part of the pipeline. Eventually, this should
145-
// occur before IRGen.
146-
P.addMoveOnlyTypeEliminator();
147143

148144
P.addAddressLowering();
149145

@@ -221,6 +217,11 @@ static void addMandatoryDiagnosticOptPipeline(SILPassPipelinePlan &P) {
221217

222218
// Canonical swift requires all non cond_br critical edges to be split.
223219
P.addSplitNonCondBrCriticalEdges();
220+
221+
// As a temporary measure, we also eliminate move only for non-trivial types
222+
// until we can audit the later part of the pipeline. Eventually, this should
223+
// occur before IRGen.
224+
P.addMoveOnlyTypeEliminator();
224225
}
225226

226227
SILPassPipelinePlan

0 commit comments

Comments
 (0)