[llvm] 0d28b92 - [AArch64] Don't run loop-idiom-vectorize pass in the O0 pipeline (#156802)

via llvm-commits llvm-commits at lists.llvm.org
Sat Sep 6 00:12:40 PDT 2025


Author: Fangrui Song
Date: 2025-09-06T00:12:36-07:00
New Revision: 0d28b925064e3b4e14555e137dd97651c1067b7c

URL: https://github.com/llvm/llvm-project/commit/0d28b925064e3b4e14555e137dd97651c1067b7c
DIFF: https://github.com/llvm/llvm-project/commit/0d28b925064e3b4e14555e137dd97651c1067b7c.diff

LOG: [AArch64] Don't run loop-idiom-vectorize pass in the O0 pipeline (#156802)

As noted in #156787

Added: 
    llvm/test/CodeGen/AArch64/print-pipeline-passes.ll

Modified: 
    llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
    llvm/lib/Target/AArch64/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
index e67bd5869ccd1..4650b2d0c8151 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+++ b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
@@ -589,7 +589,8 @@ void AArch64TargetMachine::registerPassBuilderCallbacks(PassBuilder &PB) {
 
   PB.registerLateLoopOptimizationsEPCallback(
       [=](LoopPassManager &LPM, OptimizationLevel Level) {
-        LPM.addPass(LoopIdiomVectorizePass());
+        if (Level != OptimizationLevel::O0)
+          LPM.addPass(LoopIdiomVectorizePass());
       });
   if (getTargetTriple().isOSWindows())
     PB.registerPipelineEarlySimplificationEPCallback(

diff  --git a/llvm/lib/Target/AArch64/CMakeLists.txt b/llvm/lib/Target/AArch64/CMakeLists.txt
index 79b56ea9cf850..71017b37cf49c 100644
--- a/llvm/lib/Target/AArch64/CMakeLists.txt
+++ b/llvm/lib/Target/AArch64/CMakeLists.txt
@@ -108,6 +108,7 @@ add_llvm_target(AArch64CodeGen
   Core
   GlobalISel
   MC
+  Passes
   Scalar
   SelectionDAG
   Support

diff  --git a/llvm/test/CodeGen/AArch64/print-pipeline-passes.ll b/llvm/test/CodeGen/AArch64/print-pipeline-passes.ll
new file mode 100644
index 0000000000000..5852f97a63798
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/print-pipeline-passes.ll
@@ -0,0 +1,10 @@
+; RUN: opt -mtriple=aarch64 -S -passes='default<O0>' -print-pipeline-passes < %s | FileCheck --check-prefix=O0 %s
+; RUN: opt -mtriple=aarch64 -S -passes='default<O2>' -print-pipeline-passes < %s | FileCheck %s
+
+; CHECK: loop-idiom-vectorize
+; O0: {{^}}function(ee-instrument<>),always-inline,coro-cond(coro-early,cgscc(coro-split),coro-cleanup,globaldce),function(annotation-remarks),verify,print{{$}}
+
+define void @foo() {
+entry:
+  ret void
+}


        


More information about the llvm-commits mailing list