diff --git a/mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp b/mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp index 5a8dd3bbca41ca..0acb0c24ab313b 100644 --- a/mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp +++ b/mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp @@ -76,12 +76,10 @@ FailureOr mlir::bufferization::castOrReallocMemRefValue( FailureOr copy = options.createAlloc(b, loc, destType, dynamicOperands); - if (failed(copy)) { + if (failed(copy)) return failure(); - } - if (failed(options.createMemCpy(b, loc, value, *copy))) { + if (failed(options.createMemCpy(b, loc, value, *copy))) return failure(); - } return copy; } @@ -800,7 +798,9 @@ struct ToMemrefToTensorFolding : public OpRewritePattern { LogicalResult matchAndRewrite(ToMemrefOp toMemref, PatternRewriter &rewriter) const final { - return foldToMemrefToTensorPair(rewriter, toMemref, {}); + BufferizationOptions options; + options.bufferAlignment = 0; + return foldToMemrefToTensorPair(rewriter, toMemref, options); } }; diff --git a/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp b/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp index 22e19cb2a16d38..e553ddd77975f8 100644 --- a/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp +++ b/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp @@ -74,8 +74,10 @@ BufferizeTypeConverter::BufferizeTypeConverter() { auto rankedDestType = dyn_cast(type); if (!rankedDestType) return nullptr; + BufferizationOptions options; + options.bufferAlignment = 0; FailureOr replacement = - castOrReallocMemRefValue(builder, inputs[0], rankedDestType, {}); + castOrReallocMemRefValue(builder, inputs[0], rankedDestType, options); if (failed(replacement)) return nullptr; return *replacement; diff --git a/mlir/test/Dialect/Bufferization/Transforms/finalizing-bufferize.mlir b/mlir/test/Dialect/Bufferization/Transforms/finalizing-bufferize.mlir index 7f1e009c303a68..ff94c1b331d928 100644 --- a/mlir/test/Dialect/Bufferization/Transforms/finalizing-bufferize.mlir +++ b/mlir/test/Dialect/Bufferization/Transforms/finalizing-bufferize.mlir @@ -33,7 +33,7 @@ func.func @unable_to_convert_lone_tensor_load(%arg0: memref) { // CHECK-SAME: %[[arg:.*]]: memref>) // CHECK: %[[c0:.*]] = arith.constant 0 : index // CHECK: %[[dim:.*]] = memref.dim %[[arg]], %[[c0]] -// CHECK: %[[alloc:.*]] = memref.alloc(%[[dim]]) {{.*}} : memref +// CHECK: %[[alloc:.*]] = memref.alloc(%[[dim]]) : memref // CHECK: memref.copy %[[arg]], %[[alloc]] // CHECK: return %[[alloc]] func.func @dyn_layout_to_no_layout_cast(%m: memref>) -> memref { @@ -48,7 +48,7 @@ func.func @dyn_layout_to_no_layout_cast(%m: memref>) // CHECK: %[[c0:.*]] = arith.constant 0 : index // CHECK: %[[dim:.*]] = memref.dim %[[arg]], %[[c0]] -// CHECK: %[[alloc:.*]] = memref.alloc(%[[dim]]) {{.*}} : memref +// CHECK: %[[alloc:.*]] = memref.alloc(%[[dim]]) : memref // CHECK: memref.copy %[[arg]], %[[alloc]] // CHECK: return %[[alloc]] func.func @fancy_layout_to_no_layout_cast(%m: memref>) -> memref { @@ -63,7 +63,7 @@ func.func @fancy_layout_to_no_layout_cast(%m: memref>) // CHECK: %[[c0:.*]] = arith.constant 0 : index // CHECK: %[[dim:.*]] = memref.dim %[[arg]], %[[c0]] -// CHECK: %[[alloc:.*]] = memref.alloc(%[[dim]]) {{.*}} : memref +// CHECK: %[[alloc:.*]] = memref.alloc(%[[dim]]) : memref // CHECK: memref.copy %[[arg]], %[[alloc]] // CHECK: return %[[alloc]] func.func @static_layout_to_no_layout_cast(%m: memref>) -> memref { diff --git a/mlir/test/Dialect/Bufferization/canonicalize.mlir b/mlir/test/Dialect/Bufferization/canonicalize.mlir index 113aad67985d70..b6c0a0e25efe0e 100644 --- a/mlir/test/Dialect/Bufferization/canonicalize.mlir +++ b/mlir/test/Dialect/Bufferization/canonicalize.mlir @@ -84,7 +84,7 @@ func.func @canonicalize_buffer_cast_of_tensor_load_to_copy( // CHECK-NOT: bufferization.to_memref // CHECK: %[[C0:.*]] = arith.constant 0 : index // CHECK: %[[DIM:.*]] = memref.dim %[[M]], %[[C0]] : memref> -// CHECK: %[[ALLOC:.*]] = memref.alloc(%[[DIM]]) {{.*}} : memref> +// CHECK: %[[ALLOC:.*]] = memref.alloc(%[[DIM]]) : memref> // CHECK: memref.copy %[[M]], %[[ALLOC]] // CHECK-SAME: memref> to memref> // CHECK: return %[[ALLOC]]