@@ -1601,9 +1601,9 @@ PassBuilder::buildModuleOptimizationPipeline(OptimizationLevel Level,
1601
1601
1602
1602
ModulePassManager
1603
1603
PassBuilder::buildPerModuleDefaultPipeline (OptimizationLevel Level,
1604
- bool LTOPreLink ) {
1604
+ ThinOrFullLTOPhase Phase ) {
1605
1605
if (Level == OptimizationLevel::O0)
1606
- return buildO0DefaultPipeline (Level, LTOPreLink );
1606
+ return buildO0DefaultPipeline (Level, Phase );
1607
1607
1608
1608
ModulePassManager MPM;
1609
1609
@@ -1619,14 +1619,11 @@ PassBuilder::buildPerModuleDefaultPipeline(OptimizationLevel Level,
1619
1619
// Apply module pipeline start EP callback.
1620
1620
invokePipelineStartEPCallbacks (MPM, Level);
1621
1621
1622
- const ThinOrFullLTOPhase LTOPhase = LTOPreLink
1623
- ? ThinOrFullLTOPhase::FullLTOPreLink
1624
- : ThinOrFullLTOPhase::None;
1625
1622
// Add the core simplification pipeline.
1626
- MPM.addPass (buildModuleSimplificationPipeline (Level, LTOPhase ));
1623
+ MPM.addPass (buildModuleSimplificationPipeline (Level, Phase ));
1627
1624
1628
1625
// Now add the optimization pipeline.
1629
- MPM.addPass (buildModuleOptimizationPipeline (Level, LTOPhase ));
1626
+ MPM.addPass (buildModuleOptimizationPipeline (Level, Phase ));
1630
1627
1631
1628
if (PGOOpt && PGOOpt->PseudoProbeForProfiling &&
1632
1629
PGOOpt->Action == PGOOptions::SampleUse)
@@ -1635,7 +1632,7 @@ PassBuilder::buildPerModuleDefaultPipeline(OptimizationLevel Level,
1635
1632
// Emit annotation remarks.
1636
1633
addAnnotationRemarksPass (MPM);
1637
1634
1638
- if (LTOPreLink )
1635
+ if (isLTOPreLink (Phase) )
1639
1636
addRequiredLTOPreLinkPasses (MPM);
1640
1637
return MPM;
1641
1638
}
@@ -1673,7 +1670,7 @@ PassBuilder::buildFatLTODefaultPipeline(OptimizationLevel Level, bool ThinLTO,
1673
1670
ModulePassManager
1674
1671
PassBuilder::buildThinLTOPreLinkDefaultPipeline (OptimizationLevel Level) {
1675
1672
if (Level == OptimizationLevel::O0)
1676
- return buildO0DefaultPipeline (Level, /* LTOPreLink */ true );
1673
+ return buildO0DefaultPipeline (Level, ThinOrFullLTOPhase::ThinLTOPreLink );
1677
1674
1678
1675
ModulePassManager MPM;
1679
1676
@@ -1794,7 +1791,7 @@ ModulePassManager
1794
1791
PassBuilder::buildLTOPreLinkDefaultPipeline (OptimizationLevel Level) {
1795
1792
// FIXME: We should use a customized pre-link pipeline!
1796
1793
return buildPerModuleDefaultPipeline (Level,
1797
- /* LTOPreLink */ true );
1794
+ ThinOrFullLTOPhase::FullLTOPreLink );
1798
1795
}
1799
1796
1800
1797
ModulePassManager
@@ -2124,8 +2121,9 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
2124
2121
return MPM;
2125
2122
}
2126
2123
2127
- ModulePassManager PassBuilder::buildO0DefaultPipeline (OptimizationLevel Level,
2128
- bool LTOPreLink) {
2124
+ ModulePassManager
2125
+ PassBuilder::buildO0DefaultPipeline (OptimizationLevel Level,
2126
+ ThinOrFullLTOPhase Phase) {
2129
2127
assert (Level == OptimizationLevel::O0 &&
2130
2128
" buildO0DefaultPipeline should only be used with O0" );
2131
2129
@@ -2220,7 +2218,7 @@ ModulePassManager PassBuilder::buildO0DefaultPipeline(OptimizationLevel Level,
2220
2218
2221
2219
invokeOptimizerLastEPCallbacks (MPM, Level);
2222
2220
2223
- if (LTOPreLink )
2221
+ if (isLTOPreLink (Phase) )
2224
2222
addRequiredLTOPreLinkPasses (MPM);
2225
2223
2226
2224
MPM.addPass (createModuleToFunctionPassAdaptor (AnnotationRemarksPass ()));
0 commit comments