From 0c4a89e52c95a183fe7d3bc6c4f44e9a91921166 Mon Sep 17 00:00:00 2001 From: "A. Unique TensorFlower" Date: Thu, 18 Mar 2021 03:38:18 -0700 Subject: [PATCH] [MLIR][MHLO] Implement shape reification for `dynamic_broadcast_in_dim` PiperOrigin-RevId: 363622714 --- include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td | 5 +++-- lib/Dialect/mhlo/IR/hlo_ops.cc | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td b/include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td index c71e39d..3eecea2 100644 --- a/include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td +++ b/include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td @@ -825,8 +825,9 @@ def HLO_BroadcastInDimOp : HLO_Op<"broadcast_in_dim", let hasCustomHLOConverter = 1; } -def HLO_DynamicBroadcastInDimOp : HLO_Op<"dynamic_broadcast_in_dim", - [NoSideEffect]> { +def HLO_DynamicBroadcastInDimOp : HLO_Op<"dynamic_broadcast_in_dim", [ + NoSideEffect, DeclareOpInterfaceMethods]> { string summary = "Broadcast a tensor into the given dynamic shape by adding dimensions."; string description = [{ This is a generalization of the BroadcastInDimOp which accepts its output diff --git a/lib/Dialect/mhlo/IR/hlo_ops.cc b/lib/Dialect/mhlo/IR/hlo_ops.cc index 94079b8..8eb0670 100644 --- a/lib/Dialect/mhlo/IR/hlo_ops.cc +++ b/lib/Dialect/mhlo/IR/hlo_ops.cc @@ -908,6 +908,18 @@ void DynamicBroadcastInDimOp::getCanonicalizationPatterns( context); } +LogicalResult DynamicBroadcastInDimOp::inferReturnTypeComponents( + MLIRContext*, llvm::Optional, ValueRange, DictionaryAttr, + RegionRange, llvm::SmallVectorImpl&) { + return failure(); +} + +LogicalResult DynamicBroadcastInDimOp::reifyReturnTypeShapes( + OpBuilder&, SmallVectorImpl& reifiedReturnShapes) { + reifiedReturnShapes.push_back(output_dimensions()); + return success(); +} + //===----------------------------------------------------------------------===// // ClampOp //===----------------------------------------------------------------------===//