[llvm] [NFC][VP] Reduce parameters in `LoopVectorizePass::runImpl` (PR #103551)

via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 13 20:57:49 PDT 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-transforms

Author: Shao-Ce SUN (sunshaoce)

<details>
<summary>Changes</summary>

It seems that the parameters can be passed through the class members.

---
Full diff: https://github.com/llvm/llvm-project/pull/103551.diff


2 Files Affected:

- (modified) llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h (+1-7) 
- (modified) llvm/lib/Transforms/Vectorize/LoopVectorize.cpp (+18-35) 


``````````diff
diff --git a/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h b/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
index 9d564a3279ce77..24b6354662955e 100644
--- a/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
+++ b/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
@@ -188,13 +188,7 @@ struct LoopVectorizePass : public PassInfoMixin<LoopVectorizePass> {
                      function_ref<StringRef(StringRef)> MapClassName2PassName);
 
   // Shim for old PM.
-  LoopVectorizeResult runImpl(Function &F, ScalarEvolution &SE_, LoopInfo &LI_,
-                              TargetTransformInfo &TTI_, DominatorTree &DT_,
-                              BlockFrequencyInfo *BFI_, TargetLibraryInfo *TLI_,
-                              DemandedBits &DB_, AssumptionCache &AC_,
-                              LoopAccessInfoManager &LAIs_,
-                              OptimizationRemarkEmitter &ORE_,
-                              ProfileSummaryInfo *PSI_);
+  LoopVectorizeResult runImpl(Function &F);
 
   bool processLoop(Loop *L);
 };
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index f5337b11edc977..83e41f04b2f0ff 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -10176,22 +10176,7 @@ bool LoopVectorizePass::processLoop(Loop *L) {
   return true;
 }
 
-LoopVectorizeResult LoopVectorizePass::runImpl(
-    Function &F, ScalarEvolution &SE_, LoopInfo &LI_, TargetTransformInfo &TTI_,
-    DominatorTree &DT_, BlockFrequencyInfo *BFI_, TargetLibraryInfo *TLI_,
-    DemandedBits &DB_, AssumptionCache &AC_, LoopAccessInfoManager &LAIs_,
-    OptimizationRemarkEmitter &ORE_, ProfileSummaryInfo *PSI_) {
-  SE = &SE_;
-  LI = &LI_;
-  TTI = &TTI_;
-  DT = &DT_;
-  BFI = BFI_;
-  TLI = TLI_;
-  AC = &AC_;
-  LAIs = &LAIs_;
-  DB = &DB_;
-  ORE = &ORE_;
-  PSI = PSI_;
+LoopVectorizeResult LoopVectorizePass::runImpl(Function &F) {
 
   // Don't attempt if
   // 1. the target claims to have no vector registers, and
@@ -10251,28 +10236,26 @@ LoopVectorizeResult LoopVectorizePass::runImpl(
 
 PreservedAnalyses LoopVectorizePass::run(Function &F,
                                          FunctionAnalysisManager &AM) {
-    auto &LI = AM.getResult<LoopAnalysis>(F);
-    // There are no loops in the function. Return before computing other expensive
-    // analyses.
-    if (LI.empty())
+    LI = &AM.getResult<LoopAnalysis>(F);
+    // There are no loops in the function. Return before computing other
+    // expensive analyses.
+    if (LI->empty())
       return PreservedAnalyses::all();
-    auto &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
-    auto &TTI = AM.getResult<TargetIRAnalysis>(F);
-    auto &DT = AM.getResult<DominatorTreeAnalysis>(F);
-    auto &TLI = AM.getResult<TargetLibraryAnalysis>(F);
-    auto &AC = AM.getResult<AssumptionAnalysis>(F);
-    auto &DB = AM.getResult<DemandedBitsAnalysis>(F);
-    auto &ORE = AM.getResult<OptimizationRemarkEmitterAnalysis>(F);
-
-    LoopAccessInfoManager &LAIs = AM.getResult<LoopAccessAnalysis>(F);
+    SE = &AM.getResult<ScalarEvolutionAnalysis>(F);
+    TTI = &AM.getResult<TargetIRAnalysis>(F);
+    DT = &AM.getResult<DominatorTreeAnalysis>(F);
+    TLI = &AM.getResult<TargetLibraryAnalysis>(F);
+    AC = &AM.getResult<AssumptionAnalysis>(F);
+    DB = &AM.getResult<DemandedBitsAnalysis>(F);
+    ORE = &AM.getResult<OptimizationRemarkEmitterAnalysis>(F);
+    LAIs = &AM.getResult<LoopAccessAnalysis>(F);
+
     auto &MAMProxy = AM.getResult<ModuleAnalysisManagerFunctionProxy>(F);
-    ProfileSummaryInfo *PSI =
-        MAMProxy.getCachedResult<ProfileSummaryAnalysis>(*F.getParent());
-    BlockFrequencyInfo *BFI = nullptr;
+    PSI = MAMProxy.getCachedResult<ProfileSummaryAnalysis>(*F.getParent());
+    BFI = nullptr;
     if (PSI && PSI->hasProfileSummary())
       BFI = &AM.getResult<BlockFrequencyAnalysis>(F);
-    LoopVectorizeResult Result =
-        runImpl(F, SE, LI, TTI, DT, BFI, &TLI, DB, AC, LAIs, ORE, PSI);
+    LoopVectorizeResult Result = runImpl(F);
     if (!Result.MadeAnyChange)
       return PreservedAnalyses::all();
     PreservedAnalyses PA;
@@ -10298,7 +10281,7 @@ PreservedAnalyses LoopVectorizePass::run(Function &F,
       PA.preserveSet<CFGAnalyses>();
     }
     return PA;
-}
+  }
 
 void LoopVectorizePass::printPipeline(
     raw_ostream &OS, function_ref<StringRef(StringRef)> MapClassName2PassName) {

``````````

</details>


https://github.com/llvm/llvm-project/pull/103551


More information about the llvm-commits mailing list