From 7f627596977624730f9298a1b69883af1555765e Mon Sep 17 00:00:00 2001 From: Arthur Eubanks Date: Fri, 5 Nov 2021 09:31:14 -0700 Subject: [PATCH] [polly] Properly create and initialize new PM analysis managers If we don't properly initialize all the analysis managers, we may be missing analyses that other analyses depend on. Fixes broken polly test, e.g. https://lab.llvm.org/buildbot/#/builders/10/builds/7501. --- polly/lib/Transform/ScopInliner.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/polly/lib/Transform/ScopInliner.cpp b/polly/lib/Transform/ScopInliner.cpp index 5054b66c..ed54731 100644 --- a/polly/lib/Transform/ScopInliner.cpp +++ b/polly/lib/Transform/ScopInliner.cpp @@ -68,9 +68,17 @@ public: } PassBuilder PB; + // Populate analysis managers and register Polly-specific analyses. + LoopAnalysisManager LAM; FunctionAnalysisManager FAM; + CGSCCAnalysisManager CGAM; + ModuleAnalysisManager MAM; FAM.registerPass([] { return ScopAnalysis(); }); + PB.registerModuleAnalyses(MAM); + PB.registerCGSCCAnalyses(CGAM); PB.registerFunctionAnalyses(FAM); + PB.registerLoopAnalyses(LAM); + PB.crossRegisterProxies(LAM, FAM, CGAM, MAM); RegionInfo &RI = FAM.getResult(*F); ScopDetection &SD = FAM.getResult(*F); @@ -84,9 +92,6 @@ public: << " has scop as top level region"); F->addFnAttr(llvm::Attribute::AlwaysInline); - ModuleAnalysisManager MAM; - PB.registerModuleAnalyses(MAM); - MAM.registerPass([&] { return FunctionAnalysisManagerModuleProxy(FAM); }); ModulePassManager MPM; MPM.addPass(AlwaysInlinerPass()); Module *M = F->getParent(); -- 2.7.4