[all-commits] [llvm/llvm-project] 28d6aa: [mlir][bufferization] Unranked memref support for ...

ryankima via All-commits all-commits at lists.llvm.org
Thu Jun 13 06:58:22 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 28d6aa90b085469e5b6355f8d739df733ebc4400
      https://github.com/llvm/llvm-project/commit/28d6aa90b085469e5b6355f8d739df733ebc4400
  Author: ryankima <ryankima at umich.edu>
  Date:   2024-06-13 (Thu, 13 Jun 2024)

  Changed paths:
    M mlir/lib/Conversion/BufferizationToMemRef/BufferizationToMemRef.cpp
    M mlir/test/Conversion/BufferizationToMemRef/bufferization-to-memref.mlir

  Log Message:
  -----------
  [mlir][bufferization] Unranked memref support for clone (#94757)

bufferization.clone does not currently support lowering to memref for
unranked memrefs. This interferes with bufferizing unranked tensors at
boundaries where a clone operation is needed.
```
func.func @foo(%input: memref<*xf32>, %shape: memref<?xindex>) -> memref<*xf32>
{
  %reshape = memref.reshape %input(%shape) : (memref<*xf32>, memref<?xindex>) -> memref<*xf32>
  %copy = bufferization.clone %reshape : memref<*xf32> to memref<*xf32>
  return %copy : memref<*xf32>
}
```
Patterns such as that are possibly when bufferizing functions with input
and output unranked tensors. The clone operation currently fails to
legalize during the bufferization-to-memref conversion with unranked
memrefs.

This change modifies the conversion of bufferization.clone to memref to
generate the runtime calculations and allocation to allow for cloning an
unranked memref.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list