Revert "Revert "[mlir] Start splitting the `tensor` dialect out of `std`.""

Authored by silvas on Dec 11 2020, 2:20 PM.


Revert "Revert "[mlir] Start splitting the tensor dialect out of std.""

This reverts commit 0d48d265db6633e4e575f81f9d3a52139b1dc5ca.

This reapplies the following commit, with a fix for CAPI/ir.c:

[mlir] Start splitting the tensor dialect out of std.

This starts by moving std.extract_element to tensor.extract (this
mirrors the naming of vector.extract).

Curiously, std.extract_element supposedly works on vectors as well,
and this patch removes that functionality. I would tend to do that in
separate patch, but I couldn't find any downstream users relying on
this, and the fact that we have vector.extract made it seem safe
enough to lump in here.

This also sets up the tensor dialect as a dependency of the std
dialect, as some ops that currently live in std depend on
tensor.extract via their canonicalization patterns.

Part of RFC: https://llvm.discourse.group/t/rfc-split-the-tensor-dialect-from-std/2347/2

Differential Revision: https://reviews.llvm.org/D92991