[all-commits] [llvm/llvm-project] 2c5c5c: [mlir][linalg][bufferize] Fix CallOp bufferization

Matthias Springer via All-commits all-commits at lists.llvm.org
Tue Jan 11 03:10:43 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2c5c5ca8681a2788229cde61d09129316448508b
      https://github.com/llvm/llvm-project/commit/2c5c5ca8681a2788229cde61d09129316448508b
  Author: Matthias Springer <springerm at google.com>
  Date:   2022-01-11 (Tue, 11 Jan 2022)

  Changed paths:
    M mlir/lib/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.cpp
    M mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.cpp
    M mlir/test/Dialect/Linalg/comprehensive-module-bufferize-analysis.mlir
    M mlir/test/Dialect/Linalg/comprehensive-module-bufferize.mlir

  Log Message:
  -----------
  [mlir][linalg][bufferize] Fix CallOp bufferization

Previously, CallOps did not have any aliasing OpResult/OpOperand pairs. Therefore, CallOps were mostly ignored by the analysis and buffer copies were not inserted when necessary.

This commit introduces the following changes:
* Function bbArgs writable by default. A function can now be bufferized without inspecting its callers.
* Callers must introduce buffer copies of function arguments when necessary. If a function is external, the caller must conservatively assume that a function argument is modified by the callee after bufferization. If the function is not external, the caller inspects the callee to determine if a function argument is modified.

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




More information about the All-commits mailing list