[llvm] [AMDGPU] Preserve all analyses if nothing changed (PR #117994)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 28 03:29:58 PST 2024


https://github.com/jayfoad created https://github.com/llvm/llvm-project/pull/117994

None

>From 72da6a0dc17b8b736df50543fb985a59b17d343c Mon Sep 17 00:00:00 2001
From: Jay Foad <jay.foad at amd.com>
Date: Thu, 28 Nov 2024 11:18:19 +0000
Subject: [PATCH] [AMDGPU] Preserve all analyses if nothing changed

---
 llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp | 4 ++--
 llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp        | 4 +++-
 llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp    | 4 ++--
 llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp       | 2 +-
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
index 5feb35a2b553a5..9da0d93341ddfd 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
@@ -92,10 +92,10 @@ AMDGPUAnnotateUniformValuesPass::run(Function &F,
   AMDGPUAnnotateUniformValues Impl(UI, MSSA, AA, F);
   Impl.visit(F);
 
-  PreservedAnalyses PA = PreservedAnalyses::none();
   if (!Impl.changed())
-    return PA;
+    return PreservedAnalyses::all();
 
+  PreservedAnalyses PA = PreservedAnalyses::none();
   // TODO: Should preserve nearly everything
   PA.preserveSet<CFGAnalyses>();
   return PA;
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp b/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
index c49aab823b44a4..7257b53afe69d0 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
@@ -2303,10 +2303,12 @@ PreservedAnalyses AMDGPUCodeGenPreparePass::run(Function &F,
   SIModeRegisterDefaults Mode(F, *Impl.ST);
   Impl.HasFP32DenormalFlush =
       Mode.FP32Denormals == DenormalMode::getPreserveSign();
+  if (!Impl.run(F))
+    return PreservedAnalyses::all();
   PreservedAnalyses PA = PreservedAnalyses::none();
   if (!Impl.FlowChanged)
     PA.preserveSet<CFGAnalyses>();
-  return Impl.run(F) ? PA : PreservedAnalyses::all();
+  return PA;
 }
 
 INITIALIZE_PASS_BEGIN(AMDGPUCodeGenPrepare, DEBUG_TYPE,
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp b/llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
index 30ef390faab8bd..86ed29acb09abc 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
@@ -484,9 +484,9 @@ AMDGPULateCodeGenPreparePass::run(Function &F, FunctionAnalysisManager &FAM) {
 
   bool Changed = Impl.run(F);
 
-  PreservedAnalyses PA = PreservedAnalyses::none();
   if (!Changed)
-    return PA;
+    return PreservedAnalyses::all();
+  PreservedAnalyses PA = PreservedAnalyses::none();
   PA.preserveSet<CFGAnalyses>();
   return PA;
 }
diff --git a/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp b/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
index ea653490f1bf37..67012669a6df0c 100644
--- a/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
+++ b/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
@@ -391,7 +391,7 @@ PreservedAnalyses SIAnnotateControlFlowPass::run(Function &F,
   // FIXME: We introduce dead declarations of intrinsics even if never used.
   bool Changed = Impl.run(F);
   if (!Changed)
-    return PreservedAnalyses::none();
+    return PreservedAnalyses::all();
 
   // TODO: Is LoopInfo preserved?
   PreservedAnalyses PA = PreservedAnalyses::none();



More information about the llvm-commits mailing list