llvm-project/mlir/lib/Interfaces
MaheshRavishankar 9b0517035f [mlir] Enhance InferShapedTypeOpInterface and move LinalgOps to use them.
A new `InterfaceMethod` is added to `InferShapedTypeOpInterface` that
allows an operation to return the `Value`s for each dim of its
results. It is intended for the case where the `Value` returned for
each dim is computed using the operands and operation attributes. This
interface method is for cases where the result dim of an operation can
be computed independently, and it avoids the need to aggregate all
dims of a result into a single shape value. This also implies that
this is not suitable for cases where the result type is unranked (for
which the existing interface methods is to be used).

Also added is a canonicalization pattern that uses this interface and
resolves the shapes of the output in terms of the shapes of the
inputs. Moving Linalg ops to use this interface, so that many
canonicalization patterns implemented for individual linalg ops to
achieve the same result can be removed in favor of the added
canonicalization pattern.

Differential Revision: https://reviews.llvm.org/D97887
2021-03-29 11:39:48 -07:00
..
CMakeLists.txt [mlir] Introduce data layout modeling subsystem 2021-03-11 16:54:47 +01:00
CallInterfaces.cpp [mlir] Update SCCP and the Inliner to use SymbolTableCollection for symbol lookups 2020-10-16 12:08:48 -07:00
CastInterfaces.cpp [mlir] Add an interface for Cast-Like operations 2021-01-20 16:28:17 -08:00
ControlFlowInterfaces.cpp [mlir][Types][NFC] Move all of the builtin Type classes to BuiltinTypes.h 2020-12-03 18:02:10 -08:00
CopyOpInterface.cpp [mlir] Add redundant copy removal transform 2020-07-03 15:36:25 +02:00
DataLayoutInterfaces.cpp [mlir] introduce data layout entry for index type 2021-03-24 15:13:42 +01:00
DerivedAttributeOpInterface.cpp [mlir] Add derived attribute op interface 2020-03-12 10:32:24 -07:00
InferTypeOpInterface.cpp [mlir] Enhance InferShapedTypeOpInterface and move LinalgOps to use them. 2021-03-29 11:39:48 -07:00
LoopLikeInterface.cpp [mlir][NFC] Move the LoopLike interface out of Transforms/ and into Interfaces/ 2020-03-14 13:37:56 -07:00
SideEffectInterfaces.cpp [mlir][IR] Remove the concept of `OperationProperties` 2021-02-09 12:00:15 -08:00
VectorInterfaces.cpp [mlir] NFC: fix trivial typos 2020-10-29 04:05:22 +09:00
ViewLikeInterface.cpp [mlir] Add custom directive hooks for printing mixed integer or value operands. 2021-02-01 19:03:49 -08:00