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