[llvm] [NVPTX] Preserve CFGAnalyses in more passes (PR #217062)

Alex MacLean via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 18 08:51:21 PDT 2026


https://github.com/AlexMaclean created https://github.com/llvm/llvm-project/pull/217062

None

>From 28e4c5b6700219c0a0b8900efd0ad0370ae32818 Mon Sep 17 00:00:00 2001
From: Alex Maclean <amaclean at nvidia.com>
Date: Tue, 18 Aug 2026 08:49:17 -0700
Subject: [PATCH] [NVPTX] Preserve CFGAnalyses in more passes

---
 llvm/lib/Target/NVPTX/NVPTXMarkKernelPtrsGlobal.cpp | 5 +++--
 llvm/lib/Target/NVPTX/NVPTXTagInvariantLoads.cpp    | 5 +++--
 llvm/lib/Target/NVPTX/NVVMIntrRange.cpp             | 5 +++--
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/llvm/lib/Target/NVPTX/NVPTXMarkKernelPtrsGlobal.cpp b/llvm/lib/Target/NVPTX/NVPTXMarkKernelPtrsGlobal.cpp
index c218e2aa4cbf1..fa3e67263d156 100644
--- a/llvm/lib/Target/NVPTX/NVPTXMarkKernelPtrsGlobal.cpp
+++ b/llvm/lib/Target/NVPTX/NVPTXMarkKernelPtrsGlobal.cpp
@@ -119,6 +119,7 @@ FunctionPass *llvm::createNVPTXMarkKernelPtrsGlobalPass() {
 
 PreservedAnalyses
 NVPTXMarkKernelPtrsGlobalPass::run(Function &F, FunctionAnalysisManager &) {
-  return markKernelPtrsGlobal(F) ? PreservedAnalyses::none()
-                                 : PreservedAnalyses::all();
+  if (!markKernelPtrsGlobal(F))
+    return PreservedAnalyses::all();
+  return PreservedAnalyses::none().preserveSet<CFGAnalyses>();
 }
diff --git a/llvm/lib/Target/NVPTX/NVPTXTagInvariantLoads.cpp b/llvm/lib/Target/NVPTX/NVPTXTagInvariantLoads.cpp
index 5abbfff222d1e..26c21c43f95cd 100644
--- a/llvm/lib/Target/NVPTX/NVPTXTagInvariantLoads.cpp
+++ b/llvm/lib/Target/NVPTX/NVPTXTagInvariantLoads.cpp
@@ -108,6 +108,7 @@ FunctionPass *llvm::createNVPTXTagInvariantLoadsPass() {
 
 PreservedAnalyses NVPTXTagInvariantLoadsPass::run(Function &F,
                                                   FunctionAnalysisManager &) {
-  return tagInvariantLoads(F) ? PreservedAnalyses::none()
-                              : PreservedAnalyses::all();
+  if (!tagInvariantLoads(F))
+    return PreservedAnalyses::all();
+  return PreservedAnalyses::none().preserveSet<CFGAnalyses>();
 }
diff --git a/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp b/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp
index a00bb85a19c73..45f4ffc79ec93 100644
--- a/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp
+++ b/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp
@@ -175,6 +175,7 @@ bool NVVMIntrRange::runOnFunction(Function &F) { return runNVVMIntrRange(F); }
 
 PreservedAnalyses NVVMIntrRangePass::run(Function &F,
                                          FunctionAnalysisManager &AM) {
-  return runNVVMIntrRange(F) ? PreservedAnalyses::none()
-                             : PreservedAnalyses::all();
+  if (!runNVVMIntrRange(F))
+    return PreservedAnalyses::all();
+  return PreservedAnalyses::none().preserveSet<CFGAnalyses>();
 }



More information about the llvm-commits mailing list