diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h index dafb1681e837e6..b3b58d6a203d19 100644 --- a/llvm/include/llvm/InitializePasses.h +++ b/llvm/include/llvm/InitializePasses.h @@ -212,7 +212,6 @@ void initializeLoopGuardWideningLegacyPassPass(PassRegistry&); void initializeLoopIdiomRecognizeLegacyPassPass(PassRegistry&); void initializeLoopInfoWrapperPassPass(PassRegistry&); void initializeLoopInstSimplifyLegacyPassPass(PassRegistry&); -void initializeLoopFlattenLegacyPassPass(PassRegistry&); void initializeLoopPassPass(PassRegistry&); void initializeLoopPredicationLegacyPassPass(PassRegistry&); void initializeLoopRerollLegacyPassPass(PassRegistry &); diff --git a/llvm/include/llvm/LinkAllPasses.h b/llvm/include/llvm/LinkAllPasses.h index a7391de8fe22f4..335460f700af8d 100644 --- a/llvm/include/llvm/LinkAllPasses.h +++ b/llvm/include/llvm/LinkAllPasses.h @@ -108,7 +108,6 @@ namespace { (void) llvm::createLoopSinkPass(); (void) llvm::createLazyValueInfoPass(); (void) llvm::createLoopExtractorPass(); - (void) llvm::createLoopFlattenPass(); (void) llvm::createLoopPredicationPass(); (void) llvm::createLoopSimplifyPass(); (void) llvm::createLoopSimplifyCFGPass(); diff --git a/llvm/include/llvm/Transforms/Scalar.h b/llvm/include/llvm/Transforms/Scalar.h index 85b19315dcd03a..44d57f21a3f1d2 100644 --- a/llvm/include/llvm/Transforms/Scalar.h +++ b/llvm/include/llvm/Transforms/Scalar.h @@ -143,12 +143,6 @@ Pass *createLoopSinkPass(); // Pass *createLoopPredicationPass(); -//===----------------------------------------------------------------------===// -// -// LoopFlatten - This pass flattens nested loops into a single loop. -// -FunctionPass *createLoopFlattenPass(); - //===----------------------------------------------------------------------===// // // LoopStrengthReduce - This pass is strength reduces GEP instructions that use diff --git a/llvm/lib/Transforms/Scalar/LoopFlatten.cpp b/llvm/lib/Transforms/Scalar/LoopFlatten.cpp index 7d9ce8d35e0b4f..9fc69f528617be 100644 --- a/llvm/lib/Transforms/Scalar/LoopFlatten.cpp +++ b/llvm/lib/Transforms/Scalar/LoopFlatten.cpp @@ -963,60 +963,3 @@ PreservedAnalyses LoopFlattenPass::run(LoopNest &LN, LoopAnalysisManager &LAM, PA.preserve(); return PA; } - -namespace { -class LoopFlattenLegacyPass : public FunctionPass { -public: - static char ID; // Pass ID, replacement for typeid - LoopFlattenLegacyPass() : FunctionPass(ID) { - initializeLoopFlattenLegacyPassPass(*PassRegistry::getPassRegistry()); - } - - // Possibly flatten loop L into its child. - bool runOnFunction(Function &F) override; - - void getAnalysisUsage(AnalysisUsage &AU) const override { - getLoopAnalysisUsage(AU); - AU.addRequired(); - AU.addPreserved(); - AU.addRequired(); - AU.addPreserved(); - AU.addPreserved(); - } -}; -} // namespace - -char LoopFlattenLegacyPass::ID = 0; -INITIALIZE_PASS_BEGIN(LoopFlattenLegacyPass, "loop-flatten", "Flattens loops", - false, false) -INITIALIZE_PASS_DEPENDENCY(TargetTransformInfoWrapperPass) -INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker) -INITIALIZE_PASS_END(LoopFlattenLegacyPass, "loop-flatten", "Flattens loops", - false, false) - -FunctionPass *llvm::createLoopFlattenPass() { - return new LoopFlattenLegacyPass(); -} - -bool LoopFlattenLegacyPass::runOnFunction(Function &F) { - ScalarEvolution *SE = &getAnalysis().getSE(); - LoopInfo *LI = &getAnalysis().getLoopInfo(); - auto *DTWP = getAnalysisIfAvailable(); - DominatorTree *DT = DTWP ? &DTWP->getDomTree() : nullptr; - auto &TTIP = getAnalysis(); - auto *TTI = &TTIP.getTTI(F); - auto *AC = &getAnalysis().getAssumptionCache(F); - auto *MSSA = getAnalysisIfAvailable(); - - std::optional MSSAU; - if (MSSA) - MSSAU = MemorySSAUpdater(&MSSA->getMSSA()); - - bool Changed = false; - for (Loop *L : *LI) { - auto LN = LoopNest::getLoopNest(*L, *SE); - Changed |= - Flatten(*LN, DT, LI, SE, AC, TTI, nullptr, MSSAU ? &*MSSAU : nullptr); - } - return Changed; -} diff --git a/llvm/lib/Transforms/Scalar/Scalar.cpp b/llvm/lib/Transforms/Scalar/Scalar.cpp index 31b39128dd1c4c..aa4dd61c497492 100644 --- a/llvm/lib/Transforms/Scalar/Scalar.cpp +++ b/llvm/lib/Transforms/Scalar/Scalar.cpp @@ -62,7 +62,6 @@ void llvm::initializeScalarOpts(PassRegistry &Registry) { initializeLoopDeletionLegacyPassPass(Registry); initializeLoopAccessLegacyAnalysisPass(Registry); initializeLoopInstSimplifyLegacyPassPass(Registry); - initializeLoopFlattenLegacyPassPass(Registry); initializeLoopPredicationLegacyPassPass(Registry); initializeLoopRotateLegacyPassPass(Registry); initializeLoopStrengthReducePass(Registry); @@ -175,10 +174,6 @@ void LLVMAddLoopDeletionPass(LLVMPassManagerRef PM) { unwrap(PM)->add(createLoopDeletionPass()); } -void LLVMAddLoopFlattenPass(LLVMPassManagerRef PM) { - unwrap(PM)->add(createLoopFlattenPass()); -} - void LLVMAddLoopIdiomPass(LLVMPassManagerRef PM) { unwrap(PM)->add(createLoopIdiomPass()); }