[llvm-branch-commits] [llvm] [CodeGen][NPM] Isolate CanonicalizeFreezeInLoopsPass into a different adaptor (PR #176690)
Vikram Hegde via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sun Jan 18 21:51:05 PST 2026
https://github.com/vikramRH created https://github.com/llvm/llvm-project/pull/176690
None
>From 0e8e428d48483fefdcc23c2c20602c11bbf27b0f Mon Sep 17 00:00:00 2001
From: vikhegde <vikram.hegde at amd.com>
Date: Fri, 16 Jan 2026 12:22:47 +0530
Subject: [PATCH] [CodeGen][NPM] Isolate CanonicalizeFreezeInLoopsPass into a
different adaptor
---
llvm/include/llvm/Passes/CodeGenPassBuilder.h | 7 ++++++-
llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll | 8 ++++----
llvm/test/CodeGen/X86/llc-pipeline-npm.ll | 8 ++++----
3 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/llvm/include/llvm/Passes/CodeGenPassBuilder.h b/llvm/include/llvm/Passes/CodeGenPassBuilder.h
index c4a4787c34a25..4a5ddb54572b6 100644
--- a/llvm/include/llvm/Passes/CodeGenPassBuilder.h
+++ b/llvm/include/llvm/Passes/CodeGenPassBuilder.h
@@ -699,8 +699,13 @@ void CodeGenPassBuilder<Derived, TargetMachineT>::addIRPasses(
// Run loop strength reduction before anything else.
if (getOptLevel() != CodeGenOptLevel::None && !Opt.DisableLSR) {
+ // Canonicalize freeze inst pass does not use/preserve MSSA.
+ addFunctionPass(
+ createFunctionToLoopPassAdaptor(CanonicalizeFreezeInLoopsPass(),
+ /*UseMemorySSA=*/false),
+ PMW);
+
LoopPassManager LPM;
- LPM.addPass(CanonicalizeFreezeInLoopsPass());
LPM.addPass(LoopStrengthReducePass());
if (Opt.EnableLoopTermFold)
LPM.addPass(LoopTermFoldPass());
diff --git a/llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll b/llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
index 953f7e1a5e3c7..5a6067f9bdf39 100644
--- a/llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
+++ b/llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
@@ -123,8 +123,8 @@
; GCN-O2-NEXT:amdgpu-codegenprepare
; GCN-O2-NEXT:loop-mssa(licm<allowspeculation>)
; GCN-O2-NEXT:verify
-; GCN-O2-NEXT:loop-mssa(canon-freeze
-; GCN-O2-NEXT:loop-reduce)
+; GCN-O2-NEXT:loop(canon-freeze)
+; GCN-O2-NEXT:loop-mssa(loop-reduce)
; GCN-O2-NEXT:mergeicmps
; GCN-O2-NEXT:expand-memcmp
; GCN-O2-NEXT:unreachableblockelim
@@ -294,8 +294,8 @@
; GCN-O3-NEXT:amdgpu-codegenprepare
; GCN-O3-NEXT:loop-mssa(licm<allowspeculation>)
; GCN-O3-NEXT:verify
-; GCN-O3-NEXT:loop-mssa(canon-freeze
-; GCN-O3-NEXT:loop-reduce)
+; GCN-O3-NEXT:loop(canon-freeze)
+; GCN-O3-NEXT:loop-mssa(loop-reduce)
; GCN-O3-NEXT:mergeicmps
; GCN-O3-NEXT:expand-memcmp
; GCN-O3-NEXT:unreachableblockelim
diff --git a/llvm/test/CodeGen/X86/llc-pipeline-npm.ll b/llvm/test/CodeGen/X86/llc-pipeline-npm.ll
index 8230539452f0d..59a21a4f0ebb6 100644
--- a/llvm/test/CodeGen/X86/llc-pipeline-npm.ll
+++ b/llvm/test/CodeGen/X86/llc-pipeline-npm.ll
@@ -76,8 +76,8 @@
; O2-NEXT: x86-lower-amx-intrinsics
; O2-NEXT: x86-lower-amx-type
; O2-NEXT: verify
-; O2-NEXT: loop-mssa(canon-freeze
-; O2-NEXT: loop-reduce)
+; O2-NEXT: loop(canon-freeze)
+; O2-NEXT: loop-mssa(loop-reduce)
; O2-NEXT: mergeicmps
; O2-NEXT: expand-memcmp
; O2-NEXT: gc-lowering)
@@ -245,8 +245,8 @@
; O3-WINDOWS-NEXT: x86-lower-amx-intrinsics
; O3-WINDOWS-NEXT: x86-lower-amx-type
; O3-WINDOWS-NEXT: verify
-; O3-WINDOWS-NEXT: loop-mssa(canon-freeze
-; O3-WINDOWS-NEXT: loop-reduce)
+; O3-WINDOWS-NEXT: loop(canon-freeze)
+; O3-WINDOWS-NEXT: loop-mssa(loop-reduce)
; O3-WINDOWS-NEXT: mergeicmps
; O3-WINDOWS-NEXT: expand-memcmp
; O3-WINDOWS-NEXT: gc-lowering)
More information about the llvm-branch-commits
mailing list