[MLIR][VectorToLLVM] Remove typed pointer support (#71075)
This commit removes the support for lowering Vector to LLVM dialect with typed pointers. Typed pointers have been deprecated for a while now and it's planned to soon remove them from the LLVM dialect. Related PSA: https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502
This commit is contained in:
@@ -112,19 +112,6 @@ static Value getIndexedPtrs(ConversionPatternRewriter &rewriter, Location loc,
|
||||
base, index);
|
||||
}
|
||||
|
||||
// Casts a strided element pointer to a vector pointer. The vector pointer
|
||||
// will be in the same address space as the incoming memref type.
|
||||
static Value castDataPtr(ConversionPatternRewriter &rewriter, Location loc,
|
||||
Value ptr, MemRefType memRefType, Type vt,
|
||||
const LLVMTypeConverter &converter) {
|
||||
if (converter.useOpaquePointers())
|
||||
return ptr;
|
||||
|
||||
unsigned addressSpace = *converter.getMemRefAddressSpace(memRefType);
|
||||
auto pType = LLVM::LLVMPointerType::get(vt, addressSpace);
|
||||
return rewriter.create<LLVM::BitcastOp>(loc, pType, ptr);
|
||||
}
|
||||
|
||||
/// Convert `foldResult` into a Value. Integer attribute is converted to
|
||||
/// an LLVM constant op.
|
||||
static Value getAsLLVMValue(OpBuilder &builder, Location loc,
|
||||
@@ -261,10 +248,8 @@ public:
|
||||
this->typeConverter->convertType(loadOrStoreOp.getVectorType()));
|
||||
Value dataPtr = this->getStridedElementPtr(loc, memRefTy, adaptor.getBase(),
|
||||
adaptor.getIndices(), rewriter);
|
||||
Value ptr = castDataPtr(rewriter, loc, dataPtr, memRefTy, vtype,
|
||||
*this->getTypeConverter());
|
||||
|
||||
replaceLoadOrStoreOp(loadOrStoreOp, adaptor, vtype, ptr, align, rewriter);
|
||||
replaceLoadOrStoreOp(loadOrStoreOp, adaptor, vtype, dataPtr, align,
|
||||
rewriter);
|
||||
return success();
|
||||
}
|
||||
};
|
||||
@@ -1440,19 +1425,12 @@ public:
|
||||
|
||||
// Create descriptor.
|
||||
auto desc = MemRefDescriptor::undef(rewriter, loc, llvmTargetDescriptorTy);
|
||||
Type llvmTargetElementTy = desc.getElementPtrType();
|
||||
// Set allocated ptr.
|
||||
Value allocated = sourceMemRef.allocatedPtr(rewriter, loc);
|
||||
if (!getTypeConverter()->useOpaquePointers())
|
||||
allocated =
|
||||
rewriter.create<LLVM::BitcastOp>(loc, llvmTargetElementTy, allocated);
|
||||
desc.setAllocatedPtr(rewriter, loc, allocated);
|
||||
|
||||
// Set aligned ptr.
|
||||
Value ptr = sourceMemRef.alignedPtr(rewriter, loc);
|
||||
if (!getTypeConverter()->useOpaquePointers())
|
||||
ptr = rewriter.create<LLVM::BitcastOp>(loc, llvmTargetElementTy, ptr);
|
||||
|
||||
desc.setAlignedPtr(rewriter, loc, ptr);
|
||||
// Fill offset 0.
|
||||
auto attr = rewriter.getIntegerAttr(rewriter.getIndexType(), 0);
|
||||
|
||||
Reference in New Issue
Block a user