[all-commits] [llvm/llvm-project] d7f72d: [mlir][bufferization] Better handling of unranked ...

Matthias Springer via All-commits all-commits at lists.llvm.org
Mon Jan 30 01:25:13 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d7f72d4bb47a7097c895da8648b4f097f977fed3
      https://github.com/llvm/llvm-project/commit/d7f72d4bb47a7097c895da8648b4f097f977fed3
  Author: Matthias Springer <springerm at google.com>
  Date:   2023-01-30 (Mon, 30 Jan 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.td
    M mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp
    M mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize-analysis.mlir
    M mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize-invalid.mlir
    M mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize.mlir

  Log Message:
  -----------
  [mlir][bufferization] Better handling of unranked tensors in resolveTensorOpOperandConflicts

Unranked tensors can currently not be copied. They are forced to always bufferize in-place. There is typically some other OpOperand that can bufferize out-of-place instead if needed.

Note: There is IR that cannot be bufferized with One-Shot Bufferize at the moment (see invalid test case). But it is unclear if we need to support such cases. We do not have a use case at the moment. This restriction could be loosened in the future if needed.

This change improves error handling when bufferizing IR where an unranked tensor would be copied. It also disables an optimization where an OpResult was copied instead of an OpOperand in case the OpResult is an unranked tensor (Github #60187).

Differential Revision: https://reviews.llvm.org/D142331




More information about the All-commits mailing list