[Mlir-commits] [mlir] 5f919cd - [mlir][sparse] Move routines for generating memref.alloca to CodegenUtils.
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Sun Oct 16 08:22:11 PDT 2022
Author: bixia1
Date: 2022-10-16T08:22:02-07:00
New Revision: 5f919cd439d2be94f5e6a5594b163b9015d87d93
URL: https://github.com/llvm/llvm-project/commit/5f919cd439d2be94f5e6a5594b163b9015d87d93
DIFF: https://github.com/llvm/llvm-project/commit/5f919cd439d2be94f5e6a5594b163b9015d87d93.diff
LOG: [mlir][sparse] Move routines for generating memref.alloca to CodegenUtils.
This is to allow the use of the routines in the rewrite pass.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D135890
Added:
Modified:
mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.cpp
mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.h
mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.cpp
index d2a07d448abed..54e206e1d5676 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.cpp
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.cpp
@@ -583,3 +583,19 @@ func::CallOp mlir::sparse_tensor::createFuncCall(
Type mlir::sparse_tensor::getOpaquePointerType(OpBuilder &builder) {
return LLVM::LLVMPointerType::get(builder.getI8Type());
}
+
+Value mlir::sparse_tensor::genAlloca(OpBuilder &builder, Location loc,
+ unsigned sz, Type tp) {
+ return genAlloca(builder, loc, constantIndex(builder, loc, sz), tp);
+}
+
+Value mlir::sparse_tensor::genAlloca(OpBuilder &builder, Location loc, Value sz,
+ Type tp) {
+ auto memTp = MemRefType::get({ShapedType::kDynamicSize}, tp);
+ return builder.create<memref::AllocaOp>(loc, memTp, ValueRange{sz});
+}
+
+Value mlir::sparse_tensor::genAllocaScalar(OpBuilder &builder, Location loc,
+ Type tp) {
+ return builder.create<memref::AllocaOp>(loc, MemRefType::get({}, tp));
+}
diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.h b/mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.h
index 99080609a54f2..b4c2fffe1efd2 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.h
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.h
@@ -248,6 +248,20 @@ func::CallOp createFuncCall(OpBuilder &builder, Location loc, StringRef name,
/// execution engine.
Type getOpaquePointerType(OpBuilder &builder);
+/// Generates an uninitialized temporary buffer of the given size and
+/// type, but returns it as type `memref<? x $tp>` (rather than as type
+/// `memref<$sz x $tp>`).
+Value genAlloca(OpBuilder &builder, Location loc, Value sz, Type tp);
+
+/// Generates an uninitialized temporary buffer of the given size and
+/// type, but returns it as type `memref<? x $tp>` (rather than as type
+/// `memref<$sz x $tp>`).
+Value genAlloca(OpBuilder &builder, Location loc, unsigned sz, Type tp);
+
+/// Generates an uninitialized temporary buffer with room for one value
+/// of the given type, and returns the `memref<$tp>`.
+Value genAllocaScalar(OpBuilder &builder, Location loc, Type tp);
+
//===----------------------------------------------------------------------===//
// Inlined constant generators.
//
diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
index 00d45252226e3..c7a6048a8503f 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
@@ -155,14 +155,6 @@ static void concatSizesFromInputs(OpBuilder &builder,
}
}
-/// Generates an uninitialized temporary buffer of the given size and
-/// type, but returns it as type `memref<? x $tp>` (rather than as type
-/// `memref<$sz x $tp>`).
-static Value genAlloca(OpBuilder &builder, Location loc, Value sz, Type tp) {
- auto memTp = MemRefType::get({ShapedType::kDynamicSize}, tp);
- return builder.create<memref::AllocaOp>(loc, memTp, ValueRange{sz});
-}
-
/// Generates an uninitialized buffer of the given size and type,
/// but returns it as type `memref<? x $tp>` (rather than as type
/// `memref<$sz x $tp>`). Unlike temporary buffers on the stack,
@@ -172,19 +164,6 @@ static Value genAlloc(RewriterBase &rewriter, Location loc, Value sz, Type tp) {
return rewriter.create<memref::AllocOp>(loc, memTp, ValueRange{sz});
}
-/// Generates an uninitialized temporary buffer of the given size and
-/// type, but returns it as type `memref<? x $tp>` (rather than as type
-/// `memref<$sz x $tp>`).
-static Value genAlloca(OpBuilder &builder, Location loc, unsigned sz, Type tp) {
- return genAlloca(builder, loc, constantIndex(builder, loc, sz), tp);
-}
-
-/// Generates an uninitialized temporary buffer with room for one value
-/// of the given type, and returns the `memref<$tp>`.
-static Value genAllocaScalar(OpBuilder &builder, Location loc, Type tp) {
- return builder.create<memref::AllocaOp>(loc, MemRefType::get({}, tp));
-}
-
/// Generates a temporary buffer of the given type and given contents.
static Value genBuffer(OpBuilder &builder, Location loc, ValueRange values) {
unsigned sz = values.size();
More information about the Mlir-commits
mailing list