[mlir][tensors] Introduce attribute interface/attribute for tensor encoding
authorAart Bik <ajcbik@google.com>
Tue, 27 Apr 2021 00:03:35 +0000 (17:03 -0700)
committerAart Bik <ajcbik@google.com>
Tue, 27 Apr 2021 01:31:54 +0000 (18:31 -0700)
commit23c9e8bc25795b69e16d39b674c19c79a2bb107b
tree784eddb8ff06173248c89426c2ba03d7c4e79f05
parentbba7338b8f5df15a444aad8b3026aec869767b2b
[mlir][tensors] Introduce attribute interface/attribute for tensor encoding

The new "encoding" field in tensor types so far had no meaning. This revision introduces:

1. an encoding attribute interface in IR: for verification between tensors and encodings in general
2. an attribute in Tensor dialect; #tensor.sparse<dict> + concrete sparse tensors API

Active discussion:
https://llvm.discourse.group/t/rfc-introduce-a-sparse-tensor-type-to-core-mlir/2944/

Reviewed By: silvas, penpornk, bixia

Differential Revision: https://reviews.llvm.org/D101008
15 files changed:
mlir/include/mlir/Dialect/Tensor/IR/CMakeLists.txt
mlir/include/mlir/Dialect/Tensor/IR/Tensor.h
mlir/include/mlir/Dialect/Tensor/IR/TensorAttrDefs.td [new file with mode: 0644]
mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td
mlir/include/mlir/IR/CMakeLists.txt
mlir/include/mlir/IR/TensorEncoding.h [new file with mode: 0644]
mlir/include/mlir/IR/TensorEncoding.td [new file with mode: 0644]
mlir/lib/Dialect/Tensor/IR/CMakeLists.txt
mlir/lib/Dialect/Tensor/IR/TensorDialect.cpp
mlir/lib/IR/BuiltinTypes.cpp
mlir/lib/IR/CMakeLists.txt
mlir/lib/IR/TensorEncoding.cpp [new file with mode: 0644]
mlir/lib/Parser/TypeParser.cpp
mlir/test/Dialect/Tensor/invalid_sparse_tensor.mlir [new file with mode: 0644]
mlir/test/Dialect/Tensor/valid_sparse.mlir [new file with mode: 0644]