@@ -1840,6 +1840,8 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
18401840 MPM.addPass (LowerTypeTestsPass (nullptr , nullptr ,
18411841 lowertypetests::DropTestKind::Assume));
18421842
1843+ MPM.addPass (buildCoroWrapper (ThinOrFullLTOPhase::FullLTOPostLink));
1844+
18431845 invokeFullLinkTimeOptimizationLastEPCallbacks (MPM, Level);
18441846
18451847 // Emit annotation remarks.
@@ -1924,6 +1926,8 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
19241926 MPM.addPass (LowerTypeTestsPass (nullptr , nullptr ,
19251927 lowertypetests::DropTestKind::Assume));
19261928
1929+ MPM.addPass (buildCoroWrapper (ThinOrFullLTOPhase::FullLTOPostLink));
1930+
19271931 invokeFullLinkTimeOptimizationLastEPCallbacks (MPM, Level);
19281932
19291933 // Emit annotation remarks.
@@ -1932,6 +1936,9 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
19321936 return MPM;
19331937 }
19341938
1939+ // TODO: Skip to match buildCoroWrapper.
1940+ MPM.addPass (CoroEarlyPass ());
1941+
19351942 // Optimize globals to try and fold them into constants.
19361943 MPM.addPass (GlobalOptPass ());
19371944
@@ -1997,7 +2004,11 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
19972004
19982005 // If we didn't decide to inline a function, check to see if we can
19992006 // transform it to pass arguments by value instead of by reference.
2000- MPM.addPass (createModuleToPostOrderCGSCCPassAdaptor (ArgumentPromotionPass ()));
2007+ CGSCCPassManager CGPM;
2008+ CGPM.addPass (ArgumentPromotionPass ());
2009+ CGPM.addPass (CoroSplitPass (Level != OptimizationLevel::O0));
2010+ CGPM.addPass (CoroAnnotationElidePass ());
2011+ MPM.addPass (createModuleToPostOrderCGSCCPassAdaptor (std::move (CGPM)));
20012012
20022013 FunctionPassManager FPM;
20032014 // The IPO Passes may leave cruft around. Clean up after them.
@@ -2149,6 +2160,8 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
21492160 if (PTO.CallGraphProfile )
21502161 MPM.addPass (CGProfilePass (/* InLTOPostLink=*/ true ));
21512162
2163+ MPM.addPass (CoroCleanupPass ());
2164+
21522165 invokeFullLinkTimeOptimizationLastEPCallbacks (MPM, Level);
21532166
21542167 // Emit annotation remarks.
0 commit comments