[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