@@ -1840,6 +1840,8 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
1840
1840
MPM.addPass (LowerTypeTestsPass (nullptr , nullptr ,
1841
1841
lowertypetests::DropTestKind::Assume));
1842
1842
1843
+ MPM.addPass (buildCoroWrapper (ThinOrFullLTOPhase::FullLTOPostLink));
1844
+
1843
1845
invokeFullLinkTimeOptimizationLastEPCallbacks (MPM, Level);
1844
1846
1845
1847
// Emit annotation remarks.
@@ -1924,6 +1926,8 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
1924
1926
MPM.addPass (LowerTypeTestsPass (nullptr , nullptr ,
1925
1927
lowertypetests::DropTestKind::Assume));
1926
1928
1929
+ MPM.addPass (buildCoroWrapper (ThinOrFullLTOPhase::FullLTOPostLink));
1930
+
1927
1931
invokeFullLinkTimeOptimizationLastEPCallbacks (MPM, Level);
1928
1932
1929
1933
// Emit annotation remarks.
@@ -1932,6 +1936,9 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
1932
1936
return MPM;
1933
1937
}
1934
1938
1939
+ // TODO: Skip to match buildCoroWrapper.
1940
+ MPM.addPass (CoroEarlyPass ());
1941
+
1935
1942
// Optimize globals to try and fold them into constants.
1936
1943
MPM.addPass (GlobalOptPass ());
1937
1944
@@ -1997,7 +2004,11 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
1997
2004
1998
2005
// If we didn't decide to inline a function, check to see if we can
1999
2006
// 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)));
2001
2012
2002
2013
FunctionPassManager FPM;
2003
2014
// The IPO Passes may leave cruft around. Clean up after them.
@@ -2149,6 +2160,8 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
2149
2160
if (PTO.CallGraphProfile )
2150
2161
MPM.addPass (CGProfilePass (/* InLTOPostLink=*/ true ));
2151
2162
2163
+ MPM.addPass (CoroCleanupPass ());
2164
+
2152
2165
invokeFullLinkTimeOptimizationLastEPCallbacks (MPM, Level);
2153
2166
2154
2167
// Emit annotation remarks.
0 commit comments