This change adds the BufferizableOpInterface implementation for memref.tensor_store.
Depends On: D144022
| Paths 
 |  Differential  D144080  
[mlir][memref] Bufferize memref.tensor_store op ClosedPublic Authored by springerm on Feb 15 2023, 12:55 AM. 
Details Summary This change adds the BufferizableOpInterface implementation for memref.tensor_store. Depends On: D144022 
Diff Detail 
 Event Timelinespringerm added a parent revision: D144022: [mlir][linalg] Add bufferization patterns for non-DPS ops.Feb 15 2023, 12:55 AM nicolasvasilache added inline comments. 
 This revision is now accepted and ready to land.Feb 15 2023, 2:04 AM Closed by commit rGc645eb0d03bd: [mlir][memref] Bufferize memref.tensor_store op (authored by springerm).  ·  Explain WhyFeb 15 2023, 6:28 AM This revision was automatically updated to reflect the committed changes. springerm marked an inline comment as done. 
 
Revision Contents 
 
 
Diff 497586 mlir/include/mlir/Dialect/MemRef/Transforms/BufferizableOpInterfaceImpl.h
 
 mlir/include/mlir/InitAllDialects.h
 mlir/lib/Dialect/MemRef/Transforms/BufferizableOpInterfaceImpl.cpp
 mlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt
 mlir/test/Dialect/Linalg/bufferize-non-dps-ops.mlir
 mlir/test/Dialect/MemRef/bufferize.mlir
 utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
 
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Can we use a linalg.copy here?
Experience shows that going to memref.copy prematurely can yield very bad perf.
There are simple woarkarounds like rewriting a memref.copy into a linalg.copy but it is better to avoid lowering prematurely.