The new "encoding" field in tensor types so far had no meaning. This revision introduces:
- an encoding attribute interface in IR: for verification between tensors and encodings in general
- 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/
Does this mean instead of defining data types for all index, pointer, and value type, the user only need to specify the type for value and just specify the number of bits for index and pointer (since they are always integral)? Do we treat them as unsigned type? Also, what about arbitrary width (e.g., uint6)?