[Mlir-commits] [mlir] [mlir][SPIRVToLLVM] Set valid insertion point after op erasure (PR #146551)
Matthias Springer
llvmlistbot at llvm.org
Tue Jul 1 08:42:38 PDT 2025
https://github.com/matthias-springer created https://github.com/llvm/llvm-project/pull/146551
Erasing/replacing an op, which is also the current insertion point, invalidates the insertion point. Explicitly set the insertion point, so that `copy` does not crash after the One-Shot Dialect Conversion refactoring.
>From 978b656a696980c893a6826e62cc283cbd0606b5 Mon Sep 17 00:00:00 2001
From: Matthias Springer <me at m-sp.org>
Date: Tue, 1 Jul 2025 15:39:58 +0000
Subject: [PATCH] [mlir][SPIRVToLLVM] Set valid insertion point after op
erasure
Erasing/replacing an op, which is also the current insertion point, invalidates the insertion point. Explicitly set the insertion point, so that `copy` does not crash after the One-Shot Dialect Conversion refactoring.
---
.../Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp b/mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp
index 0e9eb9799c3e0..2a87f78643486 100644
--- a/mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp
+++ b/mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp
@@ -269,8 +269,9 @@ class GPULaunchLowering : public ConvertOpToLLVMPattern<gpu::LaunchFuncOp> {
copyInfo.push_back(info);
}
// Create a call to the kernel and copy the data back.
- rewriter.replaceOpWithNewOp<LLVM::CallOp>(op, kernelFunc,
- ArrayRef<Value>());
+ Operation *callOp = rewriter.replaceOpWithNewOp<LLVM::CallOp>(
+ op, kernelFunc, ArrayRef<Value>());
+ rewriter.setInsertionPointAfter(callOp);
for (CopyInfo info : copyInfo)
copy(loc, info.src, info.dst, info.size, rewriter);
return success();
More information about the Mlir-commits
mailing list