llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-x86

Author: Vikram Hegde (vikramRH)

<details>
<summary>Changes</summary>

this needs to be done since "loop-mssa" adapter assumes all passes that are 
part of it to preserve MSSA, CanonicalizeFreezeInLoopsPass doesen't do this. 
I'm not really sure of the history here (about having two variants of loop pass 
adatpters)

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


3 Files Affected:

- (modified) llvm/include/llvm/Passes/CodeGenPassBuilder.h (+6-1) 
- (modified) llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll (+4-4) 
- (modified) llvm/test/CodeGen/X86/llc-pipeline-npm.ll (+4-4) 


``````````diff
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)

``````````

</details>


https://github.com/llvm/llvm-project/pull/176690
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to