[all-commits] [llvm/llvm-project] f4f1cf: [mlir][bufferize] Better analysis for return value...

Matthias Springer via All-commits all-commits at lists.llvm.org
Wed Apr 6 07:56:14 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f4f1cf6c31beaf387ae73b0407b30b41438dafde
      https://github.com/llvm/llvm-project/commit/f4f1cf6c31beaf387ae73b0407b30b41438dafde
  Author: Matthias Springer <springerm at google.com>
  Date:   2022-04-06 (Wed, 06 Apr 2022)

  Changed paths:
    M mlir/include/mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h
    M mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.cpp
    M mlir/test/Dialect/Linalg/comprehensive-module-bufferize.mlir
    A mlir/test/Dialect/Linalg/one-shot-module-bufferize-allow-return-allocs.mlir
    A mlir/test/Dialect/Linalg/one-shot-module-bufferize.mlir

  Log Message:
  -----------
  [mlir][bufferize] Better analysis for return values of CallOps

Support returning arbitrary tensors from functions. Even those that are
not equivalent. To that end, additional information is gathered during
the analysis phase. In particular, which function args are aliasing with
which return values.

Also fix bugs in the current implementation when returning equivalent
tensors. Various unit tests are added to ensure that we have better test
coverage.

Note: Returning non-equivalent tensors is only allowed when
allowReturnAllocs is enabled. This functionality is useful for unit
testing and compatibility with other bufferizations such as the sparse
compiler. This is also towards using ModuleBufferization as a
replacement for --func-bufferize.

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




More information about the All-commits mailing list