This change updates all remaining bufferization patterns (except for scf.while) and the remaining bufferization infrastructure to infer the memory space whenever possible instead of falling back to "0". (If a default memory space is set in the bufferization options, we still fall back to that value if the memory space could not be inferred.) Differential Revision: https://reviews.llvm.org/D128423
13 lines
594 B
MLIR
13 lines
594 B
MLIR
// RUN: mlir-opt %s -tensor-copy-insertion="must-infer-memory-space" -split-input-file -verify-diagnostics
|
|
|
|
// An alloc is inserted but the copy is emitted. Therefore, the memory space
|
|
// should be specified on the alloc_tensor op.
|
|
func.func @memory_space_of_unknown_op() -> (tensor<10xf32>, tensor<10xf32>) {
|
|
%c0 = arith.constant 0 : index
|
|
%cst = arith.constant 0.0 : f32
|
|
// expected-error @+1 {{could not infer memory space}}
|
|
%t = bufferization.alloc_tensor() : tensor<10xf32>
|
|
%s = tensor.insert %cst into %t[%c0] : tensor<10xf32>
|
|
return %s, %t : tensor<10xf32>, tensor<10xf32>
|
|
}
|