44 InlineParams IP = getInlineParams(Context, 200);
45 ModuleInlinerWrapperPass MIWP(IP);
49 MIWP.addModulePass(RequireAnalysisPass<GlobalsAA, Module>());
53 createModuleToFunctionPassAdaptor(InvalidateAnalysisPass<AAManager>()));
57 MIWP.addModulePass(RequireAnalysisPass<ProfileSummaryAnalysis, Module>());
63 CGSCCPassManager &MainCGPipeline = MIWP.getPM();
66 MainCGPipeline.addPass(PostOrderFunctionAttrsPass());
73 llvm::ModulePassManager &MPM,
74 llvm::OptimizationLevel Level) {
75 FunctionPassManager FPM;
77 bool UseMemSSA =
true;
78 FPM.addPass(PromotePass());
79 FPM.addPass(EarlyCSEPass(UseMemSSA));
80 FPM.addPass(InstCombinePass());
81 FPM.addPass(SimplifyCFGPass());
82 FPM.addPass(TailCallElimPass());
83 FPM.addPass(SimplifyCFGPass());
84 FPM.addPass(ReassociatePass());
87 LPM.addPass(LoopRotatePass());
88 FPM.addPass(createFunctionToLoopPassAdaptor<LoopPassManager>(
89 std::move(LPM),
false));
92 MPM.addPass(createModuleToFunctionPassAdaptor(std::move(FPM)));
94 FPM = FunctionPassManager();
96 FPM.addPass(PromotePass());
97 FPM.addPass(SimplifyCFGPass());
98 FPM.addPass(InstCombinePass());
100 FPM.addPass(InstCombinePass());
103 LPM.addPass(IndVarSimplifyPass());
104 FPM.addPass(createFunctionToLoopPassAdaptor<LoopPassManager>(
105 std::move(LPM),
false));
static cl::opt< bool > PollyInliner("polly-run-inliner", cl::desc("Run an early inliner pass before Polly"), cl::Hidden, cl::cat(PollyCategory))
llvm::FunctionPassManager buildCanonicalicationPassesForNPM(llvm::LLVMContext &Context, llvm::ModulePassManager &MPM, llvm::OptimizationLevel Level)
Schedule a set of canonicalization passes to prepare for Polly.