diff options
| author | gysit <gysit@google.com> | 2022-03-08 15:33:47 +0000 |
|---|---|---|
| committer | gysit <gysit@google.com> | 2022-03-08 15:48:02 +0000 |
| commit | f4ae02afe7c40890977f4d7222761876ce9475f8 (patch) | |
| tree | cdbe12f330a3738e24f55bdd4701aa3810912acb /mlir/python | |
| parent | 95c0f2d115e29e3429226cccc1209f5640dd1b6a (diff) | |
[mlir][linalg] Add a FillOpInterface.
Add a FillOpInterface similar to the contraction and convolution op interfaces. The FillOpInterface is a preparation step to replace linalg.fill by its OpDSL version linalg.fill_tensor. The interface implements the `value()`, `output()`, and `result()` methods that by default are not available on linalg.fill_tensor.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D120725
Diffstat (limited to 'mlir/python')
| -rw-r--r-- | mlir/python/mlir/dialects/linalg/opdsl/lang/comprehension.py | 1 | ||||
| -rw-r--r-- | mlir/python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/mlir/python/mlir/dialects/linalg/opdsl/lang/comprehension.py b/mlir/python/mlir/dialects/linalg/opdsl/lang/comprehension.py index 7de0a76e87b7..1de5449e27e3 100644 --- a/mlir/python/mlir/dialects/linalg/opdsl/lang/comprehension.py +++ b/mlir/python/mlir/dialects/linalg/opdsl/lang/comprehension.py @@ -686,6 +686,7 @@ class OpInterfaceDef: ContractionOpInterface = OpInterfaceDef("LinalgContractionOpInterface") ConvolutionOpInterface = OpInterfaceDef("LinalgConvolutionOpInterface") +FillOpInterface = OpInterfaceDef("LinalgFillOpInterface") class OpMetadataDef(YAMLObject): diff --git a/mlir/python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py b/mlir/python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py index 0ef40613a7ba..7798d7f9498e 100644 --- a/mlir/python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py +++ b/mlir/python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py @@ -671,6 +671,7 @@ def fill_tensor(value=ScalarDef(T1), O=TensorDef(U, output=True)): accesses only and is thus rank polymorphic. Numeric casting is performed on the value operand, promoting it to the same data type as the output. """ + implements(FillOpInterface) O[None] = TypeFn.cast_signed(U, value) |
