[mlir][Linalg] Handle null affine map returns from inversePermutation.
authorMaheshRavishankar <ravishankarm@google.com>
Tue, 14 Apr 2020 18:54:15 +0000 (11:54 -0700)
committerMaheshRavishankar <ravishankarm@google.com>
Tue, 14 Apr 2020 21:41:20 +0000 (14:41 -0700)
commit37b520763fd9a51c94c446108907f48d04b7cab1
tree9407d5afa4c5ee297d50a7a228104966bcdf956e
parent91c8c74180ced4b82da02f2544f3978f72003d37
[mlir][Linalg] Handle null affine map returns from inversePermutation.

The inversePermutation method returns a null map on failure. Update
uses of this method within Linalg to handle this. In LinalgToLoops the
null return value was used to emit scalar code. Modify that to return
failure, and emit scalar implementation when affine map is "empty",
i.e. 1 dims, 0 symbols and no result exprs.

Differential Revision: https://reviews.llvm.org/D77964
mlir/include/mlir/IR/AffineMap.h
mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp
mlir/lib/Dialect/Linalg/Transforms/LinalgTransforms.cpp
mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
mlir/test/Dialect/Linalg/fusion-tensor.mlir