[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