[Mlir-commits] [mlir] [MLIR] Replace getVoidPtrType with getPtrType in ConvertToLLVMPattern (PR #145657)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Jun 25 03:39:05 PDT 2025
https://github.com/PragmaTwice updated https://github.com/llvm/llvm-project/pull/145657
>From e6b3e18d6d758e9cb403230dfe45d0ed7c659686 Mon Sep 17 00:00:00 2001
From: PragmaTwice <twice at apache.org>
Date: Wed, 25 Jun 2025 17:34:07 +0800
Subject: [PATCH] [MLIR] Replace get(Void/Int)PtrType with getPtrType in
ConvertToLLVMPattern
---
mlir/include/mlir/Conversion/LLVMCommon/Pattern.h | 4 ++++
mlir/lib/Conversion/LLVMCommon/Pattern.cpp | 11 +++++++----
mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp | 11 ++++-------
.../lib/Conversion/FuncToLLVM/TestConvertCallOp.cpp | 2 +-
4 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/mlir/include/mlir/Conversion/LLVMCommon/Pattern.h b/mlir/include/mlir/Conversion/LLVMCommon/Pattern.h
index 503a2a7e6f0cd..969154abe8830 100644
--- a/mlir/include/mlir/Conversion/LLVMCommon/Pattern.h
+++ b/mlir/include/mlir/Conversion/LLVMCommon/Pattern.h
@@ -113,8 +113,12 @@ class ConvertToLLVMPattern : public ConversionPattern {
Type getVoidType() const;
/// Get the MLIR type wrapping the LLVM i8* type.
+ [[deprecated("Use getPtrType() instead!")]]
Type getVoidPtrType() const;
+ /// Get the MLIR type wrapping the LLVM ptr type.
+ Type getPtrType(unsigned addressSpace = 0) const;
+
/// Create a constant Op producing a value of `resultType` from an index-typed
/// integer attribute.
static Value createIndexAttrConstant(OpBuilder &builder, Location loc,
diff --git a/mlir/lib/Conversion/LLVMCommon/Pattern.cpp b/mlir/lib/Conversion/LLVMCommon/Pattern.cpp
index 86fb9166b7223..103a7ab92dd12 100644
--- a/mlir/lib/Conversion/LLVMCommon/Pattern.cpp
+++ b/mlir/lib/Conversion/LLVMCommon/Pattern.cpp
@@ -42,13 +42,16 @@ Type ConvertToLLVMPattern::getIntPtrType(unsigned addressSpace) const {
getTypeConverter()->getPointerBitwidth(addressSpace));
}
+Type ConvertToLLVMPattern::getPtrType(unsigned addressSpace) const {
+ return LLVM::LLVMVoidType::get(&getTypeConverter()->getContext(),
+ addressSpace);
+}
+
Type ConvertToLLVMPattern::getVoidType() const {
return LLVM::LLVMVoidType::get(&getTypeConverter()->getContext());
}
-Type ConvertToLLVMPattern::getVoidPtrType() const {
- return LLVM::LLVMPointerType::get(&getTypeConverter()->getContext());
-}
+Type ConvertToLLVMPattern::getVoidPtrType() const { return getPtrType(); }
Value ConvertToLLVMPattern::createIndexAttrConstant(OpBuilder &builder,
Location loc,
@@ -273,7 +276,7 @@ LogicalResult ConvertToLLVMPattern::copyUnrankedDescriptors(
? builder
.create<LLVM::CallOp>(loc, mallocFunc.value(), allocationSize)
.getResult()
- : builder.create<LLVM::AllocaOp>(loc, getVoidPtrType(),
+ : builder.create<LLVM::AllocaOp>(loc, getPtrType(),
IntegerType::get(getContext(), 8),
allocationSize,
/*alignment=*/0);
diff --git a/mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp b/mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
index 4b7b2cc224ce2..7484e4b07390e 100644
--- a/mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
+++ b/mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
@@ -408,8 +408,7 @@ struct AllocaScopeOpLowering
// Save stack and then branch into the body of the region.
rewriter.setInsertionPointToEnd(currentBlock);
- auto stackSaveOp =
- rewriter.create<LLVM::StackSaveOp>(loc, getVoidPtrType());
+ auto stackSaveOp = rewriter.create<LLVM::StackSaveOp>(loc, getPtrType());
rewriter.create<LLVM::BrOp>(loc, ValueRange(), beforeBody);
// Replace the alloca_scope return with a branch that jumps out of the body.
@@ -1122,8 +1121,7 @@ class MemRefCopyOpLowering : public ConvertOpToLLVMPattern<memref::CopyOp> {
};
// Save stack position before promoting descriptors
- auto stackSaveOp =
- rewriter.create<LLVM::StackSaveOp>(loc, getVoidPtrType());
+ auto stackSaveOp = rewriter.create<LLVM::StackSaveOp>(loc, getPtrType());
auto srcMemRefType = dyn_cast<MemRefType>(srcType);
Value unrankedSource =
@@ -1249,7 +1247,7 @@ struct MemorySpaceCastOpLowering
result, resultAddrSpace, sizes);
Value resultUnderlyingSize = sizes.front();
Value resultUnderlyingDesc = rewriter.create<LLVM::AllocaOp>(
- loc, getVoidPtrType(), rewriter.getI8Type(), resultUnderlyingSize);
+ loc, getPtrType(), rewriter.getI8Type(), resultUnderlyingSize);
result.setMemRefDescPtr(rewriter, loc, resultUnderlyingDesc);
// Copy pointers, performing address space casts.
@@ -1530,8 +1528,7 @@ struct MemRefReshapeOpLowering
UnrankedMemRefDescriptor::computeSizes(rewriter, loc, *getTypeConverter(),
targetDesc, addressSpace, sizes);
Value underlyingDescPtr = rewriter.create<LLVM::AllocaOp>(
- loc, getVoidPtrType(), IntegerType::get(getContext(), 8),
- sizes.front());
+ loc, getPtrType(), IntegerType::get(getContext(), 8), sizes.front());
targetDesc.setMemRefDescPtr(rewriter, loc, underlyingDescPtr);
// Extract pointers and offset from the source memref.
diff --git a/mlir/test/lib/Conversion/FuncToLLVM/TestConvertCallOp.cpp b/mlir/test/lib/Conversion/FuncToLLVM/TestConvertCallOp.cpp
index f878a262512ee..3b29867cc3263 100644
--- a/mlir/test/lib/Conversion/FuncToLLVM/TestConvertCallOp.cpp
+++ b/mlir/test/lib/Conversion/FuncToLLVM/TestConvertCallOp.cpp
@@ -28,7 +28,7 @@ class TestTypeProducerOpConverter
LogicalResult
matchAndRewrite(test::TestTypeProducerOp op, OpAdaptor adaptor,
ConversionPatternRewriter &rewriter) const override {
- rewriter.replaceOpWithNewOp<LLVM::ZeroOp>(op, getVoidPtrType());
+ rewriter.replaceOpWithNewOp<LLVM::ZeroOp>(op, getPtrType());
return success();
}
};
More information about the Mlir-commits
mailing list