From 766065aa6553df4030e6f563b066410fcee9d751 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Tue, 14 Feb 2023 17:23:15 -0800 Subject: [PATCH] [LoopUnrollAndJam] Remove legacy pass Following recent changes to remove non-core features of the legacy PM/optimization pipeline. --- llvm/include/llvm-c/Transforms/Scalar.h | 3 - llvm/include/llvm/InitializePasses.h | 1 - llvm/include/llvm/LinkAllPasses.h | 1 - llvm/include/llvm/Transforms/Scalar.h | 6 -- .../lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp | 70 ---------------------- llvm/lib/Transforms/Scalar/Scalar.cpp | 5 -- 6 files changed, 86 deletions(-) diff --git a/llvm/include/llvm-c/Transforms/Scalar.h b/llvm/include/llvm-c/Transforms/Scalar.h index 1d09447..2fede0a 100644 --- a/llvm/include/llvm-c/Transforms/Scalar.h +++ b/llvm/include/llvm-c/Transforms/Scalar.h @@ -91,9 +91,6 @@ void LLVMAddLoopRerollPass(LLVMPassManagerRef PM); /** See llvm::createLoopUnrollPass function. */ void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM); -/** See llvm::createLoopUnrollAndJamPass function. */ -void LLVMAddLoopUnrollAndJamPass(LLVMPassManagerRef PM); - /** See llvm::createLowerAtomicPass function. */ void LLVMAddLowerAtomicPass(LLVMPassManagerRef PM); diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h index 165d4d2..665b29b 100644 --- a/llvm/include/llvm/InitializePasses.h +++ b/llvm/include/llvm/InitializePasses.h @@ -222,7 +222,6 @@ void initializeLoopRotateLegacyPassPass(PassRegistry&); void initializeLoopSimplifyCFGLegacyPassPass(PassRegistry&); void initializeLoopSimplifyPass(PassRegistry&); void initializeLoopStrengthReducePass(PassRegistry&); -void initializeLoopUnrollAndJamPass(PassRegistry&); void initializeLoopUnrollPass(PassRegistry&); void initializeLoopVectorizePass(PassRegistry&); void initializeLoopVersioningLICMLegacyPassPass(PassRegistry &); diff --git a/llvm/include/llvm/LinkAllPasses.h b/llvm/include/llvm/LinkAllPasses.h index b5ab8d8..d6e4cb2 100644 --- a/llvm/include/llvm/LinkAllPasses.h +++ b/llvm/include/llvm/LinkAllPasses.h @@ -116,7 +116,6 @@ namespace { (void) llvm::createLoopStrengthReducePass(); (void) llvm::createLoopRerollPass(); (void) llvm::createLoopUnrollPass(); - (void) llvm::createLoopUnrollAndJamPass(); (void) llvm::createLoopVersioningLICMPass(); (void) llvm::createLoopIdiomPass(); (void) llvm::createLoopRotatePass(); diff --git a/llvm/include/llvm/Transforms/Scalar.h b/llvm/include/llvm/Transforms/Scalar.h index 3fdea7b..5e3ced5 100644 --- a/llvm/include/llvm/Transforms/Scalar.h +++ b/llvm/include/llvm/Transforms/Scalar.h @@ -185,12 +185,6 @@ Pass *createSimpleLoopUnrollPass(int OptLevel = 2, bool OnlyWhenForced = false, //===----------------------------------------------------------------------===// // -// LoopUnrollAndJam - This pass is a simple loop unroll and jam pass. -// -Pass *createLoopUnrollAndJamPass(int OptLevel = 2); - -//===----------------------------------------------------------------------===// -// // LoopReroll - This pass is a simple loop rerolling pass. // Pass *createLoopRerollPass(); diff --git a/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp b/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp index 0ae26b4..18721f9 100644 --- a/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp +++ b/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp @@ -460,76 +460,6 @@ static bool tryToUnrollAndJamLoop(LoopNest &LN, DominatorTree &DT, LoopInfo &LI, return DidSomething; } -namespace { - -class LoopUnrollAndJam : public LoopPass { -public: - static char ID; // Pass ID, replacement for typeid - unsigned OptLevel; - - LoopUnrollAndJam(int OptLevel = 2) : LoopPass(ID), OptLevel(OptLevel) { - initializeLoopUnrollAndJamPass(*PassRegistry::getPassRegistry()); - } - - bool runOnLoop(Loop *L, LPPassManager &LPM) override { - if (skipLoop(L)) - return false; - - auto *F = L->getHeader()->getParent(); - auto &SE = getAnalysis().getSE(); - auto *LI = &getAnalysis().getLoopInfo(); - auto &DI = getAnalysis().getDI(); - auto &DT = getAnalysis().getDomTree(); - auto &TTI = getAnalysis().getTTI(*F); - auto &ORE = getAnalysis().getORE(); - auto &AC = getAnalysis().getAssumptionCache(*F); - - LoopUnrollResult Result = - tryToUnrollAndJamLoop(L, DT, LI, SE, TTI, AC, DI, ORE, OptLevel); - - if (Result == LoopUnrollResult::FullyUnrolled) - LPM.markLoopAsDeleted(*L); - - return Result != LoopUnrollResult::Unmodified; - } - - /// This transformation requires natural loop information & requires that - /// loop preheaders be inserted into the CFG... - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - getLoopAnalysisUsage(AU); - } -}; - -} // end anonymous namespace - -char LoopUnrollAndJam::ID = 0; - -INITIALIZE_PASS_BEGIN(LoopUnrollAndJam, "loop-unroll-and-jam", - "Unroll and Jam loops", false, false) -INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass) -INITIALIZE_PASS_DEPENDENCY(LoopPass) -INITIALIZE_PASS_DEPENDENCY(LoopInfoWrapperPass) -INITIALIZE_PASS_DEPENDENCY(LoopSimplify) -INITIALIZE_PASS_DEPENDENCY(LCSSAWrapperPass) -INITIALIZE_PASS_DEPENDENCY(ScalarEvolutionWrapperPass) -INITIALIZE_PASS_DEPENDENCY(TargetTransformInfoWrapperPass) -INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker) -INITIALIZE_PASS_DEPENDENCY(DependenceAnalysisWrapperPass) -INITIALIZE_PASS_DEPENDENCY(OptimizationRemarkEmitterWrapperPass) -INITIALIZE_PASS_END(LoopUnrollAndJam, "loop-unroll-and-jam", - "Unroll and Jam loops", false, false) - -Pass *llvm::createLoopUnrollAndJamPass(int OptLevel) { - return new LoopUnrollAndJam(OptLevel); -} - PreservedAnalyses LoopUnrollAndJamPass::run(LoopNest &LN, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, diff --git a/llvm/lib/Transforms/Scalar/Scalar.cpp b/llvm/lib/Transforms/Scalar/Scalar.cpp index cd29c5e..3b1531f 100644 --- a/llvm/lib/Transforms/Scalar/Scalar.cpp +++ b/llvm/lib/Transforms/Scalar/Scalar.cpp @@ -70,7 +70,6 @@ void llvm::initializeScalarOpts(PassRegistry &Registry) { initializeLoopStrengthReducePass(Registry); initializeLoopRerollLegacyPassPass(Registry); initializeLoopUnrollPass(Registry); - initializeLoopUnrollAndJamPass(Registry); initializeLoopVersioningLICMLegacyPassPass(Registry); initializeLoopIdiomRecognizeLegacyPassPass(Registry); initializeLowerAtomicLegacyPassPass(Registry); @@ -199,10 +198,6 @@ void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM) { unwrap(PM)->add(createLoopUnrollPass()); } -void LLVMAddLoopUnrollAndJamPass(LLVMPassManagerRef PM) { - unwrap(PM)->add(createLoopUnrollAndJamPass()); -} - void LLVMAddLowerAtomicPass(LLVMPassManagerRef PM) { unwrap(PM)->add(createLowerAtomicPass()); } -- 2.7.4