diff options
author | Tai Ly <tai.ly@arm.com> | 2024-01-25 18:37:27 +0000 |
---|---|---|
committer | Tai Ly <tai.ly@arm.com> | 2024-01-30 17:26:14 +0000 |
commit | 06cb91ba15e860adf72409341143f30613b336c1 (patch) | |
tree | 2e558c2421777c914c78ce202873e5aed52761b9 /src/TosaSerialize.cpp | |
parent | 4d04238050a50081f35d7e615b590d00e702f501 (diff) | |
download | tosa_mlir_translator-06cb91ba15e860adf72409341143f30613b336c1.tar.gz |
Change PadOp's padding to TOSA Shape
PadOp's padding input is now a tosa.shape type.
Changed serialization of PadOp to not store padding as attribute.
Changed deserialization of PadOp to not restore padding from attribute.
Signed-off-by: Tai Ly <tai.ly@arm.com>
Change-Id: I8a622978ea184b8d2779d311adba629c1a0d1fbd
Diffstat (limited to 'src/TosaSerialize.cpp')
-rw-r--r-- | src/TosaSerialize.cpp | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/src/TosaSerialize.cpp b/src/TosaSerialize.cpp index 4f2c358..de301fe 100644 --- a/src/TosaSerialize.cpp +++ b/src/TosaSerialize.cpp @@ -1205,19 +1205,10 @@ TosaSerializationOperator * TosaSerializationOperatorBuilder::build<mlir::tosa::PadOp>( mlir::Operation &op) const { std::string input_name = GetTensorName(op.getOperand(0)); + std::string padding_name = GetTensorName(op.getOperand(1)); std::string output_name = GetTensorName(op.getResult(0)); auto pad_op = llvm::cast<mlir::tosa::PadOp>(op); - // Match padding tensor as compile-time constant attribute - mlir::ElementsAttr paddings_elems; - if (!matchPattern(pad_op.getPadding(), m_Constant(&paddings_elems))) - return nullptr; - - std::vector<int> paddings; - for (int32_t val : paddings_elems.getValues<int32_t>()) { - paddings.push_back(val); - } - auto quant_info = pad_op.getQuantizationInfoAttr(); // pad_const includes the zero point if the tensor uses a zero point. int32_t pad_const_int = quant_info ? quant_info.getInputZp() : 0; @@ -1242,12 +1233,12 @@ TosaSerializationOperatorBuilder::build<mlir::tosa::PadOp>( } } - TosaPadAttribute attribute(paddings, pad_const_int, pad_const_fp); + TosaPadAttribute attribute({}, pad_const_int, pad_const_fp); - TosaSerializationOperator *tyop = - new TosaSerializationOperator(Op_PAD, Attribute_PadAttribute, &attribute, - std::vector<std::string>{input_name}, - std::vector<std::string>{output_name}); + TosaSerializationOperator *tyop = new TosaSerializationOperator( + Op_PAD, Attribute_PadAttribute, &attribute, + std::vector<std::string>{input_name, padding_name}, + std::vector<std::string>{output_name}); return tyop; } |