[mlir][sparse] integrate sparse annotation into generic linalg op
authorAart Bik <ajcbik@google.com>
Thu, 12 Nov 2020 00:37:48 +0000 (16:37 -0800)
committerAart Bik <ajcbik@google.com>
Thu, 12 Nov 2020 01:26:30 +0000 (17:26 -0800)
commite1dbc25ee2311b840f70905cd5f4dfafdeb5233f
tree1cc1530cb02b65e88d6a738be7097974fe8da478
parent292e898c16d120bdb629e0e7ba743c0aa1b9f1d2
[mlir][sparse] integrate sparse annotation into generic linalg op

This CL integrates the new sparse annotations (hereto merely added as fully
transparent attributes) more tightly to the generic linalg op in order to add
verification of the annotations' consistency as well as to make make other
passes more aware of their presence (in the long run, rewriting rules must
preserve the integrity of the annotations).

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D91224
mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterface.td
mlir/include/mlir/Dialect/Utils/StructuredOpsUtils.h
mlir/lib/Dialect/Linalg/EDSC/Builders.cpp
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp
mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
mlir/test/Dialect/Linalg/sparse_invalid.mlir [new file with mode: 0644]