Skip to content

Commit cb4db5a

Browse files
committed
Test lowering OSSA in the optimization pipeline
1 parent 2e92644 commit cb4db5a

File tree

1 file changed

+20
-29
lines changed

1 file changed

+20
-29
lines changed

lib/SILOptimizer/PassManager/PassPipeline.cpp

Lines changed: 20 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -515,16 +515,6 @@ void addFunctionPasses(SILPassPipelinePlan &P,
515515
P.addSemanticARCOpts();
516516
P.addCopyToBorrowOptimization();
517517

518-
if (!P.getOptions().EnableOSSAModules) {
519-
if (P.getOptions().StopOptimizationBeforeLoweringOwnership)
520-
return;
521-
522-
if (SILPrintFinalOSSAModule) {
523-
addModulePrinterPipeline(P, "SIL Print Final OSSA Module");
524-
}
525-
P.addNonTransparentFunctionOwnershipModelEliminator();
526-
}
527-
528518
switch (OpLevel) {
529519
case OptimizationLevelKind::HighLevel:
530520
// Does not inline functions with defined semantics or effects.
@@ -538,13 +528,11 @@ void addFunctionPasses(SILPassPipelinePlan &P,
538528
}
539529

540530
// Clean up Semantic ARC before we perform additional post-inliner opts.
541-
if (P.getOptions().EnableOSSAModules) {
542-
if (P.getOptions().CopyPropagation != CopyPropagationOption::Off) {
543-
P.addCopyPropagation();
544-
}
545-
P.addSemanticARCOpts();
546-
P.addCopyToBorrowOptimization();
531+
if (P.getOptions().CopyPropagation != CopyPropagationOption::Off) {
532+
P.addCopyPropagation();
547533
}
534+
P.addSemanticARCOpts();
535+
P.addCopyToBorrowOptimization();
548536

549537
// Promote stack allocations to values and eliminate redundant
550538
// loads.
@@ -605,14 +593,12 @@ void addFunctionPasses(SILPassPipelinePlan &P,
605593
P.addARCSequenceOpts();
606594

607595
// Run a final round of ARC opts when ownership is enabled.
608-
if (P.getOptions().EnableOSSAModules) {
609-
P.addDestroyHoisting();
610-
if (P.getOptions().CopyPropagation != CopyPropagationOption::Off) {
611-
P.addCopyPropagation();
612-
}
613-
P.addSemanticARCOpts();
614-
P.addCopyToBorrowOptimization();
596+
P.addDestroyHoisting();
597+
if (P.getOptions().CopyPropagation != CopyPropagationOption::Off) {
598+
P.addCopyPropagation();
615599
}
600+
P.addSemanticARCOpts();
601+
P.addCopyToBorrowOptimization();
616602
}
617603

618604
static void addPerfDebugSerializationPipeline(SILPassPipelinePlan &P) {
@@ -994,13 +980,11 @@ SILPassPipelinePlan::getPerformancePassPipeline(const SILOptions &Options) {
994980

995981
// Run one last copy propagation/semantic arc opts run before serialization/us
996982
// lowering ownership.
997-
if (P.getOptions().EnableOSSAModules) {
998-
if (P.getOptions().CopyPropagation != CopyPropagationOption::Off) {
999-
P.addCopyPropagation();
1000-
}
1001-
P.addSemanticARCOpts();
1002-
P.addCopyToBorrowOptimization();
983+
if (P.getOptions().CopyPropagation != CopyPropagationOption::Off) {
984+
P.addCopyPropagation();
1003985
}
986+
P.addSemanticARCOpts();
987+
P.addCopyToBorrowOptimization();
1004988

1005989
P.addCrossModuleOptimization();
1006990

@@ -1011,6 +995,13 @@ SILPassPipelinePlan::getPerformancePassPipeline(const SILOptions &Options) {
1011995
// importing this module.
1012996
P.addSerializeSILPass();
1013997

998+
if (P.getOptions().StopOptimizationBeforeLoweringOwnership)
999+
return P;
1000+
1001+
if (SILPrintFinalOSSAModule) {
1002+
addModulePrinterPipeline(P, "SIL Print Final OSSA Module");
1003+
}
1004+
10141005
if (P.getOptions().EnableOSSAModules && SILPrintFinalOSSAModule) {
10151006
addModulePrinterPipeline(P, "SIL Print Final OSSA Module");
10161007
}

0 commit comments

Comments
 (0)