@@ -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
618604static 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