OSDN Git Service

[mlir] Added support for symbols inside linalg.generic and map concatenation
authorJakub Lichman <limo@google.com>
Mon, 20 Jul 2020 16:30:10 +0000 (18:30 +0200)
committerAlex Zinenko <zinenko@google.com>
Mon, 20 Jul 2020 17:20:47 +0000 (19:20 +0200)
commitf9c8febc522c2d26a44d4881f015e0e11e4f9167
treebabf94348c4b0106f9282966f9cc3545fa4507a6
parent55fa315b0352b63454206600d6803fafacb42d5e
[mlir] Added support for symbols inside linalg.generic and map concatenation

This commit adds functionality needed for implementation of convolutions with
linalg.generic op. Since linalg.generic right now expects indexing maps to be
just permutations, offset indexing needed in convolutions is not possible.
Therefore in this commit we address the issue by adding support for symbols inside
indexing maps which enables more advanced indexing. The upcoming commit will
solve the problem of computing loop bounds from such maps.

Differential Revision: https://reviews.llvm.org/D83158
15 files changed:
mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
mlir/include/mlir/Dialect/Utils/StructuredOpsUtils.h
mlir/include/mlir/IR/AffineExpr.h
mlir/lib/Dialect/Linalg/EDSC/Builders.cpp
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
mlir/lib/Dialect/Linalg/Transforms/Loops.cpp
mlir/lib/Dialect/Linalg/Transforms/TensorsToBuffers.cpp
mlir/lib/IR/AffineExpr.cpp
mlir/lib/IR/AffineMap.cpp
mlir/test/Dialect/Linalg/invalid.mlir
mlir/test/Dialect/Linalg/loops.mlir
mlir/test/lib/Transforms/TestBufferPlacement.cpp