[Mlir-commits] [mlir] [mlir][gpu][nvptx] Remove null terminator when outputting PTX (PR #133019)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Tue Mar 25 16:48:58 PDT 2025
https://github.com/modiking updated https://github.com/llvm/llvm-project/pull/133019
>From cd00d2f3c1e0220568286bdc000ad9b8acf07427 Mon Sep 17 00:00:00 2001
From: Modi Mo <mmo at nvidia.com>
Date: Mon, 24 Mar 2025 15:45:44 -0700
Subject: [PATCH 1/2] Remove null terminator when outputting PTX
---
mlir/lib/Target/LLVM/NVVM/Target.cpp | 7 ++-----
mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp | 5 ++++-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/mlir/lib/Target/LLVM/NVVM/Target.cpp b/mlir/lib/Target/LLVM/NVVM/Target.cpp
index cccb2c276ae37..ebdc993a93caf 100644
--- a/mlir/lib/Target/LLVM/NVVM/Target.cpp
+++ b/mlir/lib/Target/LLVM/NVVM/Target.cpp
@@ -722,11 +722,8 @@ NVPTXSerializer::moduleToObject(llvm::Module &llvmModule) {
// Return PTX if the compilation target is `assembly`.
if (targetOptions.getCompilationTarget() ==
- gpu::CompilationTarget::Assembly) {
- // Make sure to include the null terminator.
- StringRef bin(serializedISA->c_str(), serializedISA->size() + 1);
- return SmallVector<char, 0>(bin.begin(), bin.end());
- }
+ gpu::CompilationTarget::Assembly)
+ return SmallVector<char, 0>(serializedISA->begin(), serializedISA->end());
std::optional<SmallVector<char, 0>> result;
moduleToObjectTimer.startTimer();
diff --git a/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp b/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp
index eabfd1c4d32eb..1231019e5dadf 100644
--- a/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp
+++ b/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp
@@ -129,7 +129,10 @@ TEST_F(MLIRTargetLLVMNVVM, SKIP_WITHOUT_NVPTX(SerializeNVVMToPTX)) {
ASSERT_TRUE(!object->empty());
ASSERT_TRUE(
- StringRef(object->data(), object->size()).contains("nvvm_kernel"));
+ StringRef(object->data(), object->size()).contains("nvvm_kernel"));
+ ASSERT_TRUE(
+ StringRef(object->data(), object->size()).count('\0') == 0);
+
}
}
>From 9395de738bb966cebc43154f6973353c4b35af70 Mon Sep 17 00:00:00 2001
From: Modi Mo <mmo at nvidia.com>
Date: Tue, 25 Mar 2025 16:48:48 -0700
Subject: [PATCH 2/2] clang-format
---
mlir/lib/Target/LLVM/NVVM/Target.cpp | 3 +--
mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp | 6 ++----
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/mlir/lib/Target/LLVM/NVVM/Target.cpp b/mlir/lib/Target/LLVM/NVVM/Target.cpp
index ebdc993a93caf..11c256e88c219 100644
--- a/mlir/lib/Target/LLVM/NVVM/Target.cpp
+++ b/mlir/lib/Target/LLVM/NVVM/Target.cpp
@@ -721,8 +721,7 @@ NVPTXSerializer::moduleToObject(llvm::Module &llvmModule) {
#undef DEBUG_TYPE
// Return PTX if the compilation target is `assembly`.
- if (targetOptions.getCompilationTarget() ==
- gpu::CompilationTarget::Assembly)
+ if (targetOptions.getCompilationTarget() == gpu::CompilationTarget::Assembly)
return SmallVector<char, 0>(serializedISA->begin(), serializedISA->end());
std::optional<SmallVector<char, 0>> result;
diff --git a/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp b/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp
index 1231019e5dadf..cae713a1ce1d2 100644
--- a/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp
+++ b/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp
@@ -129,10 +129,8 @@ TEST_F(MLIRTargetLLVMNVVM, SKIP_WITHOUT_NVPTX(SerializeNVVMToPTX)) {
ASSERT_TRUE(!object->empty());
ASSERT_TRUE(
- StringRef(object->data(), object->size()).contains("nvvm_kernel"));
- ASSERT_TRUE(
- StringRef(object->data(), object->size()).count('\0') == 0);
-
+ StringRef(object->data(), object->size()).contains("nvvm_kernel"));
+ ASSERT_TRUE(StringRef(object->data(), object->size()).count('\0') == 0);
}
}
More information about the Mlir-commits
mailing list