[llvm] [NVPTX] Add NewPM boilerplate to NVPTXAssignValidGlobalNames (PR #215052)

via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 8 20:45:21 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-nvptx

Author: Alex MacLean (AlexMaclean)

<details>
<summary>Changes</summary>



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


4 Files Affected:

- (modified) llvm/lib/Target/NVPTX/NVPTX.h (+6-1) 
- (modified) llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp (+25-18) 
- (modified) llvm/lib/Target/NVPTX/NVPTXPassRegistry.def (+2) 
- (modified) llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp (+1-1) 


``````````diff
diff --git a/llvm/lib/Target/NVPTX/NVPTX.h b/llvm/lib/Target/NVPTX/NVPTX.h
index 365ac038b79cc..1ee2900353c8e 100644
--- a/llvm/lib/Target/NVPTX/NVPTX.h
+++ b/llvm/lib/Target/NVPTX/NVPTX.h
@@ -66,7 +66,7 @@ void initializeNVVMReflectLegacyPassPass(PassRegistry &);
 void initializeGenericToNVVMLegacyPassPass(PassRegistry &);
 void initializeNVPTXAllocaHoistingPass(PassRegistry &);
 void initializeNVPTXAsmPrinterPass(PassRegistry &);
-void initializeNVPTXAssignValidGlobalNamesPass(PassRegistry &);
+void initializeNVPTXAssignValidGlobalNamesLegacyPassPass(PassRegistry &);
 void initializeNVPTXAtomicLowerPass(PassRegistry &);
 void initializeNVPTXCtorDtorLoweringLegacyPass(PassRegistry &);
 void initializeNVPTXLowerAggrCopiesPass(PassRegistry &);
@@ -136,6 +136,11 @@ struct NVPTXTagInvariantLoadsPass
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
+struct NVPTXAssignValidGlobalNamesPass
+    : RequiredPassInfoMixin<NVPTXAssignValidGlobalNamesPass> {
+  PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
+};
+
 namespace NVPTX {
 enum DrvInterface {
   NVCL,
diff --git a/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp b/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp
index 5efbf2f1faceb..6a2b0b1849706 100644
--- a/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp
+++ b/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp
@@ -25,23 +25,7 @@
 
 using namespace llvm;
 
-namespace {
-/// NVPTXAssignValidGlobalNames
-class NVPTXAssignValidGlobalNames : public ModulePass {
-public:
-  static char ID;
-  NVPTXAssignValidGlobalNames() : ModulePass(ID) {}
-
-  bool runOnModule(Module &M) override;
-};
-} // namespace
-
-char NVPTXAssignValidGlobalNames::ID = 0;
-
-INITIALIZE_PASS(NVPTXAssignValidGlobalNames, "nvptx-assign-valid-global-names",
-                "Assign valid PTX names to globals", false, false)
-
-bool NVPTXAssignValidGlobalNames::runOnModule(Module &M) {
+static bool assignValidGlobalNames(Module &M) {
   for (GlobalVariable &GV : M.globals()) {
     // We are only allowed to rename symbols that are not externally linked by
     // name
@@ -66,6 +50,29 @@ bool NVPTXAssignValidGlobalNames::runOnModule(Module &M) {
   return true;
 }
 
+namespace {
+/// NVPTXAssignValidGlobalNamesLegacyPass
+class NVPTXAssignValidGlobalNamesLegacyPass : public ModulePass {
+public:
+  static char ID;
+  NVPTXAssignValidGlobalNamesLegacyPass() : ModulePass(ID) {}
+
+  bool runOnModule(Module &M) override { return assignValidGlobalNames(M); }
+};
+} // namespace
+
+char NVPTXAssignValidGlobalNamesLegacyPass::ID = 0;
+
+INITIALIZE_PASS(NVPTXAssignValidGlobalNamesLegacyPass,
+                "nvptx-assign-valid-global-names",
+                "Assign valid PTX names to globals", false, false)
+
 ModulePass *llvm::createNVPTXAssignValidGlobalNamesPass() {
-  return new NVPTXAssignValidGlobalNames();
+  return new NVPTXAssignValidGlobalNamesLegacyPass();
+}
+
+PreservedAnalyses
+NVPTXAssignValidGlobalNamesPass::run(Module &M, ModuleAnalysisManager &) {
+  return assignValidGlobalNames(M) ? PreservedAnalyses::none()
+                                   : PreservedAnalyses::all();
 }
diff --git a/llvm/lib/Target/NVPTX/NVPTXPassRegistry.def b/llvm/lib/Target/NVPTX/NVPTXPassRegistry.def
index 7fd6265cda106..551398f264907 100644
--- a/llvm/lib/Target/NVPTX/NVPTXPassRegistry.def
+++ b/llvm/lib/Target/NVPTX/NVPTXPassRegistry.def
@@ -17,6 +17,7 @@
 #define MODULE_PASS(NAME, CREATE_PASS)
 #endif
 MODULE_PASS("generic-to-nvvm", GenericToNVVMPass())
+MODULE_PASS("nvptx-assign-valid-global-names", NVPTXAssignValidGlobalNamesPass())
 MODULE_PASS("nvptx-lower-args", NVPTXLowerArgsPass(*this))
 MODULE_PASS("nvptx-lower-ctor-dtor", NVPTXCtorDtorLoweringPass())
 MODULE_PASS("nvptx-promote-param-align", NVPTXPromoteParamAlignPass())
@@ -44,3 +45,4 @@ FUNCTION_PASS("nvptx-mark-kernel-ptrs-global", NVPTXMarkKernelPtrsGlobalPass())
 FUNCTION_PASS("nvptx-tag-invariant-loads", NVPTXTagInvariantLoadsPass())
 FUNCTION_PASS("nvptx-ir-peephole", NVPTXIRPeepholePass())
 #undef FUNCTION_PASS
+
diff --git a/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp b/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
index 3c548bc581686..aa7fd1fb951cb 100644
--- a/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
+++ b/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
@@ -108,7 +108,7 @@ extern "C" LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeNVPTXTarget() {
   initializeGenericToNVVMLegacyPassPass(PR);
   initializeNVPTXAllocaHoistingPass(PR);
   initializeNVPTXAsmPrinterPass(PR);
-  initializeNVPTXAssignValidGlobalNamesPass(PR);
+  initializeNVPTXAssignValidGlobalNamesLegacyPassPass(PR);
   initializeNVPTXAtomicLowerPass(PR);
   initializeNVPTXLowerArgsLegacyPassPass(PR);
   initializeNVPTXPromoteParamAlignLegacyPassPass(PR);

``````````

</details>


https://github.com/llvm/llvm-project/pull/215052


More information about the llvm-commits mailing list