llvm-project/mlir
Nicolas Vasilache 57fe7fd37d [mlir][Linalg] Add support for scf::ForOp in comprehensive bufferization (7/n)
scf::ForOp bufferization analysis proceeds just like for any other op (including FuncOp) at its boundaries; i.e. if:

1. The tensor operand is inplaceable.
2. The matching result has no subsequent read (i.e. all reads dominate the scf::ForOp).
3. In  and does not create a RAW interference.

then it can bufferize inplace.

Still there are a few differences:

1. bbArgs for an scf::ForOp are always considered inplaceable when seen from ops inside the body. This is because a) either the matching tensor operand is not inplaceable and an alloc will be inserted (which makes bbArg itself inplaceable); or b) the tensor operand and bbArg are both already inplaceable.
2. Bufferization within the scf::ForOp body has implications to the outside world : the scf.yield terminator may well ping-pong values of the same type. This muddies the water for alias analysis and is not supported atm. Such cases result in a pass failure.

Differential revision: https://reviews.llvm.org/D104490
2021-06-24 15:03:28 +00:00
..
cmake/modules [MLIR] Make MLIR cmake variable names consistent 2021-05-24 08:43:10 +05:30
docs Fix typo in Toy Tutorial Ch-4 2021-06-23 03:33:34 +00:00
examples [MLIR][NFC] Rename MemRefDataFlow -> AffineScalarReplacement 2021-06-14 17:52:53 +05:30
include [mlir][Linalg] Add support for scf::ForOp in comprehensive bufferization (7/n) 2021-06-24 15:03:28 +00:00
lib [mlir][Linalg] Add support for scf::ForOp in comprehensive bufferization (7/n) 2021-06-24 15:03:28 +00:00
python [mlir][linalg][python] Add shape-only tensor support to OpDSL. 2021-06-24 14:11:15 +00:00
test [mlir][Linalg] Add support for scf::ForOp in comprehensive bufferization (7/n) 2021-06-24 15:03:28 +00:00
tools [mlir][linalg][python] Add attribute support to the YAML codegen. 2021-06-24 12:33:48 +00:00
unittests [mlir][OpGen] Cache Identifiers for known attribute names in AbstractOperation. 2021-06-22 19:56:05 +00:00
utils [MLIR] Introduce scf.execute_region op 2021-06-18 15:22:33 +05:30
.clang-format
.clang-tidy NFC: .clang-tidy: Inherit configs from parents to improve maintainability 2021-06-08 08:25:59 -07:00
CMakeLists.txt [MLIR] Drop old cmake var names 2021-05-24 15:30:01 +05:30
LICENSE.TXT Add the Apache2 with LLVM exceptions license to MLIR 2019-12-24 00:58:06 -08:00
README.md mlir README.md: Fix the syntax 2019-12-24 13:31:07 +01:00

README.md

Multi-Level Intermediate Representation

See https://mlir.llvm.org/ for more information.