[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