Lines Matching full:level

219 // independent of the opt level and exposed through the frontend.
222 cl::desc("Enable loop header duplication at any optimization level"));
334 OptimizationLevel Level) {
336 C(FPM, Level);
339 LoopPassManager &LPM, OptimizationLevel Level) {
341 C(LPM, Level);
344 OptimizationLevel Level) {
346 C(LPM, Level);
349 FunctionPassManager &FPM, OptimizationLevel Level) {
351 C(FPM, Level);
354 OptimizationLevel Level) {
356 C(CGPM, Level);
359 OptimizationLevel Level) {
361 C(FPM, Level);
364 OptimizationLevel Level) {
366 C(FPM, Level);
369 OptimizationLevel Level,
372 C(MPM, Level, Phase);
375 OptimizationLevel Level,
378 C(MPM, Level, Phase);
381 ModulePassManager &MPM, OptimizationLevel Level) {
383 C(MPM, Level);
386 ModulePassManager &MPM, OptimizationLevel Level) {
388 C(MPM, Level);
391 OptimizationLevel Level) {
393 C(MPM, Level);
396 ModulePassManager &MPM, OptimizationLevel Level, ThinOrFullLTOPhase Phase) {
398 C(MPM, Level, Phase);
414 PassBuilder::buildO1FunctionSimplificationPipeline(OptimizationLevel Level,
436 invokePeepholeEPCallbacks(FPM, Level);
484 invokeLateLoopOptimizationsEPCallbacks(LPM2, Level);
498 LPM2.addPass(LoopFullUnrollPass(Level.getSpeedupLevel(),
502 invokeLoopOptimizerEndEPCallbacks(LPM2, Level);
535 invokePeepholeEPCallbacks(FPM, Level);
539 invokeScalarOptimizerLateEPCallbacks(FPM, Level);
548 invokePeepholeEPCallbacks(FPM, Level);
554 PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level,
556 assert(Level != OptimizationLevel::O0 && "Must request optimizations!");
560 if (Level.getSpeedupLevel() == 1)
561 return buildO1FunctionSimplificationPipeline(Level, Phase);
604 if (!Level.isOptimizingForSize())
607 invokePeepholeEPCallbacks(FPM, Level);
612 !Level.isOptimizingForSize())
655 Level != OptimizationLevel::Oz,
661 SimpleLoopUnswitchPass(/* NonTrivial */ Level == OptimizationLevel::O3));
670 ExtraPasses.addPass(SimpleLoopUnswitchPass(/* NonTrivial */ Level ==
675 invokeLateLoopOptimizationsEPCallbacks(LPM2, Level);
689 LPM2.addPass(LoopFullUnrollPass(Level.getSpeedupLevel(),
693 invokeLoopOptimizerEndEPCallbacks(LPM2, Level);
735 invokePeepholeEPCallbacks(FPM, Level);
763 invokeScalarOptimizerLateEPCallbacks(FPM, Level);
770 invokePeepholeEPCallbacks(FPM, Level);
781 OptimizationLevel Level,
783 assert(Level != OptimizationLevel::O0 && "Not expecting O0 here!");
794 IP.HintThreshold = Level.isOptimizingForSize() ? PreInlineThreshold : 325;
806 invokePeepholeEPCallbacks(FPM, Level);
820 OptimizationLevel Level) {
826 Level != OptimizationLevel::Oz),
834 OptimizationLevel Level, bool RunProfileGen,
839 assert(Level != OptimizationLevel::O0 && "Not expecting O0 here!");
855 addPostPGOLoopRotation(MPM, Level);
860 // Do counter promotion at Level greater than O0.
901 static InlineParams getInlineParamsFromOptLevel(OptimizationLevel Level) {
902 return getInlineParams(Level.getSpeedupLevel(), Level.getSizeLevel());
906 PassBuilder::buildInlinerPipeline(OptimizationLevel Level,
910 IP = getInlineParamsFromOptLevel(Level);
966 if (Level == OptimizationLevel::O3)
971 if (Level == OptimizationLevel::O2 || Level == OptimizationLevel::O3)
974 invokeCGSCCOptimizerLateEPCallbacks(MainCGPipeline, Level);
979 buildFunctionSimplificationPipeline(Level, Phase),
993 MainCGPipeline.addPass(CoroSplitPass(Level != OptimizationLevel::O0));
1005 PassBuilder::buildModuleInlinerPipeline(OptimizationLevel Level,
1009 InlineParams IP = getInlineParamsFromOptLevel(Level);
1039 buildFunctionSimplificationPipeline(Level, Phase),
1044 CoroSplitPass(Level != OptimizationLevel::O0)));
1053 PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
1055 assert(Level != OptimizationLevel::O0 &&
1113 if (Level == OptimizationLevel::O3)
1152 invokePipelineEarlySimplificationEPCallbacks(MPM, Level, Phase);
1160 Level != OptimizationLevel::Os &&
1161 Level != OptimizationLevel::Oz &&
1177 invokePeepholeEPCallbacks(GlobalCleanupPM, Level);
1212 addPreInlinerPasses(MPM, Level, Phase);
1216 addPGOInstrPasses(MPM, Level,
1231 addPostPGOLoopRotation(MPM, Level);
1235 MPM, Level, /* RunProfileGen */ true, /* IsCS */ false,
1257 MPM.addPass(buildModuleInlinerPipeline(Level, Phase));
1259 MPM.addPass(buildInlinerPipeline(Level, Phase));
1276 void PassBuilder::addVectorPasses(OptimizationLevel Level,
1293 LoopUnrollAndJamPass(Level.getSpeedupLevel())));
1295 Level.getSpeedupLevel(), /*OnlyWhenForced=*/!PTO.LoopUnrolling,
1315 if (Level.getSpeedupLevel() > 1 && ExtraVectorizerPasses) {
1329 LPM.addPass(SimpleLoopUnswitchPass(/* NonTrivial */ Level ==
1366 if (Level.getSpeedupLevel() > 1 && ExtraVectorizerPasses) {
1384 LoopUnrollAndJamPass(Level.getSpeedupLevel())));
1387 Level.getSpeedupLevel(), /*OnlyWhenForced=*/!PTO.LoopUnrolling,
1419 PassBuilder::buildModuleOptimizationPipeline(OptimizationLevel Level,
1455 addPGOInstrPasses(MPM, Level, /*RunProfileGen=*/true,
1460 addPGOInstrPasses(MPM, Level, /*RunProfileGen=*/false,
1476 invokeOptimizerEarlyEPCallbacks(MPM, Level, LTOPhase);
1504 if (EnableCHR && Level == OptimizationLevel::O3)
1514 invokeVectorizerStartEPCallbacks(OptimizePM, Level);
1520 Level != OptimizationLevel::Oz,
1540 addVectorPasses(Level, OptimizePM, /* IsFullLTO */ false);
1542 invokeVectorizerEndEPCallbacks(OptimizePM, Level);
1573 invokeOptimizerLastEPCallbacks(MPM, Level, LTOPhase);
1612 PassBuilder::buildPerModuleDefaultPipeline(OptimizationLevel Level,
1614 if (Level == OptimizationLevel::O0)
1615 return buildO0DefaultPipeline(Level, Phase);
1629 invokePipelineStartEPCallbacks(MPM, Level);
1632 MPM.addPass(buildModuleSimplificationPipeline(Level, Phase));
1635 MPM.addPass(buildModuleOptimizationPipeline(Level, Phase));
1650 PassBuilder::buildFatLTODefaultPipeline(OptimizationLevel Level, bool ThinLTO,
1654 MPM.addPass(buildThinLTOPreLinkDefaultPipeline(Level));
1656 MPM.addPass(buildLTOPreLinkDefaultPipeline(Level));
1668 MPM.addPass(buildThinLTODefaultPipeline(Level, /*ImportSummary=*/nullptr));
1672 buildModuleOptimizationPipeline(Level, ThinOrFullLTOPhase::None));
1680 PassBuilder::buildThinLTOPreLinkDefaultPipeline(OptimizationLevel Level) {
1681 if (Level == OptimizationLevel::O0)
1682 return buildO0DefaultPipeline(Level, ThinOrFullLTOPhase::ThinLTOPreLink);
1696 invokePipelineStartEPCallbacks(MPM, Level);
1702 Level, ThinOrFullLTOPhase::ThinLTOPreLink));
1728 invokeOptimizerEarlyEPCallbacks(MPM, Level,
1730 invokeOptimizerLastEPCallbacks(MPM, Level,
1742 OptimizationLevel Level, const ModuleSummaryIndex *ImportSummary) {
1771 if (Level == OptimizationLevel::O0) {
1785 buildModuleInlinerPipeline(Level, ThinOrFullLTOPhase::ThinLTOPostLink));
1789 Level, ThinOrFullLTOPhase::ThinLTOPostLink));
1793 Level, ThinOrFullLTOPhase::ThinLTOPostLink));
1802 PassBuilder::buildLTOPreLinkDefaultPipeline(OptimizationLevel Level) {
1804 return buildPerModuleDefaultPipeline(Level,
1809 PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
1813 invokeFullLinkTimeOptimizationEarlyEPCallbacks(MPM, Level);
1819 if (Level == OptimizationLevel::O0) {
1829 invokeFullLinkTimeOptimizationLastEPCallbacks(MPM, Level);
1858 if (Level.getSpeedupLevel() > 1) {
1882 Level != OptimizationLevel::Os &&
1883 Level != OptimizationLevel::Oz)));
1903 if (Level == OptimizationLevel::O1) {
1913 invokeFullLinkTimeOptimizationLastEPCallbacks(MPM, Level);
1940 if (Level.getSpeedupLevel() > 1)
1942 invokePeepholeEPCallbacks(PeepholeFPM, Level);
1956 MPM.addPass(ModuleInlinerPass(getInlineParamsFromOptLevel(Level),
1961 getInlineParamsFromOptLevel(Level),
1991 invokePeepholeEPCallbacks(FPM, Level);
2002 addPGOInstrPasses(MPM, Level, /*RunProfileGen=*/true,
2007 addPGOInstrPasses(MPM, Level, /*RunProfileGen=*/false,
2056 invokeVectorizerStartEPCallbacks(MainFPM, Level);
2059 if (EnableLoopFlatten && Level.getSpeedupLevel() > 1)
2066 LPM.addPass(LoopFullUnrollPass(Level.getSpeedupLevel(),
2076 addVectorPasses(Level, MainFPM, /* IsFullLTO */ true);
2078 invokeVectorizerEndEPCallbacks(MainFPM, Level);
2084 invokePeepholeEPCallbacks(MainFPM, Level);
2138 invokeFullLinkTimeOptimizationLastEPCallbacks(MPM, Level);
2147 PassBuilder::buildO0DefaultPipeline(OptimizationLevel Level,
2149 assert(Level == OptimizationLevel::O0 &&
2173 invokePipelineStartEPCallbacks(MPM, Level);
2191 invokePipelineEarlySimplificationEPCallbacks(MPM, Level, Phase);
2209 invokeCGSCCOptimizerLateEPCallbacks(CGPM, Level);
2215 invokeLateLoopOptimizationsEPCallbacks(LPM, Level);
2223 invokeLoopOptimizerEndEPCallbacks(LPM, Level);
2231 invokeScalarOptimizerLateEPCallbacks(FPM, Level);
2236 invokeOptimizerEarlyEPCallbacks(MPM, Level, Phase);
2240 invokeVectorizerStartEPCallbacks(FPM, Level);
2247 invokeVectorizerEndEPCallbacks(FPM, Level);
2261 invokeOptimizerLastEPCallbacks(MPM, Level, Phase);