diff --git a/compiler/souschef/include/souschef/TensorFiller.h b/compiler/souschef/include/souschef/TensorFiller.h index 1d87f1372d7..38d9b0e3e9c 100644 --- a/compiler/souschef/include/souschef/TensorFiller.h +++ b/compiler/souschef/include/souschef/TensorFiller.h @@ -85,6 +85,12 @@ class TensorFiller return false; } + void clear_tensor_filler() { _tensor_filler.clear(); } + + void clear_tensor_filler_vint32() { _tensor_filler_vint32.clear(); } + + void clear_tensor_filler_vfloat() { _tensor_filler_vfloat.clear(); } + private: std::map _tensor_filler{}; std::map> _tensor_filler_vint32{}; diff --git a/compiler/tflchef/tflite/src/Op/Abs.cpp b/compiler/tflchef/tflite/src/Op/Abs.cpp index 7d769e3441d..55b218e19ce 100644 --- a/compiler/tflchef/tflite/src/Op/Abs.cpp +++ b/compiler/tflchef/tflite/src/Op/Abs.cpp @@ -27,10 +27,10 @@ void TFliteOpAbs::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpAbs::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpAbs::build(RecipeChefContext *ctx) const { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Abs"); diff --git a/compiler/tflchef/tflite/src/Op/Add.cpp b/compiler/tflchef/tflite/src/Op/Add.cpp index 23d360616cf..508b7fe7511 100644 --- a/compiler/tflchef/tflite/src/Op/Add.cpp +++ b/compiler/tflchef/tflite/src/Op/Add.cpp @@ -30,14 +30,15 @@ void TFliteOpAdd::filler(const tflite::Operator *op, TFliteImport *import, fill_two_inputs(op, import); } -tflchef::Operation *TFliteOpAdd::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpAdd::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_AddOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Add"); auto op_options = operation->mutable_add_options(); diff --git a/compiler/tflchef/tflite/src/Op/AddN.cpp b/compiler/tflchef/tflite/src/Op/AddN.cpp index aeb3803abed..06d7f209f26 100644 --- a/compiler/tflchef/tflite/src/Op/AddN.cpp +++ b/compiler/tflchef/tflite/src/Op/AddN.cpp @@ -33,10 +33,11 @@ void TFliteOpAddN::filler(const tflite::Operator *op, TFliteImport *import, fill_tensor_to_import(inputs[idx], import); } -tflchef::Operation *TFliteOpAddN::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpAddN::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("AddN"); diff --git a/compiler/tflchef/tflite/src/Op/ArgMax.cpp b/compiler/tflchef/tflite/src/Op/ArgMax.cpp index f4d1c5e667a..0116495236d 100644 --- a/compiler/tflchef/tflite/src/Op/ArgMax.cpp +++ b/compiler/tflchef/tflite/src/Op/ArgMax.cpp @@ -34,14 +34,14 @@ void TFliteOpArgMax::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpArgMax::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpArgMax::build(RecipeChefContext *ctx) const { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_ArgMaxOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("ArgMax"); auto op_options = operation->mutable_argmax_options(); diff --git a/compiler/tflchef/tflite/src/Op/ArgMin.cpp b/compiler/tflchef/tflite/src/Op/ArgMin.cpp index faab0b8308e..6ad4fd086ee 100644 --- a/compiler/tflchef/tflite/src/Op/ArgMin.cpp +++ b/compiler/tflchef/tflite/src/Op/ArgMin.cpp @@ -34,14 +34,15 @@ void TFliteOpArgMin::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpArgMin::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpArgMin::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_ArgMinOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("ArgMin"); auto op_options = operation->mutable_argmin_options(); diff --git a/compiler/tflchef/tflite/src/Op/AveragePool2D.cpp b/compiler/tflchef/tflite/src/Op/AveragePool2D.cpp index 1f269e45e5c..8e34d71e279 100644 --- a/compiler/tflchef/tflite/src/Op/AveragePool2D.cpp +++ b/compiler/tflchef/tflite/src/Op/AveragePool2D.cpp @@ -27,14 +27,15 @@ void TFliteOpAveragePool2D::filler(const tflite::Operator *op, TFliteImport *imp // Nothing to do with filler } -tflchef::Operation *TFliteOpAveragePool2D::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpAveragePool2D::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_Pool2DOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("AveragePool2D"); auto op_options = operation->mutable_averagepool2d_options(); diff --git a/compiler/tflchef/tflite/src/Op/BatchMatMul.cpp b/compiler/tflchef/tflite/src/Op/BatchMatMul.cpp index 598e58c94f3..f425caa34f2 100644 --- a/compiler/tflchef/tflite/src/Op/BatchMatMul.cpp +++ b/compiler/tflchef/tflite/src/Op/BatchMatMul.cpp @@ -27,10 +27,11 @@ void TFliteOpBatchMatMul::filler(const tflite::Operator *op, TFliteImport *impor // Nothing to do with filler } -tflchef::Operation *TFliteOpBatchMatMul::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpBatchMatMul::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("BatchMatMul"); diff --git a/compiler/tflchef/tflite/src/Op/BatchToSpaceND.cpp b/compiler/tflchef/tflite/src/Op/BatchToSpaceND.cpp index d5d9606d145..ab94b37a093 100644 --- a/compiler/tflchef/tflite/src/Op/BatchToSpaceND.cpp +++ b/compiler/tflchef/tflite/src/Op/BatchToSpaceND.cpp @@ -40,10 +40,11 @@ void TFliteOpBatchToSpaceND::filler(const tflite::Operator *op, TFliteImport *im import->set_tensor_filler(inputs[2], vec); } -tflchef::Operation *TFliteOpBatchToSpaceND::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpBatchToSpaceND::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("BatchToSpaceND"); diff --git a/compiler/tflchef/tflite/src/Op/BidirectionalSequenceLSTM.cpp b/compiler/tflchef/tflite/src/Op/BidirectionalSequenceLSTM.cpp index 32548247e18..4d8866b08d7 100644 --- a/compiler/tflchef/tflite/src/Op/BidirectionalSequenceLSTM.cpp +++ b/compiler/tflchef/tflite/src/Op/BidirectionalSequenceLSTM.cpp @@ -41,15 +41,14 @@ void TFliteOpBidirectionalSequenceLSTM::filler(const tflite::Operator *op, TFlit } } -tflchef::Operation * -TFliteOpBidirectionalSequenceLSTM::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpBidirectionalSequenceLSTM::build(RecipeChefContext *ctx) const { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_BidirectionalSequenceLSTMOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("BidirectionalSequenceLSTM"); auto op_options = operation->mutable_bidirectional_sequence_lstm_options(); diff --git a/compiler/tflchef/tflite/src/Op/BroadcastTo.cpp b/compiler/tflchef/tflite/src/Op/BroadcastTo.cpp index 657040627d3..036e7afbaba 100644 --- a/compiler/tflchef/tflite/src/Op/BroadcastTo.cpp +++ b/compiler/tflchef/tflite/src/Op/BroadcastTo.cpp @@ -31,10 +31,11 @@ void TFliteOpBroadcastTo::filler(const tflite::Operator *op, TFliteImport *impor fill_tensor_to_import(inputs[1], import); } -tflchef::Operation *TFliteOpBroadcastTo::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpBroadcastTo::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("BroadcastTo"); diff --git a/compiler/tflchef/tflite/src/Op/Cast.cpp b/compiler/tflchef/tflite/src/Op/Cast.cpp index 393bb4b35c1..e57cebb72c4 100644 --- a/compiler/tflchef/tflite/src/Op/Cast.cpp +++ b/compiler/tflchef/tflite/src/Op/Cast.cpp @@ -27,14 +27,15 @@ void TFliteOpCast::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpCast::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpCast::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_CastOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Cast"); auto op_options = operation->mutable_cast_options(); diff --git a/compiler/tflchef/tflite/src/Op/Ceil.cpp b/compiler/tflchef/tflite/src/Op/Ceil.cpp index d3ef3adaecf..9fec323b7c0 100644 --- a/compiler/tflchef/tflite/src/Op/Ceil.cpp +++ b/compiler/tflchef/tflite/src/Op/Ceil.cpp @@ -26,10 +26,11 @@ void TFliteOpCeil::filler(const tflite::Operator *, TFliteImport *, tflchef::Mod // Nothing to do with filler } -tflchef::Operation *TFliteOpCeil::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpCeil::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Ceil"); diff --git a/compiler/tflchef/tflite/src/Op/Concatenation.cpp b/compiler/tflchef/tflite/src/Op/Concatenation.cpp index 126402f144d..62e2974ae9b 100644 --- a/compiler/tflchef/tflite/src/Op/Concatenation.cpp +++ b/compiler/tflchef/tflite/src/Op/Concatenation.cpp @@ -27,14 +27,15 @@ void TFliteOpConcatenation::filler(const tflite::Operator *op, TFliteImport *imp // Nothing to do with filler } -tflchef::Operation *TFliteOpConcatenation::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpConcatenation::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_ConcatenationOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Concatenation"); auto op_options = operation->mutable_concatenation_options(); diff --git a/compiler/tflchef/tflite/src/Op/Conv2D.cpp b/compiler/tflchef/tflite/src/Op/Conv2D.cpp index 57abd4649d3..762f86a9403 100644 --- a/compiler/tflchef/tflite/src/Op/Conv2D.cpp +++ b/compiler/tflchef/tflite/src/Op/Conv2D.cpp @@ -34,14 +34,15 @@ void TFliteOpConv2D::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs.at(2)); // bias } -tflchef::Operation *TFliteOpConv2D::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpConv2D::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_Conv2DOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Conv2D"); auto op_options = operation->mutable_conv2d_options(); diff --git a/compiler/tflchef/tflite/src/Op/Cos.cpp b/compiler/tflchef/tflite/src/Op/Cos.cpp index 9f2c49d49f5..9a977e2be39 100644 --- a/compiler/tflchef/tflite/src/Op/Cos.cpp +++ b/compiler/tflchef/tflite/src/Op/Cos.cpp @@ -27,10 +27,11 @@ void TFliteOpCos::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpCos::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpCos::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Cos"); diff --git a/compiler/tflchef/tflite/src/Op/CumSum.cpp b/compiler/tflchef/tflite/src/Op/CumSum.cpp index ac5ab1bc400..91a59070ecf 100644 --- a/compiler/tflchef/tflite/src/Op/CumSum.cpp +++ b/compiler/tflchef/tflite/src/Op/CumSum.cpp @@ -33,14 +33,15 @@ void TFliteOpCumsum::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpCumsum::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpCumsum::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_CumsumOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("CumSum"); auto op_options = operation->mutable_cumsum_options(); diff --git a/compiler/tflchef/tflite/src/Op/DepthToSpace.cpp b/compiler/tflchef/tflite/src/Op/DepthToSpace.cpp index 1a0917e8e49..6835209f74d 100644 --- a/compiler/tflchef/tflite/src/Op/DepthToSpace.cpp +++ b/compiler/tflchef/tflite/src/Op/DepthToSpace.cpp @@ -27,10 +27,11 @@ void TFliteOpDepthToSpace::filler(const tflite::Operator *op, TFliteImport *impo // Nothing to do with filler } -tflchef::Operation *TFliteOpDepthToSpace::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpDepthToSpace::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("DepthToSpace"); diff --git a/compiler/tflchef/tflite/src/Op/DepthwiseConv2D.cpp b/compiler/tflchef/tflite/src/Op/DepthwiseConv2D.cpp index 5fed3353a64..5c428660a06 100644 --- a/compiler/tflchef/tflite/src/Op/DepthwiseConv2D.cpp +++ b/compiler/tflchef/tflite/src/Op/DepthwiseConv2D.cpp @@ -34,14 +34,15 @@ void TFliteOpDepthwiseConv2D::filler(const tflite::Operator *op, TFliteImport *i import->set_tensor_filler(inputs.at(2)); // bias } -tflchef::Operation *TFliteOpDepthwiseConv2D::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpDepthwiseConv2D::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_DepthwiseConv2DOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("DepthwiseConv2D"); auto op_options = operation->mutable_depthwiseconv2d_options(); diff --git a/compiler/tflchef/tflite/src/Op/Dequantize.cpp b/compiler/tflchef/tflite/src/Op/Dequantize.cpp index 436a0db1995..599507e7d72 100644 --- a/compiler/tflchef/tflite/src/Op/Dequantize.cpp +++ b/compiler/tflchef/tflite/src/Op/Dequantize.cpp @@ -27,10 +27,11 @@ void TFliteOpDequantize::filler(const tflite::Operator *op, TFliteImport *import // Nothing to do with filler } -tflchef::Operation *TFliteOpDequantize::build(const tflite::Operator *, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpDequantize::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Dequantize"); diff --git a/compiler/tflchef/tflite/src/Op/Div.cpp b/compiler/tflchef/tflite/src/Op/Div.cpp index 0fd87dc0548..c7fecad6df9 100644 --- a/compiler/tflchef/tflite/src/Op/Div.cpp +++ b/compiler/tflchef/tflite/src/Op/Div.cpp @@ -27,14 +27,14 @@ void TFliteOpDiv::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpDiv::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpDiv::build(RecipeChefContext *ctx) const { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_DivOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Div"); auto op_options = operation->mutable_div_options(); diff --git a/compiler/tflchef/tflite/src/Op/ELU.cpp b/compiler/tflchef/tflite/src/Op/ELU.cpp index cb4b61d6616..0d9d7c6be9f 100644 --- a/compiler/tflchef/tflite/src/Op/ELU.cpp +++ b/compiler/tflchef/tflite/src/Op/ELU.cpp @@ -27,10 +27,11 @@ void TFliteOpELU::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpELU::build(const tflite::Operator *, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpELU::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ELU"); diff --git a/compiler/tflchef/tflite/src/Op/Equal.cpp b/compiler/tflchef/tflite/src/Op/Equal.cpp index a515862287d..bdc49e9971d 100644 --- a/compiler/tflchef/tflite/src/Op/Equal.cpp +++ b/compiler/tflchef/tflite/src/Op/Equal.cpp @@ -27,10 +27,11 @@ void TFliteOpEqual::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpEqual::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpEqual::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Equal"); diff --git a/compiler/tflchef/tflite/src/Op/Exp.cpp b/compiler/tflchef/tflite/src/Op/Exp.cpp index f715da6ef0e..15add5cf4ed 100644 --- a/compiler/tflchef/tflite/src/Op/Exp.cpp +++ b/compiler/tflchef/tflite/src/Op/Exp.cpp @@ -27,10 +27,11 @@ void TFliteOpExp::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpExp::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpExp::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Exp"); diff --git a/compiler/tflchef/tflite/src/Op/ExpandDims.cpp b/compiler/tflchef/tflite/src/Op/ExpandDims.cpp index e30e8dbcca2..1afb3182ad9 100644 --- a/compiler/tflchef/tflite/src/Op/ExpandDims.cpp +++ b/compiler/tflchef/tflite/src/Op/ExpandDims.cpp @@ -34,10 +34,11 @@ void TFliteOpExpandDims::filler(const tflite::Operator *op, TFliteImport *import import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpExpandDims::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpExpandDims::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ExpandDims"); diff --git a/compiler/tflchef/tflite/src/Op/FakeQuant.cpp b/compiler/tflchef/tflite/src/Op/FakeQuant.cpp index f44b85465ed..45fbe3c3759 100644 --- a/compiler/tflchef/tflite/src/Op/FakeQuant.cpp +++ b/compiler/tflchef/tflite/src/Op/FakeQuant.cpp @@ -27,14 +27,15 @@ void TFliteOpFakeQuant::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpFakeQuant::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpFakeQuant::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_FakeQuantOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("FakeQuant"); auto op_options = operation->mutable_fakequant_options(); diff --git a/compiler/tflchef/tflite/src/Op/Fill.cpp b/compiler/tflchef/tflite/src/Op/Fill.cpp index 08b695fd7f2..6995c96c099 100644 --- a/compiler/tflchef/tflite/src/Op/Fill.cpp +++ b/compiler/tflchef/tflite/src/Op/Fill.cpp @@ -33,10 +33,11 @@ void TFliteOpFill::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[0], vec); } -tflchef::Operation *TFliteOpFill::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpFill::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Fill"); // FillOptions are empty diff --git a/compiler/tflchef/tflite/src/Op/Floor.cpp b/compiler/tflchef/tflite/src/Op/Floor.cpp index 373c69f7111..774cb53adac 100644 --- a/compiler/tflchef/tflite/src/Op/Floor.cpp +++ b/compiler/tflchef/tflite/src/Op/Floor.cpp @@ -26,10 +26,10 @@ void TFliteOpFloor::filler(const tflite::Operator *, TFliteImport *, tflchef::Mo // Nothing to do with filler } -tflchef::Operation *TFliteOpFloor::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpFloor::build(RecipeChefContext *ctx) const { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Floor"); diff --git a/compiler/tflchef/tflite/src/Op/FloorDiv.cpp b/compiler/tflchef/tflite/src/Op/FloorDiv.cpp index 492c6941f17..84c6fab357e 100644 --- a/compiler/tflchef/tflite/src/Op/FloorDiv.cpp +++ b/compiler/tflchef/tflite/src/Op/FloorDiv.cpp @@ -27,10 +27,11 @@ void TFliteOpFloorDiv::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpFloorDiv::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpFloorDiv::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("FloorDiv"); diff --git a/compiler/tflchef/tflite/src/Op/FloorMod.cpp b/compiler/tflchef/tflite/src/Op/FloorMod.cpp index 997d8266439..de89b7934e2 100644 --- a/compiler/tflchef/tflite/src/Op/FloorMod.cpp +++ b/compiler/tflchef/tflite/src/Op/FloorMod.cpp @@ -27,10 +27,11 @@ void TFliteOpFloorMod::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpFloorMod::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpFloorMod::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("FloorMod"); diff --git a/compiler/tflchef/tflite/src/Op/FullyConnected.cpp b/compiler/tflchef/tflite/src/Op/FullyConnected.cpp index bbc749fe4d7..4d2d62dc363 100644 --- a/compiler/tflchef/tflite/src/Op/FullyConnected.cpp +++ b/compiler/tflchef/tflite/src/Op/FullyConnected.cpp @@ -35,14 +35,15 @@ void TFliteOpFullyConnected::filler(const tflite::Operator *op, TFliteImport *im } } -tflchef::Operation *TFliteOpFullyConnected::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpFullyConnected::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_FullyConnectedOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("FullyConnected"); auto op_options = operation->mutable_fullyconnected_options(); diff --git a/compiler/tflchef/tflite/src/Op/Gather.cpp b/compiler/tflchef/tflite/src/Op/Gather.cpp index 98da3ec4341..c2bfb78d4d8 100644 --- a/compiler/tflchef/tflite/src/Op/Gather.cpp +++ b/compiler/tflchef/tflite/src/Op/Gather.cpp @@ -39,14 +39,15 @@ void TFliteOpGather::filler(const tflite::Operator *op, TFliteImport *import, } } -tflchef::Operation *TFliteOpGather::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpGather::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_GatherOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Gather"); auto op_options = operation->mutable_gather_options(); diff --git a/compiler/tflchef/tflite/src/Op/GatherNd.cpp b/compiler/tflchef/tflite/src/Op/GatherNd.cpp index 0ff5a0b7fb1..7ae496e7d7c 100644 --- a/compiler/tflchef/tflite/src/Op/GatherNd.cpp +++ b/compiler/tflchef/tflite/src/Op/GatherNd.cpp @@ -38,10 +38,11 @@ void TFliteOpGatherNd::filler(const tflite::Operator *op, TFliteImport *import, } } -tflchef::Operation *TFliteOpGatherNd::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpGatherNd::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("GatherNd"); return operation; diff --git a/compiler/tflchef/tflite/src/Op/Gelu.cpp b/compiler/tflchef/tflite/src/Op/Gelu.cpp index 23cee07b057..807efad8761 100644 --- a/compiler/tflchef/tflite/src/Op/Gelu.cpp +++ b/compiler/tflchef/tflite/src/Op/Gelu.cpp @@ -27,12 +27,13 @@ void TFliteOpGelu::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpGelu::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpGelu::build(RecipeChefContext *ctx) const + { - auto op_params = op->builtin_options_as_GeluOptions(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; - auto operation = model_recipe->add_operation(); + auto op_params = op->builtin_options_as_GeluOptions(); operation->set_type("Gelu"); diff --git a/compiler/tflchef/tflite/src/Op/Greater.cpp b/compiler/tflchef/tflite/src/Op/Greater.cpp index 4e41efb2de9..674d0aea5eb 100644 --- a/compiler/tflchef/tflite/src/Op/Greater.cpp +++ b/compiler/tflchef/tflite/src/Op/Greater.cpp @@ -27,10 +27,11 @@ void TFliteOpGreater::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpGreater::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpGreater::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Greater"); diff --git a/compiler/tflchef/tflite/src/Op/GreaterEqual.cpp b/compiler/tflchef/tflite/src/Op/GreaterEqual.cpp index aead30e5770..66caafce41b 100644 --- a/compiler/tflchef/tflite/src/Op/GreaterEqual.cpp +++ b/compiler/tflchef/tflite/src/Op/GreaterEqual.cpp @@ -27,10 +27,11 @@ void TFliteOpGreaterEqual::filler(const tflite::Operator *op, TFliteImport *impo // Nothing to do with filler } -tflchef::Operation *TFliteOpGreaterEqual::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpGreaterEqual::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("GreaterEqual"); diff --git a/compiler/tflchef/tflite/src/Op/HardSwish.cpp b/compiler/tflchef/tflite/src/Op/HardSwish.cpp index 2282ff97d11..fcdb27bdc31 100644 --- a/compiler/tflchef/tflite/src/Op/HardSwish.cpp +++ b/compiler/tflchef/tflite/src/Op/HardSwish.cpp @@ -27,10 +27,11 @@ void TFliteOpHardSwish::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpHardSwish::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpHardSwish::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("HardSwish"); diff --git a/compiler/tflchef/tflite/src/Op/L2Normalize.cpp b/compiler/tflchef/tflite/src/Op/L2Normalize.cpp index 0a8908472b9..1d29a064148 100644 --- a/compiler/tflchef/tflite/src/Op/L2Normalize.cpp +++ b/compiler/tflchef/tflite/src/Op/L2Normalize.cpp @@ -27,11 +27,13 @@ void TFliteOpL2Normalize::filler(const tflite::Operator *op, TFliteImport *impor // Nothing to do with filler } -tflchef::Operation *TFliteOpL2Normalize::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpL2Normalize::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_L2NormOptions(); - auto operation = model_recipe->add_operation(); operation->set_type("L2Normalize"); diff --git a/compiler/tflchef/tflite/src/Op/L2Pool2D.cpp b/compiler/tflchef/tflite/src/Op/L2Pool2D.cpp index 8db4b02b698..68b22756385 100644 --- a/compiler/tflchef/tflite/src/Op/L2Pool2D.cpp +++ b/compiler/tflchef/tflite/src/Op/L2Pool2D.cpp @@ -27,14 +27,15 @@ void TFliteOpL2Pool2D::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpL2Pool2D::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpL2Pool2D::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_Pool2DOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("L2Pool2D"); auto op_options = operation->mutable_l2pool2d_options(); diff --git a/compiler/tflchef/tflite/src/Op/LeakyRelu.cpp b/compiler/tflchef/tflite/src/Op/LeakyRelu.cpp index bf9cb2fb3db..b5fc06a763f 100644 --- a/compiler/tflchef/tflite/src/Op/LeakyRelu.cpp +++ b/compiler/tflchef/tflite/src/Op/LeakyRelu.cpp @@ -27,12 +27,13 @@ void TFliteOpLeakyRelu::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpLeakyRelu::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpLeakyRelu::build(RecipeChefContext *ctx) const + { - auto op_params = op->builtin_options_as_LeakyReluOptions(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; - auto operation = model_recipe->add_operation(); + auto op_params = op->builtin_options_as_LeakyReluOptions(); operation->set_type("LeakyRelu"); diff --git a/compiler/tflchef/tflite/src/Op/Less.cpp b/compiler/tflchef/tflite/src/Op/Less.cpp index 0360317c7df..e69db7407fb 100644 --- a/compiler/tflchef/tflite/src/Op/Less.cpp +++ b/compiler/tflchef/tflite/src/Op/Less.cpp @@ -17,6 +17,7 @@ #include "Less.h" #include "Convert.h" +#include "FillerHelper.h" namespace tflchef { @@ -24,13 +25,18 @@ namespace tflchef void TFliteOpLess::filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const { - // Nothing to do with filler + const auto &inputs = *op->inputs(); + + for (int input : inputs) + { + fill_tensor_to_import(input, import); + } } -tflchef::Operation *TFliteOpLess::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpLess::build(RecipeChefContext *ctx) const { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Less"); diff --git a/compiler/tflchef/tflite/src/Op/LessEqual.cpp b/compiler/tflchef/tflite/src/Op/LessEqual.cpp index b8c42e80de5..51a9af177d7 100644 --- a/compiler/tflchef/tflite/src/Op/LessEqual.cpp +++ b/compiler/tflchef/tflite/src/Op/LessEqual.cpp @@ -27,10 +27,11 @@ void TFliteOpLessEqual::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpLessEqual::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpLessEqual::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("LessEqual"); diff --git a/compiler/tflchef/tflite/src/Op/LocalResponseNormalization.cpp b/compiler/tflchef/tflite/src/Op/LocalResponseNormalization.cpp index 8bebd9e909f..82302eb6a83 100644 --- a/compiler/tflchef/tflite/src/Op/LocalResponseNormalization.cpp +++ b/compiler/tflchef/tflite/src/Op/LocalResponseNormalization.cpp @@ -27,15 +27,14 @@ void TFliteOpLocalResponseNormalization::filler(const tflite::Operator *op, TFli // Nothing to do with filler } -tflchef::Operation * -TFliteOpLocalResponseNormalization::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpLocalResponseNormalization::build(RecipeChefContext *ctx) const { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_LocalResponseNormalizationOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("LocalResponseNormalization"); auto op_options = operation->mutable_local_response_normalization_options(); diff --git a/compiler/tflchef/tflite/src/Op/Log.cpp b/compiler/tflchef/tflite/src/Op/Log.cpp index a68dc9a31d7..b3e91dadde4 100644 --- a/compiler/tflchef/tflite/src/Op/Log.cpp +++ b/compiler/tflchef/tflite/src/Op/Log.cpp @@ -27,10 +27,10 @@ void TFliteOpLog::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpLog::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpLog::build(RecipeChefContext *ctx) const { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Log"); diff --git a/compiler/tflchef/tflite/src/Op/LogSoftmax.cpp b/compiler/tflchef/tflite/src/Op/LogSoftmax.cpp index 8f0e1a9f999..7671ec2b4f5 100644 --- a/compiler/tflchef/tflite/src/Op/LogSoftmax.cpp +++ b/compiler/tflchef/tflite/src/Op/LogSoftmax.cpp @@ -27,10 +27,11 @@ void TFliteOpLogSoftmax::filler(const tflite::Operator *op, TFliteImport *import // Nothing to do with filler } -tflchef::Operation *TFliteOpLogSoftmax::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpLogSoftmax::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("LogSoftmax"); diff --git a/compiler/tflchef/tflite/src/Op/LogicalAnd.cpp b/compiler/tflchef/tflite/src/Op/LogicalAnd.cpp index 2cc486426b6..2d31666cde3 100644 --- a/compiler/tflchef/tflite/src/Op/LogicalAnd.cpp +++ b/compiler/tflchef/tflite/src/Op/LogicalAnd.cpp @@ -27,10 +27,11 @@ void TFliteOpLogicalAnd::filler(const tflite::Operator *op, TFliteImport *import // Nothing to do with filler } -tflchef::Operation *TFliteOpLogicalAnd::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpLogicalAnd::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("LogicalAnd"); diff --git a/compiler/tflchef/tflite/src/Op/LogicalNot.cpp b/compiler/tflchef/tflite/src/Op/LogicalNot.cpp index ecd5b903c44..3fbd8a05998 100644 --- a/compiler/tflchef/tflite/src/Op/LogicalNot.cpp +++ b/compiler/tflchef/tflite/src/Op/LogicalNot.cpp @@ -27,10 +27,10 @@ void TFliteOpLogicalNot::filler(const tflite::Operator *op, TFliteImport *import // Nothing to do with filler } -tflchef::Operation *TFliteOpLogicalNot::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpLogicalNot::build(RecipeChefContext *ctx) const { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("LogicalNot"); diff --git a/compiler/tflchef/tflite/src/Op/LogicalOr.cpp b/compiler/tflchef/tflite/src/Op/LogicalOr.cpp index b91f4cfca71..8acc1db5796 100644 --- a/compiler/tflchef/tflite/src/Op/LogicalOr.cpp +++ b/compiler/tflchef/tflite/src/Op/LogicalOr.cpp @@ -27,10 +27,11 @@ void TFliteOpLogicalOr::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpLogicalOr::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpLogicalOr::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("LogicalOr"); diff --git a/compiler/tflchef/tflite/src/Op/Logistic.cpp b/compiler/tflchef/tflite/src/Op/Logistic.cpp index 18b3b5c0002..09e943a662b 100644 --- a/compiler/tflchef/tflite/src/Op/Logistic.cpp +++ b/compiler/tflchef/tflite/src/Op/Logistic.cpp @@ -27,10 +27,11 @@ void TFliteOpLogistic::filler(const tflite::Operator *, TFliteImport *, // Nothing to do with filler } -tflchef::Operation *TFliteOpLogistic::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpLogistic::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Logistic"); diff --git a/compiler/tflchef/tflite/src/Op/MatrixDiag.cpp b/compiler/tflchef/tflite/src/Op/MatrixDiag.cpp index ca84c494938..422b3293e0d 100644 --- a/compiler/tflchef/tflite/src/Op/MatrixDiag.cpp +++ b/compiler/tflchef/tflite/src/Op/MatrixDiag.cpp @@ -25,10 +25,11 @@ void TFliteOpMatrixDiag::filler(const tflite::Operator *op, TFliteImport *import // Nothing to do with filler } -tflchef::Operation *TFliteOpMatrixDiag::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpMatrixDiag::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("MatrixDiag"); diff --git a/compiler/tflchef/tflite/src/Op/MatrixSetDiag.cpp b/compiler/tflchef/tflite/src/Op/MatrixSetDiag.cpp index 97c7de41fe0..cc7e278cc6b 100644 --- a/compiler/tflchef/tflite/src/Op/MatrixSetDiag.cpp +++ b/compiler/tflchef/tflite/src/Op/MatrixSetDiag.cpp @@ -25,10 +25,11 @@ void TFliteOpMatrixSetDiag::filler(const tflite::Operator *, TFliteImport *, // Nothing to do with filler } -tflchef::Operation *TFliteOpMatrixSetDiag::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpMatrixSetDiag::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("MatrixSetDiag"); diff --git a/compiler/tflchef/tflite/src/Op/MaxPool2D.cpp b/compiler/tflchef/tflite/src/Op/MaxPool2D.cpp index 1366366ac38..0b81c92a2a2 100644 --- a/compiler/tflchef/tflite/src/Op/MaxPool2D.cpp +++ b/compiler/tflchef/tflite/src/Op/MaxPool2D.cpp @@ -27,14 +27,15 @@ void TFliteOpMaxPool2D::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpMaxPool2D::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpMaxPool2D::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_Pool2DOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("MaxPool2D"); auto op_options = operation->mutable_maxpool2d_options(); diff --git a/compiler/tflchef/tflite/src/Op/Maximum.cpp b/compiler/tflchef/tflite/src/Op/Maximum.cpp index 65e4c2c992b..a5e1f94f108 100644 --- a/compiler/tflchef/tflite/src/Op/Maximum.cpp +++ b/compiler/tflchef/tflite/src/Op/Maximum.cpp @@ -28,10 +28,11 @@ void TFliteOpMaximum::filler(const tflite::Operator *op, TFliteImport *import, fill_two_inputs(op, import); } -tflchef::Operation *TFliteOpMaximum::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpMaximum::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Maximum"); diff --git a/compiler/tflchef/tflite/src/Op/Mean.cpp b/compiler/tflchef/tflite/src/Op/Mean.cpp index 1c297578154..989a1244d48 100644 --- a/compiler/tflchef/tflite/src/Op/Mean.cpp +++ b/compiler/tflchef/tflite/src/Op/Mean.cpp @@ -34,14 +34,15 @@ void TFliteOpMean::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpMean::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpMean::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_ReducerOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Mean"); auto op_options = operation->mutable_mean_options(); diff --git a/compiler/tflchef/tflite/src/Op/Minimum.cpp b/compiler/tflchef/tflite/src/Op/Minimum.cpp index b4d255ce389..ac3b5426ddd 100644 --- a/compiler/tflchef/tflite/src/Op/Minimum.cpp +++ b/compiler/tflchef/tflite/src/Op/Minimum.cpp @@ -28,10 +28,11 @@ void TFliteOpMinimum::filler(const tflite::Operator *op, TFliteImport *import, fill_two_inputs(op, import); } -tflchef::Operation *TFliteOpMinimum::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpMinimum::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Minimum"); diff --git a/compiler/tflchef/tflite/src/Op/MirrorPad.cpp b/compiler/tflchef/tflite/src/Op/MirrorPad.cpp index c688552ee3a..c453d171b15 100644 --- a/compiler/tflchef/tflite/src/Op/MirrorPad.cpp +++ b/compiler/tflchef/tflite/src/Op/MirrorPad.cpp @@ -34,10 +34,11 @@ void TFliteOpMirrorPad::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpMirrorPad::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpMirrorPad::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("MirrorPad"); auto op_options = operation->mutable_mirrorpad_options(); diff --git a/compiler/tflchef/tflite/src/Op/Mul.cpp b/compiler/tflchef/tflite/src/Op/Mul.cpp index 1145ff7e60e..bf9f69d8df9 100644 --- a/compiler/tflchef/tflite/src/Op/Mul.cpp +++ b/compiler/tflchef/tflite/src/Op/Mul.cpp @@ -30,10 +30,11 @@ void TFliteOpMul::filler(const tflite::Operator *op, TFliteImport *import, fill_two_inputs(op, import); } -tflchef::Operation *TFliteOpMul::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpMul::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Mul"); diff --git a/compiler/tflchef/tflite/src/Op/Neg.cpp b/compiler/tflchef/tflite/src/Op/Neg.cpp index c691390a39b..a2912d813bf 100644 --- a/compiler/tflchef/tflite/src/Op/Neg.cpp +++ b/compiler/tflchef/tflite/src/Op/Neg.cpp @@ -27,10 +27,11 @@ void TFliteOpNeg::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpNeg::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpNeg::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Neg"); diff --git a/compiler/tflchef/tflite/src/Op/NonMaxSuppressionV4.cpp b/compiler/tflchef/tflite/src/Op/NonMaxSuppressionV4.cpp index 4f096ced4d2..bd3dda62c8f 100644 --- a/compiler/tflchef/tflite/src/Op/NonMaxSuppressionV4.cpp +++ b/compiler/tflchef/tflite/src/Op/NonMaxSuppressionV4.cpp @@ -42,11 +42,11 @@ void TFliteOpNonMaxSuppressionV4::filler(const tflite::Operator *op, TFliteImpor } } -tflchef::Operation *TFliteOpNonMaxSuppressionV4::build(const tflite::Operator *op, - TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpNonMaxSuppressionV4::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("NonMaxSuppressionV4"); diff --git a/compiler/tflchef/tflite/src/Op/NonMaxSuppressionV5.cpp b/compiler/tflchef/tflite/src/Op/NonMaxSuppressionV5.cpp index 332cba0ff27..a6817be5702 100644 --- a/compiler/tflchef/tflite/src/Op/NonMaxSuppressionV5.cpp +++ b/compiler/tflchef/tflite/src/Op/NonMaxSuppressionV5.cpp @@ -45,11 +45,10 @@ void TFliteOpNonMaxSuppressionV5::filler(const tflite::Operator *op, TFliteImpor } } -tflchef::Operation *TFliteOpNonMaxSuppressionV5::build(const tflite::Operator *op, - TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpNonMaxSuppressionV5::build(RecipeChefContext *ctx) const { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("NonMaxSuppressionV5"); diff --git a/compiler/tflchef/tflite/src/Op/NotEqual.cpp b/compiler/tflchef/tflite/src/Op/NotEqual.cpp index c2275db0635..3677ccdc3c1 100644 --- a/compiler/tflchef/tflite/src/Op/NotEqual.cpp +++ b/compiler/tflchef/tflite/src/Op/NotEqual.cpp @@ -27,10 +27,11 @@ void TFliteOpNotEqual::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpNotEqual::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpNotEqual::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("NotEqual"); diff --git a/compiler/tflchef/tflite/src/Op/OneHot.cpp b/compiler/tflchef/tflite/src/Op/OneHot.cpp index f26ed3e7f5e..178bc7be526 100644 --- a/compiler/tflchef/tflite/src/Op/OneHot.cpp +++ b/compiler/tflchef/tflite/src/Op/OneHot.cpp @@ -67,14 +67,15 @@ void TFliteOpOneHot::filler(const tflite::Operator *op, TFliteImport *import, } } -tflchef::Operation *TFliteOpOneHot::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpOneHot::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_OneHotOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("OneHot"); auto op_options = operation->mutable_onehot_options(); diff --git a/compiler/tflchef/tflite/src/Op/PRelu.cpp b/compiler/tflchef/tflite/src/Op/PRelu.cpp index 1a1a84bce7c..77b948d6617 100644 --- a/compiler/tflchef/tflite/src/Op/PRelu.cpp +++ b/compiler/tflchef/tflite/src/Op/PRelu.cpp @@ -31,10 +31,11 @@ void TFliteOpPRelu::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs.at(1)); // alpha } -tflchef::Operation *TFliteOpPRelu::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpPRelu::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("PRelu"); // PReluOptions are empty diff --git a/compiler/tflchef/tflite/src/Op/Pack.cpp b/compiler/tflchef/tflite/src/Op/Pack.cpp index ddf8c7d5d6e..c550621484f 100644 --- a/compiler/tflchef/tflite/src/Op/Pack.cpp +++ b/compiler/tflchef/tflite/src/Op/Pack.cpp @@ -27,14 +27,15 @@ void TFliteOpPack::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpPack::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpPack::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_PackOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Pack"); auto op_options = operation->mutable_pack_options(); diff --git a/compiler/tflchef/tflite/src/Op/Pad.cpp b/compiler/tflchef/tflite/src/Op/Pad.cpp index 2978e4422ef..45d8352b45e 100644 --- a/compiler/tflchef/tflite/src/Op/Pad.cpp +++ b/compiler/tflchef/tflite/src/Op/Pad.cpp @@ -34,10 +34,11 @@ void TFliteOpPad::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpPad::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpPad::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Pad"); diff --git a/compiler/tflchef/tflite/src/Op/PadV2.cpp b/compiler/tflchef/tflite/src/Op/PadV2.cpp index a6b657f592b..08d7a9add6c 100644 --- a/compiler/tflchef/tflite/src/Op/PadV2.cpp +++ b/compiler/tflchef/tflite/src/Op/PadV2.cpp @@ -32,10 +32,11 @@ void TFliteOpPadV2::filler(const tflite::Operator *op, TFliteImport *import, fill_tensor_to_import(inputs[2], import); } -tflchef::Operation *TFliteOpPadV2::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpPadV2::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("PadV2"); diff --git a/compiler/tflchef/tflite/src/Op/Pow.cpp b/compiler/tflchef/tflite/src/Op/Pow.cpp index fe8e8ac0fe7..32f71c8cea6 100644 --- a/compiler/tflchef/tflite/src/Op/Pow.cpp +++ b/compiler/tflchef/tflite/src/Op/Pow.cpp @@ -26,10 +26,11 @@ void TFliteOpPow::filler(const tflite::Operator *op, TFliteImport *import, { } -tflchef::Operation *TFliteOpPow::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpPow::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Pow"); // PowOptions are empty diff --git a/compiler/tflchef/tflite/src/Op/Quantize.cpp b/compiler/tflchef/tflite/src/Op/Quantize.cpp index 0808b9c3fab..c87c2327dd5 100644 --- a/compiler/tflchef/tflite/src/Op/Quantize.cpp +++ b/compiler/tflchef/tflite/src/Op/Quantize.cpp @@ -27,10 +27,11 @@ void TFliteOpQuantize::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpQuantize::build(const tflite::Operator *, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpQuantize::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Quantize"); diff --git a/compiler/tflchef/tflite/src/Op/Range.cpp b/compiler/tflchef/tflite/src/Op/Range.cpp index 2958b9c4177..a225e799ea5 100644 --- a/compiler/tflchef/tflite/src/Op/Range.cpp +++ b/compiler/tflchef/tflite/src/Op/Range.cpp @@ -48,10 +48,11 @@ void TFliteOpRange::filler(const tflite::Operator *op, TFliteImport *import, } } -tflchef::Operation *TFliteOpRange::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpRange::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Range"); diff --git a/compiler/tflchef/tflite/src/Op/Rank.cpp b/compiler/tflchef/tflite/src/Op/Rank.cpp index 184c8e4822a..d88ac619d74 100644 --- a/compiler/tflchef/tflite/src/Op/Rank.cpp +++ b/compiler/tflchef/tflite/src/Op/Rank.cpp @@ -25,10 +25,11 @@ void TFliteOpRank::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpRank::build(const tflite::Operator *, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpRank::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Rank"); diff --git a/compiler/tflchef/tflite/src/Op/ReLU.cpp b/compiler/tflchef/tflite/src/Op/ReLU.cpp index e4474b6fa5c..ed8545d2abd 100644 --- a/compiler/tflchef/tflite/src/Op/ReLU.cpp +++ b/compiler/tflchef/tflite/src/Op/ReLU.cpp @@ -27,10 +27,11 @@ void TFliteOpReLU::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpReLU::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpReLU::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ReLU"); diff --git a/compiler/tflchef/tflite/src/Op/ReLU6.cpp b/compiler/tflchef/tflite/src/Op/ReLU6.cpp index 14371884b24..0b7dd387318 100644 --- a/compiler/tflchef/tflite/src/Op/ReLU6.cpp +++ b/compiler/tflchef/tflite/src/Op/ReLU6.cpp @@ -27,10 +27,11 @@ void TFliteOpReLU6::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpReLU6::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpReLU6::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ReLU6"); diff --git a/compiler/tflchef/tflite/src/Op/ReLUN1To1.cpp b/compiler/tflchef/tflite/src/Op/ReLUN1To1.cpp index 4cc8dbd2b3a..72e3a09967d 100644 --- a/compiler/tflchef/tflite/src/Op/ReLUN1To1.cpp +++ b/compiler/tflchef/tflite/src/Op/ReLUN1To1.cpp @@ -27,10 +27,11 @@ void TFliteOpReLUN1To1::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpReLUN1To1::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpReLUN1To1::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ReLUN1To1"); diff --git a/compiler/tflchef/tflite/src/Op/ReduceAny.cpp b/compiler/tflchef/tflite/src/Op/ReduceAny.cpp index e0cc503c4cb..b682ffb2b01 100644 --- a/compiler/tflchef/tflite/src/Op/ReduceAny.cpp +++ b/compiler/tflchef/tflite/src/Op/ReduceAny.cpp @@ -34,10 +34,10 @@ void TFliteOpReduceAny::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpReduceAny::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpReduceAny::build(RecipeChefContext *ctx) const { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ReduceAny"); auto op_params = op->builtin_options_as_ReducerOptions(); diff --git a/compiler/tflchef/tflite/src/Op/ReduceMax.cpp b/compiler/tflchef/tflite/src/Op/ReduceMax.cpp index 499f5856694..97e4e9a46b2 100644 --- a/compiler/tflchef/tflite/src/Op/ReduceMax.cpp +++ b/compiler/tflchef/tflite/src/Op/ReduceMax.cpp @@ -34,14 +34,15 @@ void TFliteOpReduceMax::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpReduceMax::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpReduceMax::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_ReducerOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("ReduceMax"); auto op_options = operation->mutable_reduce_max_options(); diff --git a/compiler/tflchef/tflite/src/Op/ReduceMin.cpp b/compiler/tflchef/tflite/src/Op/ReduceMin.cpp index 09e2e134cad..db9eb5303b5 100644 --- a/compiler/tflchef/tflite/src/Op/ReduceMin.cpp +++ b/compiler/tflchef/tflite/src/Op/ReduceMin.cpp @@ -34,14 +34,15 @@ void TFliteOpReduceMin::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpReduceMin::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpReduceMin::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_ReducerOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("ReduceMin"); auto op_options = operation->mutable_reduce_min_options(); diff --git a/compiler/tflchef/tflite/src/Op/ReduceProd.cpp b/compiler/tflchef/tflite/src/Op/ReduceProd.cpp index e2d98970d56..ff70b2f5597 100644 --- a/compiler/tflchef/tflite/src/Op/ReduceProd.cpp +++ b/compiler/tflchef/tflite/src/Op/ReduceProd.cpp @@ -34,10 +34,11 @@ void TFliteOpReduceProd::filler(const tflite::Operator *op, TFliteImport *import import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpReduceProd::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpReduceProd::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ReduceProd"); auto op_params = op->builtin_options_as_ReducerOptions(); diff --git a/compiler/tflchef/tflite/src/Op/Reshape.cpp b/compiler/tflchef/tflite/src/Op/Reshape.cpp index 0094d5df573..2fc479820f1 100644 --- a/compiler/tflchef/tflite/src/Op/Reshape.cpp +++ b/compiler/tflchef/tflite/src/Op/Reshape.cpp @@ -34,10 +34,11 @@ void TFliteOpReshape::filler(const tflite::Operator *op, TFliteImport *import, } } -tflchef::Operation *TFliteOpReshape::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpReshape::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Reshape"); diff --git a/compiler/tflchef/tflite/src/Op/ResizeBilinear.cpp b/compiler/tflchef/tflite/src/Op/ResizeBilinear.cpp index 0f6db1fcb0d..77b7d10f27c 100644 --- a/compiler/tflchef/tflite/src/Op/ResizeBilinear.cpp +++ b/compiler/tflchef/tflite/src/Op/ResizeBilinear.cpp @@ -38,14 +38,15 @@ void TFliteOpResizeBilinear::filler(const tflite::Operator *op, TFliteImport *im } } -tflchef::Operation *TFliteOpResizeBilinear::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpResizeBilinear::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_ResizeBilinearOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("ResizeBilinear"); auto op_options = operation->mutable_resize_bilinear_options(); diff --git a/compiler/tflchef/tflite/src/Op/ResizeNearestNeighbor.cpp b/compiler/tflchef/tflite/src/Op/ResizeNearestNeighbor.cpp index f3dd8fed03e..316a2155cc9 100644 --- a/compiler/tflchef/tflite/src/Op/ResizeNearestNeighbor.cpp +++ b/compiler/tflchef/tflite/src/Op/ResizeNearestNeighbor.cpp @@ -38,15 +38,14 @@ void TFliteOpResizeNearestNeighbor::filler(const tflite::Operator *op, TFliteImp } } -tflchef::Operation *TFliteOpResizeNearestNeighbor::build(const tflite::Operator *op, - TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpResizeNearestNeighbor::build(RecipeChefContext *ctx) const { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_ResizeNearestNeighborOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("ResizeNearestNeighbor"); auto op_options = operation->mutable_resize_nearest_neighbor_options(); diff --git a/compiler/tflchef/tflite/src/Op/ReverseSequence.cpp b/compiler/tflchef/tflite/src/Op/ReverseSequence.cpp index 6ef6c232665..d0ec48763ba 100644 --- a/compiler/tflchef/tflite/src/Op/ReverseSequence.cpp +++ b/compiler/tflchef/tflite/src/Op/ReverseSequence.cpp @@ -31,10 +31,11 @@ void TFliteOpReverseSequence::filler(const tflite::Operator *op, TFliteImport *i fill_tensor_to_import(inputs[1], import); } -tflchef::Operation *TFliteOpReverseSequence::build(const tflite::Operator *op, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpReverseSequence::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ReverseSequence"); diff --git a/compiler/tflchef/tflite/src/Op/ReverseV2.cpp b/compiler/tflchef/tflite/src/Op/ReverseV2.cpp index c59d97574a4..80ed409bdf6 100644 --- a/compiler/tflchef/tflite/src/Op/ReverseV2.cpp +++ b/compiler/tflchef/tflite/src/Op/ReverseV2.cpp @@ -31,10 +31,11 @@ void TFliteOpReverseV2::filler(const tflite::Operator *op, TFliteImport *import, fill_tensor_to_import(inputs[1], import); } -tflchef::Operation *TFliteOpReverseV2::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpReverseV2::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ReverseV2"); diff --git a/compiler/tflchef/tflite/src/Op/Round.cpp b/compiler/tflchef/tflite/src/Op/Round.cpp index c3f6bf6c42e..fde5d59f83b 100644 --- a/compiler/tflchef/tflite/src/Op/Round.cpp +++ b/compiler/tflchef/tflite/src/Op/Round.cpp @@ -24,10 +24,11 @@ void TFliteOpRound::filler(const tflite::Operator *, TFliteImport *, tflchef::Mo // Nothing to do with filler } -tflchef::Operation *TFliteOpRound::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpRound::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Round"); diff --git a/compiler/tflchef/tflite/src/Op/Rsqrt.cpp b/compiler/tflchef/tflite/src/Op/Rsqrt.cpp index 1639214e4a8..2e5fbc3ff30 100644 --- a/compiler/tflchef/tflite/src/Op/Rsqrt.cpp +++ b/compiler/tflchef/tflite/src/Op/Rsqrt.cpp @@ -26,10 +26,11 @@ void TFliteOpRsqrt::filler(const tflite::Operator *, TFliteImport *, tflchef::Mo // Nothing to do with filler } -tflchef::Operation *TFliteOpRsqrt::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpRsqrt::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Rsqrt"); diff --git a/compiler/tflchef/tflite/src/Op/SVDF.cpp b/compiler/tflchef/tflite/src/Op/SVDF.cpp index 015f968a890..f0ddc048bd5 100644 --- a/compiler/tflchef/tflite/src/Op/SVDF.cpp +++ b/compiler/tflchef/tflite/src/Op/SVDF.cpp @@ -37,14 +37,15 @@ void TFliteOpSVDF::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs.at(3)); } -tflchef::Operation *TFliteOpSVDF::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSVDF::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + const auto op_params = op->builtin_options_as_SVDFOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("SVDF"); auto op_options = operation->mutable_svdf_options(); diff --git a/compiler/tflchef/tflite/src/Op/ScatterNd.cpp b/compiler/tflchef/tflite/src/Op/ScatterNd.cpp index ec09a69a41e..23e4bc41f1b 100644 --- a/compiler/tflchef/tflite/src/Op/ScatterNd.cpp +++ b/compiler/tflchef/tflite/src/Op/ScatterNd.cpp @@ -32,10 +32,11 @@ void TFliteOpScatterNd::filler(const tflite::Operator *op, TFliteImport *import, fill_tensor_to_import(inputs[2], import); } -tflchef::Operation *TFliteOpScatterNd::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpScatterNd::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ScatterNd"); diff --git a/compiler/tflchef/tflite/src/Op/SegmentSum.cpp b/compiler/tflchef/tflite/src/Op/SegmentSum.cpp index bc45a94e08d..fa727bdd42d 100644 --- a/compiler/tflchef/tflite/src/Op/SegmentSum.cpp +++ b/compiler/tflchef/tflite/src/Op/SegmentSum.cpp @@ -31,10 +31,11 @@ void TFliteOpSegmentSum::filler(const tflite::Operator *op, TFliteImport *import fill_tensor_to_import(inputs[1], import); } -tflchef::Operation *TFliteOpSegmentSum::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSegmentSum::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("SegmentSum"); diff --git a/compiler/tflchef/tflite/src/Op/Select.cpp b/compiler/tflchef/tflite/src/Op/Select.cpp index 741ffb8f69a..b6981509a5e 100644 --- a/compiler/tflchef/tflite/src/Op/Select.cpp +++ b/compiler/tflchef/tflite/src/Op/Select.cpp @@ -27,10 +27,11 @@ void TFliteOpSelect::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpSelect::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSelect::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Select"); diff --git a/compiler/tflchef/tflite/src/Op/SelectV2.cpp b/compiler/tflchef/tflite/src/Op/SelectV2.cpp index 0ddabb4beb8..8198813c747 100644 --- a/compiler/tflchef/tflite/src/Op/SelectV2.cpp +++ b/compiler/tflchef/tflite/src/Op/SelectV2.cpp @@ -27,10 +27,11 @@ void TFliteOpSelectV2::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpSelectV2::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSelectV2::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("SelectV2"); diff --git a/compiler/tflchef/tflite/src/Op/Shape.cpp b/compiler/tflchef/tflite/src/Op/Shape.cpp index d6e490d631c..88fb9e423e6 100644 --- a/compiler/tflchef/tflite/src/Op/Shape.cpp +++ b/compiler/tflchef/tflite/src/Op/Shape.cpp @@ -27,10 +27,11 @@ void TFliteOpShape::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpShape::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpShape::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Shape"); auto op_params = op->builtin_options_as_ShapeOptions(); diff --git a/compiler/tflchef/tflite/src/Op/Sin.cpp b/compiler/tflchef/tflite/src/Op/Sin.cpp index 8c063f42491..ebf2efbfb3f 100644 --- a/compiler/tflchef/tflite/src/Op/Sin.cpp +++ b/compiler/tflchef/tflite/src/Op/Sin.cpp @@ -27,10 +27,11 @@ void TFliteOpSin::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpSin::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSin::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Sin"); diff --git a/compiler/tflchef/tflite/src/Op/Slice.cpp b/compiler/tflchef/tflite/src/Op/Slice.cpp index f0c44da2dba..72b450de7f3 100644 --- a/compiler/tflchef/tflite/src/Op/Slice.cpp +++ b/compiler/tflchef/tflite/src/Op/Slice.cpp @@ -37,10 +37,11 @@ void TFliteOpSlice::filler(const tflite::Operator *op, TFliteImport *import, } } -tflchef::Operation *TFliteOpSlice::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSlice::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Slice"); diff --git a/compiler/tflchef/tflite/src/Op/Softmax.cpp b/compiler/tflchef/tflite/src/Op/Softmax.cpp index 5b5c94f7ed0..f3d06e0d4fd 100644 --- a/compiler/tflchef/tflite/src/Op/Softmax.cpp +++ b/compiler/tflchef/tflite/src/Op/Softmax.cpp @@ -27,14 +27,15 @@ void TFliteOpSoftmax::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpSoftmax::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSoftmax::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_SoftmaxOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Softmax"); auto op_options = operation->mutable_softmax_options(); diff --git a/compiler/tflchef/tflite/src/Op/SpaceToBatchND.cpp b/compiler/tflchef/tflite/src/Op/SpaceToBatchND.cpp index 9de0775a9d1..16ceebc7e3b 100644 --- a/compiler/tflchef/tflite/src/Op/SpaceToBatchND.cpp +++ b/compiler/tflchef/tflite/src/Op/SpaceToBatchND.cpp @@ -40,10 +40,11 @@ void TFliteOpSpaceToBatchND::filler(const tflite::Operator *op, TFliteImport *im import->set_tensor_filler(inputs[2], vec); } -tflchef::Operation *TFliteOpSpaceToBatchND::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSpaceToBatchND::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("SpaceToBatchND"); diff --git a/compiler/tflchef/tflite/src/Op/SpaceToDepth.cpp b/compiler/tflchef/tflite/src/Op/SpaceToDepth.cpp index e5718b515ee..15f1c08a78c 100644 --- a/compiler/tflchef/tflite/src/Op/SpaceToDepth.cpp +++ b/compiler/tflchef/tflite/src/Op/SpaceToDepth.cpp @@ -27,10 +27,11 @@ void TFliteOpSpaceToDepth::filler(const tflite::Operator *op, TFliteImport *impo // Nothing to do with filler } -tflchef::Operation *TFliteOpSpaceToDepth::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSpaceToDepth::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("SpaceToDepth"); diff --git a/compiler/tflchef/tflite/src/Op/SparseToDense.cpp b/compiler/tflchef/tflite/src/Op/SparseToDense.cpp index 9e4f0a06715..a1290f6f7f0 100644 --- a/compiler/tflchef/tflite/src/Op/SparseToDense.cpp +++ b/compiler/tflchef/tflite/src/Op/SparseToDense.cpp @@ -34,14 +34,14 @@ void TFliteOpSparseToDense::filler(const tflite::Operator *op, TFliteImport *imp import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpSparseToDense::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSparseToDense::build(RecipeChefContext *ctx) const { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_SparseToDenseOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("SparseToDense"); auto op_options = operation->mutable_sparse_to_dense_options(); diff --git a/compiler/tflchef/tflite/src/Op/Split.cpp b/compiler/tflchef/tflite/src/Op/Split.cpp index 49f9aa2c6d4..492f42c8e33 100644 --- a/compiler/tflchef/tflite/src/Op/Split.cpp +++ b/compiler/tflchef/tflite/src/Op/Split.cpp @@ -35,10 +35,10 @@ void TFliteOpSplit::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[0], vec); } -tflchef::Operation *TFliteOpSplit::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSplit::build(RecipeChefContext *ctx) const { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Split"); diff --git a/compiler/tflchef/tflite/src/Op/SplitV.cpp b/compiler/tflchef/tflite/src/Op/SplitV.cpp index 18035e6f488..eae3b87294e 100644 --- a/compiler/tflchef/tflite/src/Op/SplitV.cpp +++ b/compiler/tflchef/tflite/src/Op/SplitV.cpp @@ -37,10 +37,11 @@ void TFliteOpSplitV::filler(const tflite::Operator *op, TFliteImport *import, } } -tflchef::Operation *TFliteOpSplitV::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSplitV::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("SplitV"); diff --git a/compiler/tflchef/tflite/src/Op/Sqrt.cpp b/compiler/tflchef/tflite/src/Op/Sqrt.cpp index dd6bfcab070..8f3df90d71e 100644 --- a/compiler/tflchef/tflite/src/Op/Sqrt.cpp +++ b/compiler/tflchef/tflite/src/Op/Sqrt.cpp @@ -40,10 +40,11 @@ void TFliteOpSqrt::filler(const tflite::Operator *op, TFliteImport *import, } } -tflchef::Operation *TFliteOpSqrt::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSqrt::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Sqrt"); diff --git a/compiler/tflchef/tflite/src/Op/Square.cpp b/compiler/tflchef/tflite/src/Op/Square.cpp index d3803284afc..953872c29ae 100644 --- a/compiler/tflchef/tflite/src/Op/Square.cpp +++ b/compiler/tflchef/tflite/src/Op/Square.cpp @@ -27,10 +27,10 @@ void TFliteOpSquare::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpSquare::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSquare::build(RecipeChefContext *ctx) const { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Square"); diff --git a/compiler/tflchef/tflite/src/Op/SquaredDifference.cpp b/compiler/tflchef/tflite/src/Op/SquaredDifference.cpp index 1ee536e7669..dd4f144a310 100644 --- a/compiler/tflchef/tflite/src/Op/SquaredDifference.cpp +++ b/compiler/tflchef/tflite/src/Op/SquaredDifference.cpp @@ -27,11 +27,11 @@ void TFliteOpSquaredDifference::filler(const tflite::Operator *op, TFliteImport // Nothing to do with filler } -tflchef::Operation *TFliteOpSquaredDifference::build(const tflite::Operator *op, - TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSquaredDifference::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("SquaredDifference"); diff --git a/compiler/tflchef/tflite/src/Op/Squeeze.cpp b/compiler/tflchef/tflite/src/Op/Squeeze.cpp index 7983fc62a20..bb93a74c496 100644 --- a/compiler/tflchef/tflite/src/Op/Squeeze.cpp +++ b/compiler/tflchef/tflite/src/Op/Squeeze.cpp @@ -27,14 +27,15 @@ void TFliteOpSqueeze::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpSqueeze::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSqueeze::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_SqueezeOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Squeeze"); auto op_options = operation->mutable_squeeze_options(); diff --git a/compiler/tflchef/tflite/src/Op/StridedSlice.cpp b/compiler/tflchef/tflite/src/Op/StridedSlice.cpp index c770236c7c4..b142f434ddd 100644 --- a/compiler/tflchef/tflite/src/Op/StridedSlice.cpp +++ b/compiler/tflchef/tflite/src/Op/StridedSlice.cpp @@ -37,14 +37,14 @@ void TFliteOpStridedSlice::filler(const tflite::Operator *op, TFliteImport *impo } } -tflchef::Operation *TFliteOpStridedSlice::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpStridedSlice::build(RecipeChefContext *ctx) const { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_StridedSliceOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("StridedSlice"); auto op_options = operation->mutable_strided_slice_options(); diff --git a/compiler/tflchef/tflite/src/Op/Sub.cpp b/compiler/tflchef/tflite/src/Op/Sub.cpp index 584be0ab900..2487a40773d 100644 --- a/compiler/tflchef/tflite/src/Op/Sub.cpp +++ b/compiler/tflchef/tflite/src/Op/Sub.cpp @@ -30,14 +30,15 @@ void TFliteOpSub::filler(const tflite::Operator *op, TFliteImport *import, fill_two_inputs(op, import); } -tflchef::Operation *TFliteOpSub::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSub::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_SubOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Sub"); auto op_options = operation->mutable_sub_options(); diff --git a/compiler/tflchef/tflite/src/Op/Sum.cpp b/compiler/tflchef/tflite/src/Op/Sum.cpp index 9f3133e85f6..8fca4d38838 100644 --- a/compiler/tflchef/tflite/src/Op/Sum.cpp +++ b/compiler/tflchef/tflite/src/Op/Sum.cpp @@ -34,14 +34,15 @@ void TFliteOpSum::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpSum::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpSum::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_ReducerOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Sum"); auto op_options = operation->mutable_sum_options(); diff --git a/compiler/tflchef/tflite/src/Op/Tanh.cpp b/compiler/tflchef/tflite/src/Op/Tanh.cpp index cab8ca46097..643bf1322fb 100644 --- a/compiler/tflchef/tflite/src/Op/Tanh.cpp +++ b/compiler/tflchef/tflite/src/Op/Tanh.cpp @@ -26,10 +26,11 @@ void TFliteOpTanh::filler(const tflite::Operator *, TFliteImport *, tflchef::Mod // Nothing to do with filler } -tflchef::Operation *TFliteOpTanh::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpTanh::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Tanh"); diff --git a/compiler/tflchef/tflite/src/Op/Tile.cpp b/compiler/tflchef/tflite/src/Op/Tile.cpp index 14e65131cb9..d34b21626c3 100644 --- a/compiler/tflchef/tflite/src/Op/Tile.cpp +++ b/compiler/tflchef/tflite/src/Op/Tile.cpp @@ -35,10 +35,11 @@ void TFliteOpTile::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpTile::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpTile::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Tile"); diff --git a/compiler/tflchef/tflite/src/Op/TopKV2.cpp b/compiler/tflchef/tflite/src/Op/TopKV2.cpp index 461456ae230..6586fddbbcc 100644 --- a/compiler/tflchef/tflite/src/Op/TopKV2.cpp +++ b/compiler/tflchef/tflite/src/Op/TopKV2.cpp @@ -35,10 +35,11 @@ void TFliteOpTopKV2::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpTopKV2::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpTopKV2::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("TopKV2"); diff --git a/compiler/tflchef/tflite/src/Op/Transpose.cpp b/compiler/tflchef/tflite/src/Op/Transpose.cpp index a997bb08ee0..3e2fb5f6936 100644 --- a/compiler/tflchef/tflite/src/Op/Transpose.cpp +++ b/compiler/tflchef/tflite/src/Op/Transpose.cpp @@ -33,10 +33,11 @@ void TFliteOpTranspose::filler(const tflite::Operator *op, TFliteImport *import, import->set_tensor_filler(inputs[1], vec); } -tflchef::Operation *TFliteOpTranspose::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpTranspose::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Transpose"); diff --git a/compiler/tflchef/tflite/src/Op/TransposeConv.cpp b/compiler/tflchef/tflite/src/Op/TransposeConv.cpp index 875ccb51ba0..fd96701eae2 100644 --- a/compiler/tflchef/tflite/src/Op/TransposeConv.cpp +++ b/compiler/tflchef/tflite/src/Op/TransposeConv.cpp @@ -41,15 +41,16 @@ void TFliteOpTransposeConv::filler(const tflite::Operator *op, TFliteImport *imp import->set_tensor_filler(inputs[1]); } -tflchef::Operation *TFliteOpTransposeConv::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpTransposeConv::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_TransposeConvOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("TransposeConv"); auto op_options = operation->mutable_transpose_conv_options(); diff --git a/compiler/tflchef/tflite/src/Op/UnidirectionalSequenceLSTM.cpp b/compiler/tflchef/tflite/src/Op/UnidirectionalSequenceLSTM.cpp index b2bc1acbdec..cf1afe9ffc1 100644 --- a/compiler/tflchef/tflite/src/Op/UnidirectionalSequenceLSTM.cpp +++ b/compiler/tflchef/tflite/src/Op/UnidirectionalSequenceLSTM.cpp @@ -41,15 +41,15 @@ void TFliteOpUnidirectionalSequenceLSTM::filler(const tflite::Operator *op, TFli } } -tflchef::Operation * -TFliteOpUnidirectionalSequenceLSTM::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpUnidirectionalSequenceLSTM::build(RecipeChefContext *ctx) const + { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_UnidirectionalSequenceLSTMOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("UnidirectionalSequenceLSTM"); auto op_options = operation->mutable_unidirectional_sequence_lstm_options(); diff --git a/compiler/tflchef/tflite/src/Op/Unique.cpp b/compiler/tflchef/tflite/src/Op/Unique.cpp index e3f77f40e51..3729de4a5d7 100644 --- a/compiler/tflchef/tflite/src/Op/Unique.cpp +++ b/compiler/tflchef/tflite/src/Op/Unique.cpp @@ -27,14 +27,14 @@ void TFliteOpUnique::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpUnique::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpUnique::build(RecipeChefContext *ctx) const { + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + auto op_params = op->builtin_options_as_UniqueOptions(); assert(op_params != nullptr); - auto operation = model_recipe->add_operation(); - operation->set_type("Unique"); auto op_options = operation->mutable_unique_options(); diff --git a/compiler/tflchef/tflite/src/Op/Unpack.cpp b/compiler/tflchef/tflite/src/Op/Unpack.cpp index a51ef84ef3c..2b930797c54 100644 --- a/compiler/tflchef/tflite/src/Op/Unpack.cpp +++ b/compiler/tflchef/tflite/src/Op/Unpack.cpp @@ -25,10 +25,11 @@ void TFliteOpUnpack::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with filler } -tflchef::Operation *TFliteOpUnpack::build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpUnpack::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Unpack"); diff --git a/compiler/tflchef/tflite/src/Op/Where.cpp b/compiler/tflchef/tflite/src/Op/Where.cpp index e42de373755..4a5a93d24bb 100644 --- a/compiler/tflchef/tflite/src/Op/Where.cpp +++ b/compiler/tflchef/tflite/src/Op/Where.cpp @@ -24,10 +24,11 @@ void TFliteOpWhere::filler(const tflite::Operator *, TFliteImport *, tflchef::Mo // Nothing to do with fillers here } -tflchef::Operation *TFliteOpWhere::build(const tflite::Operator *, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpWhere::build(RecipeChefContext *ctx) const + { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("Where"); return operation; diff --git a/compiler/tflchef/tflite/src/Op/While.cpp b/compiler/tflchef/tflite/src/Op/While.cpp new file mode 100644 index 00000000000..96c00eb9924 --- /dev/null +++ b/compiler/tflchef/tflite/src/Op/While.cpp @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2024 Samsung Electronics Co., Ltd. All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "While.h" + +#include "Convert.h" +#include "FillerHelper.h" + +namespace tflchef +{ + +void TFliteOpWhile::filler(const tflite::Operator *op, TFliteImport *import, + tflchef::ModelRecipe *model_recipe) const +{ + const auto &inputs = *op->inputs(); + + for (int input : inputs) + { + fill_tensor_to_import(input, import); + } +} + +tflchef::Operation *TFliteOpWhile::build(RecipeChefContext *ctx) const +{ + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; + + auto op_params = op->builtin_options_as_WhileOptions(); + assert(op_params != nullptr); + + operation->set_type("While"); + + auto op_options = operation->mutable_while_options(); + + op_options->set_body_subgraph_index(op_params->body_subgraph_index()); + op_options->set_cond_subgraph_index(op_params->cond_subgraph_index()); + + return operation; +} + +} // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/ZerosLike.cpp b/compiler/tflchef/tflite/src/Op/ZerosLike.cpp index a56b6bdfbec..b9279009f42 100644 --- a/compiler/tflchef/tflite/src/Op/ZerosLike.cpp +++ b/compiler/tflchef/tflite/src/Op/ZerosLike.cpp @@ -27,10 +27,10 @@ void TFliteOpZerosLike::filler(const tflite::Operator *op, TFliteImport *import, // Nothing to do with fillers here } -tflchef::Operation *TFliteOpZerosLike::build(const tflite::Operator *op, TFliteImport *, - tflchef::ModelRecipe *model_recipe) const +tflchef::Operation *TFliteOpZerosLike::build(RecipeChefContext *ctx) const { - auto operation = model_recipe->add_operation(); + tflchef::Operation *operation = ctx->chefop; + const tflite::Operator *op = ctx->tflop; operation->set_type("ZerosLike"); auto op_options = operation->mutable_zeros_like_options(); diff --git a/compiler/tflchef/tflite/src/Op/include/Abs.h b/compiler/tflchef/tflite/src/Op/include/Abs.h index d99b0d593f6..45333a31a71 100644 --- a/compiler/tflchef/tflite/src/Op/include/Abs.h +++ b/compiler/tflchef/tflite/src/Op/include/Abs.h @@ -30,8 +30,7 @@ class TFliteOpAbs : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Add.h b/compiler/tflchef/tflite/src/Op/include/Add.h index 49d945f8bf3..bcc279d2be1 100644 --- a/compiler/tflchef/tflite/src/Op/include/Add.h +++ b/compiler/tflchef/tflite/src/Op/include/Add.h @@ -30,8 +30,7 @@ class TFliteOpAdd : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/AddN.h b/compiler/tflchef/tflite/src/Op/include/AddN.h index 4387aa06a38..ec88172e76d 100644 --- a/compiler/tflchef/tflite/src/Op/include/AddN.h +++ b/compiler/tflchef/tflite/src/Op/include/AddN.h @@ -30,8 +30,7 @@ class TFliteOpAddN : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ArgMax.h b/compiler/tflchef/tflite/src/Op/include/ArgMax.h index 30068ecf2ec..9e9f3c9acfc 100644 --- a/compiler/tflchef/tflite/src/Op/include/ArgMax.h +++ b/compiler/tflchef/tflite/src/Op/include/ArgMax.h @@ -30,8 +30,7 @@ class TFliteOpArgMax : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ArgMin.h b/compiler/tflchef/tflite/src/Op/include/ArgMin.h index 83c643c1aef..03f1e3e33cf 100644 --- a/compiler/tflchef/tflite/src/Op/include/ArgMin.h +++ b/compiler/tflchef/tflite/src/Op/include/ArgMin.h @@ -30,8 +30,7 @@ class TFliteOpArgMin : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/AveragePool2D.h b/compiler/tflchef/tflite/src/Op/include/AveragePool2D.h index f9e9fb254a1..63f6fc8bda7 100644 --- a/compiler/tflchef/tflite/src/Op/include/AveragePool2D.h +++ b/compiler/tflchef/tflite/src/Op/include/AveragePool2D.h @@ -30,8 +30,7 @@ class TFliteOpAveragePool2D : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/BatchMatMul.h b/compiler/tflchef/tflite/src/Op/include/BatchMatMul.h index 6eb4c6e6865..af12f46221a 100644 --- a/compiler/tflchef/tflite/src/Op/include/BatchMatMul.h +++ b/compiler/tflchef/tflite/src/Op/include/BatchMatMul.h @@ -30,8 +30,7 @@ class TFliteOpBatchMatMul : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/BatchToSpaceND.h b/compiler/tflchef/tflite/src/Op/include/BatchToSpaceND.h index ae2114c97d0..5ec22c71c89 100644 --- a/compiler/tflchef/tflite/src/Op/include/BatchToSpaceND.h +++ b/compiler/tflchef/tflite/src/Op/include/BatchToSpaceND.h @@ -30,8 +30,7 @@ class TFliteOpBatchToSpaceND : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/BidirectionalSequenceLSTM.h b/compiler/tflchef/tflite/src/Op/include/BidirectionalSequenceLSTM.h index 333f542acf4..353045e9d28 100644 --- a/compiler/tflchef/tflite/src/Op/include/BidirectionalSequenceLSTM.h +++ b/compiler/tflchef/tflite/src/Op/include/BidirectionalSequenceLSTM.h @@ -30,8 +30,7 @@ class TFliteOpBidirectionalSequenceLSTM : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/BroadcastTo.h b/compiler/tflchef/tflite/src/Op/include/BroadcastTo.h index 9d92e2af725..952290ef02e 100644 --- a/compiler/tflchef/tflite/src/Op/include/BroadcastTo.h +++ b/compiler/tflchef/tflite/src/Op/include/BroadcastTo.h @@ -30,8 +30,7 @@ class TFliteOpBroadcastTo : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *mode_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Cast.h b/compiler/tflchef/tflite/src/Op/include/Cast.h index 29c126c939f..8a77609d293 100644 --- a/compiler/tflchef/tflite/src/Op/include/Cast.h +++ b/compiler/tflchef/tflite/src/Op/include/Cast.h @@ -30,8 +30,7 @@ class TFliteOpCast : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Ceil.h b/compiler/tflchef/tflite/src/Op/include/Ceil.h index 44df2077841..5cfdfcee413 100644 --- a/compiler/tflchef/tflite/src/Op/include/Ceil.h +++ b/compiler/tflchef/tflite/src/Op/include/Ceil.h @@ -30,8 +30,7 @@ class TFliteOpCeil : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Concatenation.h b/compiler/tflchef/tflite/src/Op/include/Concatenation.h index 4a7ea5791f9..febdbf1c085 100644 --- a/compiler/tflchef/tflite/src/Op/include/Concatenation.h +++ b/compiler/tflchef/tflite/src/Op/include/Concatenation.h @@ -30,8 +30,7 @@ class TFliteOpConcatenation : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Conv2D.h b/compiler/tflchef/tflite/src/Op/include/Conv2D.h index 0216e9ce95f..af2580e7ab6 100644 --- a/compiler/tflchef/tflite/src/Op/include/Conv2D.h +++ b/compiler/tflchef/tflite/src/Op/include/Conv2D.h @@ -30,8 +30,7 @@ class TFliteOpConv2D : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Cos.h b/compiler/tflchef/tflite/src/Op/include/Cos.h index 8f3dbe3a64e..dd84479fb42 100644 --- a/compiler/tflchef/tflite/src/Op/include/Cos.h +++ b/compiler/tflchef/tflite/src/Op/include/Cos.h @@ -30,8 +30,7 @@ class TFliteOpCos : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/CumSum.h b/compiler/tflchef/tflite/src/Op/include/CumSum.h index 67aeaae5d8b..7680aae0d35 100644 --- a/compiler/tflchef/tflite/src/Op/include/CumSum.h +++ b/compiler/tflchef/tflite/src/Op/include/CumSum.h @@ -30,8 +30,7 @@ class TFliteOpCumsum : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/DepthToSpace.h b/compiler/tflchef/tflite/src/Op/include/DepthToSpace.h index b5852ac8951..435fe04dfcd 100644 --- a/compiler/tflchef/tflite/src/Op/include/DepthToSpace.h +++ b/compiler/tflchef/tflite/src/Op/include/DepthToSpace.h @@ -30,8 +30,7 @@ class TFliteOpDepthToSpace : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/DepthwiseConv2D.h b/compiler/tflchef/tflite/src/Op/include/DepthwiseConv2D.h index c172536b43b..abdde291991 100644 --- a/compiler/tflchef/tflite/src/Op/include/DepthwiseConv2D.h +++ b/compiler/tflchef/tflite/src/Op/include/DepthwiseConv2D.h @@ -30,8 +30,7 @@ class TFliteOpDepthwiseConv2D : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Dequantize.h b/compiler/tflchef/tflite/src/Op/include/Dequantize.h index df1c7bbdbbc..a2d00188449 100644 --- a/compiler/tflchef/tflite/src/Op/include/Dequantize.h +++ b/compiler/tflchef/tflite/src/Op/include/Dequantize.h @@ -30,8 +30,7 @@ class TFliteOpDequantize : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Div.h b/compiler/tflchef/tflite/src/Op/include/Div.h index 254a4cd99ba..9ac9904e10a 100644 --- a/compiler/tflchef/tflite/src/Op/include/Div.h +++ b/compiler/tflchef/tflite/src/Op/include/Div.h @@ -30,8 +30,7 @@ class TFliteOpDiv : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ELU.h b/compiler/tflchef/tflite/src/Op/include/ELU.h index 490c9fde425..a3db9dc975e 100644 --- a/compiler/tflchef/tflite/src/Op/include/ELU.h +++ b/compiler/tflchef/tflite/src/Op/include/ELU.h @@ -30,8 +30,7 @@ class TFliteOpELU : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Equal.h b/compiler/tflchef/tflite/src/Op/include/Equal.h index fd4b400015c..909920efe83 100644 --- a/compiler/tflchef/tflite/src/Op/include/Equal.h +++ b/compiler/tflchef/tflite/src/Op/include/Equal.h @@ -30,8 +30,7 @@ class TFliteOpEqual : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Exp.h b/compiler/tflchef/tflite/src/Op/include/Exp.h index 5ff3ddc8bab..b31b9f2443f 100644 --- a/compiler/tflchef/tflite/src/Op/include/Exp.h +++ b/compiler/tflchef/tflite/src/Op/include/Exp.h @@ -30,8 +30,7 @@ class TFliteOpExp : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ExpandDims.h b/compiler/tflchef/tflite/src/Op/include/ExpandDims.h index e2f3e4e50e6..c174fe79697 100644 --- a/compiler/tflchef/tflite/src/Op/include/ExpandDims.h +++ b/compiler/tflchef/tflite/src/Op/include/ExpandDims.h @@ -30,8 +30,7 @@ class TFliteOpExpandDims : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/FakeQuant.h b/compiler/tflchef/tflite/src/Op/include/FakeQuant.h index f36e615df48..289dfb8f72f 100644 --- a/compiler/tflchef/tflite/src/Op/include/FakeQuant.h +++ b/compiler/tflchef/tflite/src/Op/include/FakeQuant.h @@ -30,8 +30,7 @@ class TFliteOpFakeQuant : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Fill.h b/compiler/tflchef/tflite/src/Op/include/Fill.h index 4f46f628aca..9441b37b21d 100644 --- a/compiler/tflchef/tflite/src/Op/include/Fill.h +++ b/compiler/tflchef/tflite/src/Op/include/Fill.h @@ -30,8 +30,7 @@ class TFliteOpFill : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Floor.h b/compiler/tflchef/tflite/src/Op/include/Floor.h index f0f8ef38a5e..4f0869bb3fe 100644 --- a/compiler/tflchef/tflite/src/Op/include/Floor.h +++ b/compiler/tflchef/tflite/src/Op/include/Floor.h @@ -30,8 +30,7 @@ class TFliteOpFloor : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/FloorDiv.h b/compiler/tflchef/tflite/src/Op/include/FloorDiv.h index 5d049a668f2..62ed8f12d05 100644 --- a/compiler/tflchef/tflite/src/Op/include/FloorDiv.h +++ b/compiler/tflchef/tflite/src/Op/include/FloorDiv.h @@ -30,8 +30,7 @@ class TFliteOpFloorDiv : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/FloorMod.h b/compiler/tflchef/tflite/src/Op/include/FloorMod.h index f36dfe813fe..b4f4272b0d6 100644 --- a/compiler/tflchef/tflite/src/Op/include/FloorMod.h +++ b/compiler/tflchef/tflite/src/Op/include/FloorMod.h @@ -30,8 +30,7 @@ class TFliteOpFloorMod : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/FullyConnected.h b/compiler/tflchef/tflite/src/Op/include/FullyConnected.h index 8fbe1f3ed97..c0de426293d 100644 --- a/compiler/tflchef/tflite/src/Op/include/FullyConnected.h +++ b/compiler/tflchef/tflite/src/Op/include/FullyConnected.h @@ -30,8 +30,7 @@ class TFliteOpFullyConnected : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Gather.h b/compiler/tflchef/tflite/src/Op/include/Gather.h index e01276b765c..68111b84b91 100644 --- a/compiler/tflchef/tflite/src/Op/include/Gather.h +++ b/compiler/tflchef/tflite/src/Op/include/Gather.h @@ -30,8 +30,7 @@ class TFliteOpGather : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/GatherNd.h b/compiler/tflchef/tflite/src/Op/include/GatherNd.h index 112f23d33e9..e8d41506b53 100644 --- a/compiler/tflchef/tflite/src/Op/include/GatherNd.h +++ b/compiler/tflchef/tflite/src/Op/include/GatherNd.h @@ -30,8 +30,7 @@ class TFliteOpGatherNd : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Gelu.h b/compiler/tflchef/tflite/src/Op/include/Gelu.h index 0c51a51bedb..05a45f1a1b9 100644 --- a/compiler/tflchef/tflite/src/Op/include/Gelu.h +++ b/compiler/tflchef/tflite/src/Op/include/Gelu.h @@ -30,8 +30,7 @@ class TFliteOpGelu : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Greater.h b/compiler/tflchef/tflite/src/Op/include/Greater.h index 3ab2d1a4e26..3a08c201169 100644 --- a/compiler/tflchef/tflite/src/Op/include/Greater.h +++ b/compiler/tflchef/tflite/src/Op/include/Greater.h @@ -30,8 +30,7 @@ class TFliteOpGreater : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/GreaterEqual.h b/compiler/tflchef/tflite/src/Op/include/GreaterEqual.h index 96b0af78ac8..4e71d66bfa7 100644 --- a/compiler/tflchef/tflite/src/Op/include/GreaterEqual.h +++ b/compiler/tflchef/tflite/src/Op/include/GreaterEqual.h @@ -30,8 +30,7 @@ class TFliteOpGreaterEqual : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/HardSwish.h b/compiler/tflchef/tflite/src/Op/include/HardSwish.h index d9b5a5382ca..d9b04116b8f 100644 --- a/compiler/tflchef/tflite/src/Op/include/HardSwish.h +++ b/compiler/tflchef/tflite/src/Op/include/HardSwish.h @@ -30,8 +30,7 @@ class TFliteOpHardSwish : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/L2Normalize.h b/compiler/tflchef/tflite/src/Op/include/L2Normalize.h index a73eae6c8d6..405c670aaa7 100644 --- a/compiler/tflchef/tflite/src/Op/include/L2Normalize.h +++ b/compiler/tflchef/tflite/src/Op/include/L2Normalize.h @@ -30,8 +30,7 @@ class TFliteOpL2Normalize : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/L2Pool2D.h b/compiler/tflchef/tflite/src/Op/include/L2Pool2D.h index 0463534405a..b1b3a24d58f 100644 --- a/compiler/tflchef/tflite/src/Op/include/L2Pool2D.h +++ b/compiler/tflchef/tflite/src/Op/include/L2Pool2D.h @@ -30,8 +30,7 @@ class TFliteOpL2Pool2D : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/LeakyRelu.h b/compiler/tflchef/tflite/src/Op/include/LeakyRelu.h index 28e63e0ca68..3d90672ec5a 100644 --- a/compiler/tflchef/tflite/src/Op/include/LeakyRelu.h +++ b/compiler/tflchef/tflite/src/Op/include/LeakyRelu.h @@ -30,8 +30,7 @@ class TFliteOpLeakyRelu : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Less.h b/compiler/tflchef/tflite/src/Op/include/Less.h index 1316cb6133a..14d0303931f 100644 --- a/compiler/tflchef/tflite/src/Op/include/Less.h +++ b/compiler/tflchef/tflite/src/Op/include/Less.h @@ -30,8 +30,7 @@ class TFliteOpLess : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/LessEqual.h b/compiler/tflchef/tflite/src/Op/include/LessEqual.h index 81c710fbc14..cea744de0a5 100644 --- a/compiler/tflchef/tflite/src/Op/include/LessEqual.h +++ b/compiler/tflchef/tflite/src/Op/include/LessEqual.h @@ -30,8 +30,7 @@ class TFliteOpLessEqual : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/LocalResponseNormalization.h b/compiler/tflchef/tflite/src/Op/include/LocalResponseNormalization.h index c0eb3f2b1a7..a1b8d188845 100644 --- a/compiler/tflchef/tflite/src/Op/include/LocalResponseNormalization.h +++ b/compiler/tflchef/tflite/src/Op/include/LocalResponseNormalization.h @@ -30,8 +30,7 @@ class TFliteOpLocalResponseNormalization : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Log.h b/compiler/tflchef/tflite/src/Op/include/Log.h index 9d17e2f8152..4d08695fe39 100644 --- a/compiler/tflchef/tflite/src/Op/include/Log.h +++ b/compiler/tflchef/tflite/src/Op/include/Log.h @@ -30,8 +30,7 @@ class TFliteOpLog : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/LogSoftmax.h b/compiler/tflchef/tflite/src/Op/include/LogSoftmax.h index efd81f3e94b..aa5b9dd1a8c 100644 --- a/compiler/tflchef/tflite/src/Op/include/LogSoftmax.h +++ b/compiler/tflchef/tflite/src/Op/include/LogSoftmax.h @@ -30,8 +30,7 @@ class TFliteOpLogSoftmax : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/LogicalAnd.h b/compiler/tflchef/tflite/src/Op/include/LogicalAnd.h index 1f7a964b96c..6db5c1f92b7 100644 --- a/compiler/tflchef/tflite/src/Op/include/LogicalAnd.h +++ b/compiler/tflchef/tflite/src/Op/include/LogicalAnd.h @@ -30,8 +30,7 @@ class TFliteOpLogicalAnd : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/LogicalNot.h b/compiler/tflchef/tflite/src/Op/include/LogicalNot.h index b75d3355499..0f0552a78e6 100644 --- a/compiler/tflchef/tflite/src/Op/include/LogicalNot.h +++ b/compiler/tflchef/tflite/src/Op/include/LogicalNot.h @@ -30,8 +30,7 @@ class TFliteOpLogicalNot : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/LogicalOr.h b/compiler/tflchef/tflite/src/Op/include/LogicalOr.h index 5331a0d655c..02efd6e2b20 100644 --- a/compiler/tflchef/tflite/src/Op/include/LogicalOr.h +++ b/compiler/tflchef/tflite/src/Op/include/LogicalOr.h @@ -30,8 +30,7 @@ class TFliteOpLogicalOr : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Logistic.h b/compiler/tflchef/tflite/src/Op/include/Logistic.h index a75bf490e0d..839f49890c9 100644 --- a/compiler/tflchef/tflite/src/Op/include/Logistic.h +++ b/compiler/tflchef/tflite/src/Op/include/Logistic.h @@ -30,8 +30,7 @@ class TFliteOpLogistic : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/MatrixDiag.h b/compiler/tflchef/tflite/src/Op/include/MatrixDiag.h index 4074f2c36f5..f9d8452cb05 100644 --- a/compiler/tflchef/tflite/src/Op/include/MatrixDiag.h +++ b/compiler/tflchef/tflite/src/Op/include/MatrixDiag.h @@ -30,8 +30,7 @@ class TFliteOpMatrixDiag : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/MatrixSetDiag.h b/compiler/tflchef/tflite/src/Op/include/MatrixSetDiag.h index 0e7ec7f324c..8339177204a 100644 --- a/compiler/tflchef/tflite/src/Op/include/MatrixSetDiag.h +++ b/compiler/tflchef/tflite/src/Op/include/MatrixSetDiag.h @@ -30,8 +30,7 @@ class TFliteOpMatrixSetDiag : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/MaxPool2D.h b/compiler/tflchef/tflite/src/Op/include/MaxPool2D.h index 36533f80cab..951331e91ba 100644 --- a/compiler/tflchef/tflite/src/Op/include/MaxPool2D.h +++ b/compiler/tflchef/tflite/src/Op/include/MaxPool2D.h @@ -30,8 +30,7 @@ class TFliteOpMaxPool2D : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Maximum.h b/compiler/tflchef/tflite/src/Op/include/Maximum.h index acafec34317..73ba060a4fa 100644 --- a/compiler/tflchef/tflite/src/Op/include/Maximum.h +++ b/compiler/tflchef/tflite/src/Op/include/Maximum.h @@ -30,8 +30,7 @@ class TFliteOpMaximum : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Mean.h b/compiler/tflchef/tflite/src/Op/include/Mean.h index 532c40c6622..7e7d8201037 100644 --- a/compiler/tflchef/tflite/src/Op/include/Mean.h +++ b/compiler/tflchef/tflite/src/Op/include/Mean.h @@ -30,8 +30,7 @@ class TFliteOpMean : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Minimum.h b/compiler/tflchef/tflite/src/Op/include/Minimum.h index 5db5b794087..f0f12192fe8 100644 --- a/compiler/tflchef/tflite/src/Op/include/Minimum.h +++ b/compiler/tflchef/tflite/src/Op/include/Minimum.h @@ -30,8 +30,7 @@ class TFliteOpMinimum : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/MirrorPad.h b/compiler/tflchef/tflite/src/Op/include/MirrorPad.h index c9acdd49889..43a615b8b44 100644 --- a/compiler/tflchef/tflite/src/Op/include/MirrorPad.h +++ b/compiler/tflchef/tflite/src/Op/include/MirrorPad.h @@ -30,8 +30,7 @@ class TFliteOpMirrorPad : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Mul.h b/compiler/tflchef/tflite/src/Op/include/Mul.h index fd009d2fd91..ecdf5dab70e 100644 --- a/compiler/tflchef/tflite/src/Op/include/Mul.h +++ b/compiler/tflchef/tflite/src/Op/include/Mul.h @@ -30,8 +30,7 @@ class TFliteOpMul : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Neg.h b/compiler/tflchef/tflite/src/Op/include/Neg.h index c77ab7e842a..96eaa76725c 100644 --- a/compiler/tflchef/tflite/src/Op/include/Neg.h +++ b/compiler/tflchef/tflite/src/Op/include/Neg.h @@ -30,8 +30,7 @@ class TFliteOpNeg : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/NonMaxSuppressionV4.h b/compiler/tflchef/tflite/src/Op/include/NonMaxSuppressionV4.h index 114a2ad2f5f..0aef56d6357 100644 --- a/compiler/tflchef/tflite/src/Op/include/NonMaxSuppressionV4.h +++ b/compiler/tflchef/tflite/src/Op/include/NonMaxSuppressionV4.h @@ -30,8 +30,7 @@ class TFliteOpNonMaxSuppressionV4 : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/NonMaxSuppressionV5.h b/compiler/tflchef/tflite/src/Op/include/NonMaxSuppressionV5.h index c948043f453..228f8dde2dd 100644 --- a/compiler/tflchef/tflite/src/Op/include/NonMaxSuppressionV5.h +++ b/compiler/tflchef/tflite/src/Op/include/NonMaxSuppressionV5.h @@ -30,8 +30,7 @@ class TFliteOpNonMaxSuppressionV5 : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/NotEqual.h b/compiler/tflchef/tflite/src/Op/include/NotEqual.h index b1febdcc5e1..73261118f6a 100644 --- a/compiler/tflchef/tflite/src/Op/include/NotEqual.h +++ b/compiler/tflchef/tflite/src/Op/include/NotEqual.h @@ -30,8 +30,7 @@ class TFliteOpNotEqual : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/OneHot.h b/compiler/tflchef/tflite/src/Op/include/OneHot.h index 50bbed09506..d060c40fa9f 100644 --- a/compiler/tflchef/tflite/src/Op/include/OneHot.h +++ b/compiler/tflchef/tflite/src/Op/include/OneHot.h @@ -30,8 +30,7 @@ class TFliteOpOneHot : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/PRelu.h b/compiler/tflchef/tflite/src/Op/include/PRelu.h index b35c6e7ce14..385a123b0fb 100644 --- a/compiler/tflchef/tflite/src/Op/include/PRelu.h +++ b/compiler/tflchef/tflite/src/Op/include/PRelu.h @@ -30,8 +30,7 @@ class TFliteOpPRelu : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Pack.h b/compiler/tflchef/tflite/src/Op/include/Pack.h index 7779f64ed48..d3777395c24 100644 --- a/compiler/tflchef/tflite/src/Op/include/Pack.h +++ b/compiler/tflchef/tflite/src/Op/include/Pack.h @@ -30,8 +30,7 @@ class TFliteOpPack : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Pad.h b/compiler/tflchef/tflite/src/Op/include/Pad.h index 99998d4188b..4d907407b6c 100644 --- a/compiler/tflchef/tflite/src/Op/include/Pad.h +++ b/compiler/tflchef/tflite/src/Op/include/Pad.h @@ -30,8 +30,7 @@ class TFliteOpPad : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/PadV2.h b/compiler/tflchef/tflite/src/Op/include/PadV2.h index 3aa474b92eb..61d755f309b 100644 --- a/compiler/tflchef/tflite/src/Op/include/PadV2.h +++ b/compiler/tflchef/tflite/src/Op/include/PadV2.h @@ -30,8 +30,7 @@ class TFliteOpPadV2 : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Pow.h b/compiler/tflchef/tflite/src/Op/include/Pow.h index 20e847377b1..1e6403db01d 100644 --- a/compiler/tflchef/tflite/src/Op/include/Pow.h +++ b/compiler/tflchef/tflite/src/Op/include/Pow.h @@ -30,8 +30,7 @@ class TFliteOpPow : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Quantize.h b/compiler/tflchef/tflite/src/Op/include/Quantize.h index 256ed5a5ce0..9058621f26c 100644 --- a/compiler/tflchef/tflite/src/Op/include/Quantize.h +++ b/compiler/tflchef/tflite/src/Op/include/Quantize.h @@ -30,8 +30,7 @@ class TFliteOpQuantize : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Range.h b/compiler/tflchef/tflite/src/Op/include/Range.h index ad10dc58b48..705c35a5ceb 100644 --- a/compiler/tflchef/tflite/src/Op/include/Range.h +++ b/compiler/tflchef/tflite/src/Op/include/Range.h @@ -30,8 +30,7 @@ class TFliteOpRange : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Rank.h b/compiler/tflchef/tflite/src/Op/include/Rank.h index 003d9d310a2..5fbbe872a19 100644 --- a/compiler/tflchef/tflite/src/Op/include/Rank.h +++ b/compiler/tflchef/tflite/src/Op/include/Rank.h @@ -30,8 +30,7 @@ class TFliteOpRank : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ReLU.h b/compiler/tflchef/tflite/src/Op/include/ReLU.h index be10902705b..93d2a0aa745 100644 --- a/compiler/tflchef/tflite/src/Op/include/ReLU.h +++ b/compiler/tflchef/tflite/src/Op/include/ReLU.h @@ -30,8 +30,7 @@ class TFliteOpReLU : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ReLU6.h b/compiler/tflchef/tflite/src/Op/include/ReLU6.h index 64ddb6a2ecb..1cc15b4af2b 100644 --- a/compiler/tflchef/tflite/src/Op/include/ReLU6.h +++ b/compiler/tflchef/tflite/src/Op/include/ReLU6.h @@ -30,8 +30,7 @@ class TFliteOpReLU6 : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ReLUN1To1.h b/compiler/tflchef/tflite/src/Op/include/ReLUN1To1.h index 0767006afcf..cbac3991ead 100644 --- a/compiler/tflchef/tflite/src/Op/include/ReLUN1To1.h +++ b/compiler/tflchef/tflite/src/Op/include/ReLUN1To1.h @@ -30,8 +30,7 @@ class TFliteOpReLUN1To1 : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ReduceAny.h b/compiler/tflchef/tflite/src/Op/include/ReduceAny.h index dd5e361d519..b6a21f0b7f3 100644 --- a/compiler/tflchef/tflite/src/Op/include/ReduceAny.h +++ b/compiler/tflchef/tflite/src/Op/include/ReduceAny.h @@ -30,8 +30,7 @@ class TFliteOpReduceAny : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ReduceMax.h b/compiler/tflchef/tflite/src/Op/include/ReduceMax.h index 8e65cf47c66..cf70850fe14 100644 --- a/compiler/tflchef/tflite/src/Op/include/ReduceMax.h +++ b/compiler/tflchef/tflite/src/Op/include/ReduceMax.h @@ -30,8 +30,7 @@ class TFliteOpReduceMax : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ReduceMin.h b/compiler/tflchef/tflite/src/Op/include/ReduceMin.h index 88cba6fe752..66c9df2d37d 100644 --- a/compiler/tflchef/tflite/src/Op/include/ReduceMin.h +++ b/compiler/tflchef/tflite/src/Op/include/ReduceMin.h @@ -30,8 +30,7 @@ class TFliteOpReduceMin : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ReduceProd.h b/compiler/tflchef/tflite/src/Op/include/ReduceProd.h index e7766840ae3..8869fbba9ff 100644 --- a/compiler/tflchef/tflite/src/Op/include/ReduceProd.h +++ b/compiler/tflchef/tflite/src/Op/include/ReduceProd.h @@ -30,8 +30,7 @@ class TFliteOpReduceProd : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Reshape.h b/compiler/tflchef/tflite/src/Op/include/Reshape.h index be9fdac080b..d7b8bfa2f4d 100644 --- a/compiler/tflchef/tflite/src/Op/include/Reshape.h +++ b/compiler/tflchef/tflite/src/Op/include/Reshape.h @@ -30,8 +30,7 @@ class TFliteOpReshape : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ResizeBilinear.h b/compiler/tflchef/tflite/src/Op/include/ResizeBilinear.h index 98c49c5346f..4417d5ecbf8 100644 --- a/compiler/tflchef/tflite/src/Op/include/ResizeBilinear.h +++ b/compiler/tflchef/tflite/src/Op/include/ResizeBilinear.h @@ -30,8 +30,7 @@ class TFliteOpResizeBilinear : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ResizeNearestNeighbor.h b/compiler/tflchef/tflite/src/Op/include/ResizeNearestNeighbor.h index 5090bb93825..858830197f2 100644 --- a/compiler/tflchef/tflite/src/Op/include/ResizeNearestNeighbor.h +++ b/compiler/tflchef/tflite/src/Op/include/ResizeNearestNeighbor.h @@ -30,8 +30,7 @@ class TFliteOpResizeNearestNeighbor : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ReverseSequence.h b/compiler/tflchef/tflite/src/Op/include/ReverseSequence.h index 8c8c811e4b5..469f460d215 100644 --- a/compiler/tflchef/tflite/src/Op/include/ReverseSequence.h +++ b/compiler/tflchef/tflite/src/Op/include/ReverseSequence.h @@ -30,8 +30,7 @@ class TFliteOpReverseSequence : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ReverseV2.h b/compiler/tflchef/tflite/src/Op/include/ReverseV2.h index 6a8a75e6ba2..22cc2fe196f 100644 --- a/compiler/tflchef/tflite/src/Op/include/ReverseV2.h +++ b/compiler/tflchef/tflite/src/Op/include/ReverseV2.h @@ -30,8 +30,7 @@ class TFliteOpReverseV2 : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Round.h b/compiler/tflchef/tflite/src/Op/include/Round.h index df0da3fa114..01c43a9fc33 100644 --- a/compiler/tflchef/tflite/src/Op/include/Round.h +++ b/compiler/tflchef/tflite/src/Op/include/Round.h @@ -30,8 +30,7 @@ class TFliteOpRound : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Rsqrt.h b/compiler/tflchef/tflite/src/Op/include/Rsqrt.h index 5d68344c289..c2246c7efa6 100644 --- a/compiler/tflchef/tflite/src/Op/include/Rsqrt.h +++ b/compiler/tflchef/tflite/src/Op/include/Rsqrt.h @@ -30,8 +30,7 @@ class TFliteOpRsqrt : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/SVDF.h b/compiler/tflchef/tflite/src/Op/include/SVDF.h index a59ca54a266..35b4c21329e 100644 --- a/compiler/tflchef/tflite/src/Op/include/SVDF.h +++ b/compiler/tflchef/tflite/src/Op/include/SVDF.h @@ -30,8 +30,7 @@ class TFliteOpSVDF : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/ScatterNd.h b/compiler/tflchef/tflite/src/Op/include/ScatterNd.h index 76362d7753d..616a80b7112 100644 --- a/compiler/tflchef/tflite/src/Op/include/ScatterNd.h +++ b/compiler/tflchef/tflite/src/Op/include/ScatterNd.h @@ -30,8 +30,7 @@ class TFliteOpScatterNd : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/SegmentSum.h b/compiler/tflchef/tflite/src/Op/include/SegmentSum.h index d20e63bd7aa..33d0182c866 100644 --- a/compiler/tflchef/tflite/src/Op/include/SegmentSum.h +++ b/compiler/tflchef/tflite/src/Op/include/SegmentSum.h @@ -30,8 +30,7 @@ class TFliteOpSegmentSum : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Select.h b/compiler/tflchef/tflite/src/Op/include/Select.h index bf8e57d7808..a6cd79a4692 100644 --- a/compiler/tflchef/tflite/src/Op/include/Select.h +++ b/compiler/tflchef/tflite/src/Op/include/Select.h @@ -30,8 +30,7 @@ class TFliteOpSelect : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/SelectV2.h b/compiler/tflchef/tflite/src/Op/include/SelectV2.h index ff03341d7d9..5278a9808e3 100644 --- a/compiler/tflchef/tflite/src/Op/include/SelectV2.h +++ b/compiler/tflchef/tflite/src/Op/include/SelectV2.h @@ -30,8 +30,7 @@ class TFliteOpSelectV2 : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Shape.h b/compiler/tflchef/tflite/src/Op/include/Shape.h index ebe1befb367..6dbe3b8a044 100644 --- a/compiler/tflchef/tflite/src/Op/include/Shape.h +++ b/compiler/tflchef/tflite/src/Op/include/Shape.h @@ -30,8 +30,7 @@ class TFliteOpShape : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Sin.h b/compiler/tflchef/tflite/src/Op/include/Sin.h index 51eabceb545..7b97067a196 100644 --- a/compiler/tflchef/tflite/src/Op/include/Sin.h +++ b/compiler/tflchef/tflite/src/Op/include/Sin.h @@ -30,8 +30,7 @@ class TFliteOpSin : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Slice.h b/compiler/tflchef/tflite/src/Op/include/Slice.h index 6ca6724d315..31327a9f14b 100644 --- a/compiler/tflchef/tflite/src/Op/include/Slice.h +++ b/compiler/tflchef/tflite/src/Op/include/Slice.h @@ -30,8 +30,7 @@ class TFliteOpSlice : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Softmax.h b/compiler/tflchef/tflite/src/Op/include/Softmax.h index cf168bdd9c4..1e2162ce8d0 100644 --- a/compiler/tflchef/tflite/src/Op/include/Softmax.h +++ b/compiler/tflchef/tflite/src/Op/include/Softmax.h @@ -30,8 +30,7 @@ class TFliteOpSoftmax : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/SpaceToBatchND.h b/compiler/tflchef/tflite/src/Op/include/SpaceToBatchND.h index 9d7bc44e81d..1900bea3dbb 100644 --- a/compiler/tflchef/tflite/src/Op/include/SpaceToBatchND.h +++ b/compiler/tflchef/tflite/src/Op/include/SpaceToBatchND.h @@ -30,8 +30,7 @@ class TFliteOpSpaceToBatchND : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/SpaceToDepth.h b/compiler/tflchef/tflite/src/Op/include/SpaceToDepth.h index 784ad940a3a..72f59732a1b 100644 --- a/compiler/tflchef/tflite/src/Op/include/SpaceToDepth.h +++ b/compiler/tflchef/tflite/src/Op/include/SpaceToDepth.h @@ -30,8 +30,7 @@ class TFliteOpSpaceToDepth : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/SparseToDense.h b/compiler/tflchef/tflite/src/Op/include/SparseToDense.h index 5ffe4789da5..351de34efe4 100644 --- a/compiler/tflchef/tflite/src/Op/include/SparseToDense.h +++ b/compiler/tflchef/tflite/src/Op/include/SparseToDense.h @@ -30,8 +30,7 @@ class TFliteOpSparseToDense : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Split.h b/compiler/tflchef/tflite/src/Op/include/Split.h index af247a1b97b..6ea60bb0c5a 100644 --- a/compiler/tflchef/tflite/src/Op/include/Split.h +++ b/compiler/tflchef/tflite/src/Op/include/Split.h @@ -30,8 +30,7 @@ class TFliteOpSplit : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/SplitV.h b/compiler/tflchef/tflite/src/Op/include/SplitV.h index 3f715b5f97b..b1748f62450 100644 --- a/compiler/tflchef/tflite/src/Op/include/SplitV.h +++ b/compiler/tflchef/tflite/src/Op/include/SplitV.h @@ -30,8 +30,7 @@ class TFliteOpSplitV : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Sqrt.h b/compiler/tflchef/tflite/src/Op/include/Sqrt.h index 9f0ad04ae98..13dc43ec931 100644 --- a/compiler/tflchef/tflite/src/Op/include/Sqrt.h +++ b/compiler/tflchef/tflite/src/Op/include/Sqrt.h @@ -30,8 +30,7 @@ class TFliteOpSqrt : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Square.h b/compiler/tflchef/tflite/src/Op/include/Square.h index 9c008fe52d3..69a4bb051e9 100644 --- a/compiler/tflchef/tflite/src/Op/include/Square.h +++ b/compiler/tflchef/tflite/src/Op/include/Square.h @@ -30,8 +30,7 @@ class TFliteOpSquare : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/SquaredDifference.h b/compiler/tflchef/tflite/src/Op/include/SquaredDifference.h index 58c2ed4605e..743d112f086 100644 --- a/compiler/tflchef/tflite/src/Op/include/SquaredDifference.h +++ b/compiler/tflchef/tflite/src/Op/include/SquaredDifference.h @@ -30,8 +30,7 @@ class TFliteOpSquaredDifference : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Squeeze.h b/compiler/tflchef/tflite/src/Op/include/Squeeze.h index b6c89f73df4..ea8f553f1b0 100644 --- a/compiler/tflchef/tflite/src/Op/include/Squeeze.h +++ b/compiler/tflchef/tflite/src/Op/include/Squeeze.h @@ -30,8 +30,7 @@ class TFliteOpSqueeze : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/StridedSlice.h b/compiler/tflchef/tflite/src/Op/include/StridedSlice.h index 98054b9b960..de9181ebecf 100644 --- a/compiler/tflchef/tflite/src/Op/include/StridedSlice.h +++ b/compiler/tflchef/tflite/src/Op/include/StridedSlice.h @@ -30,8 +30,7 @@ class TFliteOpStridedSlice : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Sub.h b/compiler/tflchef/tflite/src/Op/include/Sub.h index 2168e5e0d75..b78744aec6c 100644 --- a/compiler/tflchef/tflite/src/Op/include/Sub.h +++ b/compiler/tflchef/tflite/src/Op/include/Sub.h @@ -30,8 +30,7 @@ class TFliteOpSub : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Sum.h b/compiler/tflchef/tflite/src/Op/include/Sum.h index 38eeb080d69..d1537d823bb 100644 --- a/compiler/tflchef/tflite/src/Op/include/Sum.h +++ b/compiler/tflchef/tflite/src/Op/include/Sum.h @@ -30,8 +30,7 @@ class TFliteOpSum : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Tanh.h b/compiler/tflchef/tflite/src/Op/include/Tanh.h index 7339e41031c..480a387f4e3 100644 --- a/compiler/tflchef/tflite/src/Op/include/Tanh.h +++ b/compiler/tflchef/tflite/src/Op/include/Tanh.h @@ -30,8 +30,7 @@ class TFliteOpTanh : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Tile.h b/compiler/tflchef/tflite/src/Op/include/Tile.h index 640f52a1f04..9635bb4ef55 100644 --- a/compiler/tflchef/tflite/src/Op/include/Tile.h +++ b/compiler/tflchef/tflite/src/Op/include/Tile.h @@ -30,8 +30,7 @@ class TFliteOpTile : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/TopKV2.h b/compiler/tflchef/tflite/src/Op/include/TopKV2.h index b2b74cc75c3..6d94369116e 100644 --- a/compiler/tflchef/tflite/src/Op/include/TopKV2.h +++ b/compiler/tflchef/tflite/src/Op/include/TopKV2.h @@ -30,8 +30,7 @@ class TFliteOpTopKV2 : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Transpose.h b/compiler/tflchef/tflite/src/Op/include/Transpose.h index f0d944b6be2..89501ece74d 100644 --- a/compiler/tflchef/tflite/src/Op/include/Transpose.h +++ b/compiler/tflchef/tflite/src/Op/include/Transpose.h @@ -30,8 +30,7 @@ class TFliteOpTranspose : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/TransposeConv.h b/compiler/tflchef/tflite/src/Op/include/TransposeConv.h index c79cdabd252..4ad9bf91920 100644 --- a/compiler/tflchef/tflite/src/Op/include/TransposeConv.h +++ b/compiler/tflchef/tflite/src/Op/include/TransposeConv.h @@ -30,8 +30,7 @@ class TFliteOpTransposeConv : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/UnidirectionalSequenceLSTM.h b/compiler/tflchef/tflite/src/Op/include/UnidirectionalSequenceLSTM.h index cc4e5fb0fdf..912f808a95c 100644 --- a/compiler/tflchef/tflite/src/Op/include/UnidirectionalSequenceLSTM.h +++ b/compiler/tflchef/tflite/src/Op/include/UnidirectionalSequenceLSTM.h @@ -30,8 +30,7 @@ class TFliteOpUnidirectionalSequenceLSTM : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Unique.h b/compiler/tflchef/tflite/src/Op/include/Unique.h index fae037c9fe3..fd34630ca13 100644 --- a/compiler/tflchef/tflite/src/Op/include/Unique.h +++ b/compiler/tflchef/tflite/src/Op/include/Unique.h @@ -30,8 +30,7 @@ class TFliteOpUnique : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Unpack.h b/compiler/tflchef/tflite/src/Op/include/Unpack.h index 1036bdc1434..f16a7ee73f8 100644 --- a/compiler/tflchef/tflite/src/Op/include/Unpack.h +++ b/compiler/tflchef/tflite/src/Op/include/Unpack.h @@ -30,8 +30,7 @@ class TFliteOpUnpack : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/Where.h b/compiler/tflchef/tflite/src/Op/include/Where.h index 00cdc4b008a..e1c78d1ec07 100644 --- a/compiler/tflchef/tflite/src/Op/include/Where.h +++ b/compiler/tflchef/tflite/src/Op/include/Where.h @@ -30,8 +30,7 @@ class TFliteOpWhere : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/Op/include/While.h b/compiler/tflchef/tflite/src/Op/include/While.h new file mode 100644 index 00000000000..532f0235194 --- /dev/null +++ b/compiler/tflchef/tflite/src/Op/include/While.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2024 Samsung Electronics Co., Ltd. All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __TFLITE_OP_WHILE_H__ +#define __TFLITE_OP_WHILE_H__ + +#include "TFliteOpChef.h" + +namespace tflchef +{ + +/** + * @brief tflchef operator builder for While + */ +class TFliteOpWhile : public TFliteOpChef +{ +public: + void filler(const tflite::Operator *op, TFliteImport *import, + tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; +}; + +} // namespace tflchef + +#endif // __TFLITE_OP_WHILE_H__ diff --git a/compiler/tflchef/tflite/src/Op/include/ZerosLike.h b/compiler/tflchef/tflite/src/Op/include/ZerosLike.h index 163c1fa214e..ec1dc480c1a 100644 --- a/compiler/tflchef/tflite/src/Op/include/ZerosLike.h +++ b/compiler/tflchef/tflite/src/Op/include/ZerosLike.h @@ -30,8 +30,7 @@ class TFliteOpZerosLike : public TFliteOpChef public: void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const override; - tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const override; + tflchef::Operation *build(RecipeChefContext *ctx) const override; }; } // namespace tflchef diff --git a/compiler/tflchef/tflite/src/RecipeChef.cpp b/compiler/tflchef/tflite/src/RecipeChef.cpp index 87643d4c309..116b03cadde 100644 --- a/compiler/tflchef/tflite/src/RecipeChef.cpp +++ b/compiler/tflchef/tflite/src/RecipeChef.cpp @@ -74,254 +74,276 @@ std::unique_ptr generate_recipe(const tflite::Model *model) TFliteImport tflite_import(model); - assert(tflite_import.num_subgraph() == 1); - tflite_import.select_sub_graph(0); + auto const num_subgraph = tflite_import.num_subgraph(); - auto tensors = tflite_import.tensors(); - auto buffers = tflite_import.buffers(); - auto operators = tflite_import.operators(); - - // operand fillers for adding all operators - for (uint32_t i = 0; i < operators->size(); ++i) - { - const auto *op = operators->Get(i); - tflite::BuiltinOperator builtincode = tflite_import.builtin_code(op); - - if (const auto *graph_builder = TFliteOpRegistry::get().lookup(builtincode)) - { - graph_builder->filler(op, &tflite_import, model_recipe.get()); - } - else - { - std::string opcodename = tflite_import.opcode_name(op); - throw std::runtime_error{"Not supported: " + opcodename}; - } - } - - // add all operands(tensors) - for (uint32_t i = 0; i < tensors->size(); ++i) + RecipeChefContext ctx; + for (uint32_t n = 0; n < num_subgraph; ++n) { - auto tensor = tensors->Get(i); - - // check buffer - if (tensor->buffer() >= buffers->size()) - throw std::runtime_error{"file load failed"}; + tflite_import.select_sub_graph(n); - ::tflchef::Operand *operand = model_recipe->add_operand(); + auto tensors = tflite_import.tensors(); + auto buffers = tflite_import.buffers(); + auto operators = tflite_import.operators(); - operand->set_name(mio::tflite::tensor_name(tensor)); - operand->set_type(as_tflchef_type(tensor->type())); - operand->set_is_variable(tensor->is_variable()); + tflchef::Graph *graph = nullptr; + if (n != 0) + graph = model_recipe->add_graph(); - if (tensor->shape()) + // operand fillers for adding all operators + for (uint32_t i = 0; i < operators->size(); ++i) { - std::vector dims = as_index_vector(tensor->shape()); - ::tflchef::TensorShape *shape = operand->mutable_shape(); - for (auto dim : dims) - { - shape->add_dim(dim); - } - } + const auto *op = operators->Get(i); + tflite::BuiltinOperator builtincode = tflite_import.builtin_code(op); - // filler for weights, bias and so on - std::vector expvalues; - std::vector expfvalues; - if (tflite_import.get_tensor_filler(i)) - { - tflchef::TensorFiller *filler = operand->mutable_filler(); - // Note: it is OK to use random weights for functionality validation - filler->set_tag("gaussian"); - filler->add_arg("0.0"); // average - filler->add_arg("0.1"); // standard deviation - } - else if (tflite_import.get_tensor_filler(i, expvalues)) - { - tflchef::TensorFiller *filler = operand->mutable_filler(); - filler->set_tag("explicit"); - for (auto value : expvalues) + if (const auto *graph_builder = TFliteOpRegistry::get().lookup(builtincode)) { - std::ostringstream ss; - ss << value; - filler->add_arg(ss.str()); + graph_builder->filler(op, &tflite_import, model_recipe.get()); } - } - else if (tflite_import.get_tensor_filler(i, expfvalues)) - { - tflchef::TensorFiller *filler = operand->mutable_filler(); - filler->set_tag("explicit"); - for (auto value : expfvalues) + else { - std::ostringstream ss; - ss << value; - filler->add_arg(ss.str()); + std::string opcodename = tflite_import.opcode_name(op); + throw std::runtime_error{"Not supported: " + opcodename}; } } - auto quant = tensor->quantization(); - if (quant != nullptr) + // add all operands(tensors) + for (uint32_t i = 0; i < tensors->size(); ++i) { - // Note: Calling 'operand->mutable_quant()' will create empty 'quant' node - // in the recipe file. We want this only when valid parameter exist. - if (quant->min() != nullptr && quant->min()->size() > 0) + auto tensor = tensors->Get(i); + + // check buffer + if (tensor->buffer() >= buffers->size()) + throw std::runtime_error{"file load failed"}; + + ::tflchef::Operand *operand; + if (graph != nullptr) + operand = graph->add_operand(); + else + operand = model_recipe->add_operand(); + operand->set_name(mio::tflite::tensor_name(tensor)); + operand->set_type(as_tflchef_type(tensor->type())); + operand->set_is_variable(tensor->is_variable()); + + if (tensor->shape()) { - tflchef::TensorQuantization *chef_quant = operand->mutable_quant(); - for (uint32_t idx = 0; idx < quant->min()->size(); ++idx) - chef_quant->add_min(quant->min()->Get(idx)); + std::vector dims = as_index_vector(tensor->shape()); + ::tflchef::TensorShape *shape = operand->mutable_shape(); + for (auto dim : dims) + { + shape->add_dim(dim); + } } - if (quant->max() != nullptr && quant->max()->size() > 0) + + // filler for weights, bias and so on + std::vector expvalues; + std::vector expfvalues; + if (tflite_import.get_tensor_filler(i)) { - tflchef::TensorQuantization *chef_quant = operand->mutable_quant(); - for (uint32_t idx = 0; idx < quant->max()->size(); idx++) - chef_quant->add_max(quant->max()->Get(idx)); + tflchef::TensorFiller *filler = operand->mutable_filler(); + // Note: it is OK to use random weights for functionality validation + filler->set_tag("gaussian"); + filler->add_arg("0.0"); // average + filler->add_arg("0.1"); // standard deviation } - if (quant->scale() != nullptr && quant->scale()->size() > 0) + else if (tflite_import.get_tensor_filler(i, expvalues)) { - tflchef::TensorQuantization *chef_quant = operand->mutable_quant(); - for (uint32_t idx = 0; idx < quant->scale()->size(); ++idx) - chef_quant->add_scale(quant->scale()->Get(idx)); + tflchef::TensorFiller *filler = operand->mutable_filler(); + filler->set_tag("explicit"); + for (auto value : expvalues) + { + std::ostringstream ss; + ss << value; + filler->add_arg(ss.str()); + } } - if (quant->zero_point() != nullptr && quant->zero_point()->size() > 0) + else if (tflite_import.get_tensor_filler(i, expfvalues)) { - tflchef::TensorQuantization *chef_quant = operand->mutable_quant(); - for (uint32_t idx = 0; idx < quant->zero_point()->size(); ++idx) - chef_quant->add_zero_point(quant->zero_point()->Get(idx)); + tflchef::TensorFiller *filler = operand->mutable_filler(); + filler->set_tag("explicit"); + for (auto value : expfvalues) + { + std::ostringstream ss; + ss << value; + filler->add_arg(ss.str()); + } } - tflchef::TensorQuantization *chef_quant = operand->mutable_quant(); - chef_quant->set_quantized_dimension(quant->quantized_dimension()); - } - auto sparsity = tensor->sparsity(); - if (sparsity != nullptr) - { - tflchef::TensorSparsity *chef_sparsity = operand->mutable_sparsity(); - // traversal_order - auto chef_traversal_order = chef_sparsity->mutable_traversal_order(); - for (const auto &to : *(sparsity->traversal_order())) + auto quant = tensor->quantization(); + if (quant != nullptr) { - chef_traversal_order->add_dim(to); - } - // block_map - auto chef_block_map = chef_sparsity->mutable_block_map(); - for (const auto &bm : *(sparsity->block_map())) - { - chef_block_map->add_dim(bm); + // Note: Calling 'operand->mutable_quant()' will create empty 'quant' node + // in the recipe file. We want this only when valid parameter exist. + if (quant->min() != nullptr && quant->min()->size() > 0) + { + tflchef::TensorQuantization *chef_quant = operand->mutable_quant(); + for (uint32_t idx = 0; idx < quant->min()->size(); ++idx) + chef_quant->add_min(quant->min()->Get(idx)); + } + if (quant->max() != nullptr && quant->max()->size() > 0) + { + tflchef::TensorQuantization *chef_quant = operand->mutable_quant(); + for (uint32_t idx = 0; idx < quant->max()->size(); idx++) + chef_quant->add_max(quant->max()->Get(idx)); + } + if (quant->scale() != nullptr && quant->scale()->size() > 0) + { + tflchef::TensorQuantization *chef_quant = operand->mutable_quant(); + for (uint32_t idx = 0; idx < quant->scale()->size(); ++idx) + chef_quant->add_scale(quant->scale()->Get(idx)); + } + if (quant->zero_point() != nullptr && quant->zero_point()->size() > 0) + { + tflchef::TensorQuantization *chef_quant = operand->mutable_quant(); + for (uint32_t idx = 0; idx < quant->zero_point()->size(); ++idx) + chef_quant->add_zero_point(quant->zero_point()->Get(idx)); + } + tflchef::TensorQuantization *chef_quant = operand->mutable_quant(); + chef_quant->set_quantized_dimension(quant->quantized_dimension()); } - // dim_metadata - for (const auto &dm : *(sparsity->dim_metadata())) + + auto sparsity = tensor->sparsity(); + if (sparsity != nullptr) { - auto chef_dm = chef_sparsity->add_dim_metadata(); - // format - chef_dm->set_format(as_tflchef_sparse_dim_type(dm->format())); - // dense_size - chef_dm->set_dense_size(dm->dense_size()); - // array_segments - auto chef_array_segments = chef_dm->mutable_array_segments(); - switch (dm->array_segments_type()) + tflchef::TensorSparsity *chef_sparsity = operand->mutable_sparsity(); + // traversal_order + auto chef_traversal_order = chef_sparsity->mutable_traversal_order(); + for (const auto &to : *(sparsity->traversal_order())) + { + chef_traversal_order->add_dim(to); + } + // block_map + auto chef_block_map = chef_sparsity->mutable_block_map(); + for (const auto &bm : *(sparsity->block_map())) { - case tflite::SparseIndexVector_NONE: - // DO NOTHING - break; - case tflite::SparseIndexVector_Int32Vector: - for (const auto &as : *(dm->array_segments_as_Int32Vector()->values())) - { - chef_array_segments->add_dim(as); - } - break; - case tflite::SparseIndexVector_Uint16Vector: - for (const auto &as : *(dm->array_segments_as_Uint16Vector()->values())) - { - chef_array_segments->add_dim(as); - } - break; - case tflite::SparseIndexVector_Uint8Vector: - for (const auto &as : *(dm->array_segments_as_Uint8Vector()->values())) - { - chef_array_segments->add_dim(as); - } - break; - default: - throw std::runtime_error("unsupported sparse index vector type"); + chef_block_map->add_dim(bm); } - // array_indices - auto chef_array_indices = chef_dm->mutable_array_indices(); - switch (dm->array_indices_type()) + // dim_metadata + for (const auto &dm : *(sparsity->dim_metadata())) { - case tflite::SparseIndexVector_NONE: - // DO NOTHING - break; - case tflite::SparseIndexVector_Int32Vector: - for (const auto &as : *(dm->array_indices_as_Int32Vector()->values())) - { - chef_array_indices->add_dim(as); - } - break; - case tflite::SparseIndexVector_Uint16Vector: - for (const auto &as : *(dm->array_indices_as_Uint16Vector()->values())) - { - chef_array_indices->add_dim(as); - } - break; - case tflite::SparseIndexVector_Uint8Vector: - for (const auto &as : *(dm->array_indices_as_Uint8Vector()->values())) - { - chef_array_indices->add_dim(as); - } - break; - default: - throw std::runtime_error("unsupported sparse index vector type"); + auto chef_dm = chef_sparsity->add_dim_metadata(); + // format + chef_dm->set_format(as_tflchef_sparse_dim_type(dm->format())); + // dense_size + chef_dm->set_dense_size(dm->dense_size()); + // array_segments + auto chef_array_segments = chef_dm->mutable_array_segments(); + switch (dm->array_segments_type()) + { + case tflite::SparseIndexVector_NONE: + // DO NOTHING + break; + case tflite::SparseIndexVector_Int32Vector: + for (const auto &as : *(dm->array_segments_as_Int32Vector()->values())) + { + chef_array_segments->add_dim(as); + } + break; + case tflite::SparseIndexVector_Uint16Vector: + for (const auto &as : *(dm->array_segments_as_Uint16Vector()->values())) + { + chef_array_segments->add_dim(as); + } + break; + case tflite::SparseIndexVector_Uint8Vector: + for (const auto &as : *(dm->array_segments_as_Uint8Vector()->values())) + { + chef_array_segments->add_dim(as); + } + break; + default: + throw std::runtime_error("unsupported sparse index vector type"); + } + // array_indices + auto chef_array_indices = chef_dm->mutable_array_indices(); + switch (dm->array_indices_type()) + { + case tflite::SparseIndexVector_NONE: + // DO NOTHING + break; + case tflite::SparseIndexVector_Int32Vector: + for (const auto &as : *(dm->array_indices_as_Int32Vector()->values())) + { + chef_array_indices->add_dim(as); + } + break; + case tflite::SparseIndexVector_Uint16Vector: + for (const auto &as : *(dm->array_indices_as_Uint16Vector()->values())) + { + chef_array_indices->add_dim(as); + } + break; + case tflite::SparseIndexVector_Uint8Vector: + for (const auto &as : *(dm->array_indices_as_Uint8Vector()->values())) + { + chef_array_indices->add_dim(as); + } + break; + default: + throw std::runtime_error("unsupported sparse index vector type"); + } + } + } + + auto shape_signature = tensor->shape_signature(); + if (shape_signature != nullptr) + { + tflchef::ShapeSignature *chef_shape_signature = operand->mutable_shape_signature(); + for (uint32_t j = 0; j < shape_signature->size(); ++j) + { + chef_shape_signature->add_dim(shape_signature->Get(j)); } } } - auto shape_signature = tensor->shape_signature(); - if (shape_signature != nullptr) + // add all operators + for (uint32_t i = 0; i < operators->size(); ++i) { - tflchef::ShapeSignature *chef_shape_signature = operand->mutable_shape_signature(); - for (uint32_t i = 0; i < shape_signature->size(); ++i) + const auto *op = operators->Get(i); + tflite::BuiltinOperator builtincode = tflite_import.builtin_code(op); + + if (const auto *graph_builder = TFliteOpRegistry::get().lookup(builtincode)) + { + tflchef::Operation *operation = + graph ? graph->add_operation() : model_recipe->add_operation(); + ctx.tflop = op; + ctx.chefop = operation; + graph_builder->build(&ctx); + + // common for all operators: inputs, outputs + set_inputs(&tflite_import, operation, op); + set_outputs(&tflite_import, operation, op); + } + else { - chef_shape_signature->add_dim(shape_signature->Get(i)); + std::string opcodename = tflite_import.opcode_name(op); + throw std::runtime_error{"Not supported: " + opcodename}; } } - } - // add all operators - for (uint32_t i = 0; i < operators->size(); ++i) - { - const auto *op = operators->Get(i); - tflite::BuiltinOperator builtincode = tflite_import.builtin_code(op); + // network inputs/outputs + const std::vector &inputs = tflite_import.inputs(); + const std::vector &outputs = tflite_import.outputs(); - if (const auto *graph_builder = TFliteOpRegistry::get().lookup(builtincode)) + for (const auto input : inputs) { - auto operation = graph_builder->build(op, &tflite_import, model_recipe.get()); + auto tensor = tensors->Get(input); + std::string name = mio::tflite::tensor_name(tensor); - // common for all operators: inputs, outputs - set_inputs(&tflite_import, operation, op); - set_outputs(&tflite_import, operation, op); + if (graph != nullptr) + graph->add_input(name); + else + model_recipe->add_input(name); } - else + for (const auto output : outputs) { - std::string opcodename = tflite_import.opcode_name(op); - throw std::runtime_error{"Not supported: " + opcodename}; - } - } - - // network inputs/outputs - const std::vector &inputs = tflite_import.inputs(); - const std::vector &outputs = tflite_import.outputs(); - - for (const auto input : inputs) - { - auto tensor = tensors->Get(input); - std::string name = mio::tflite::tensor_name(tensor); - - model_recipe->add_input(name); - } - for (const auto output : outputs) - { - auto tensor = tensors->Get(output); - std::string name = mio::tflite::tensor_name(tensor); + auto tensor = tensors->Get(output); + std::string name = mio::tflite::tensor_name(tensor); - model_recipe->add_output(name); + if (graph != nullptr) + graph->add_output(name); + else + model_recipe->add_output(name); + } } return std::move(model_recipe); diff --git a/compiler/tflchef/tflite/src/TFliteImport.cpp b/compiler/tflchef/tflite/src/TFliteImport.cpp index dc000af56d7..cdb08153b5a 100644 --- a/compiler/tflchef/tflite/src/TFliteImport.cpp +++ b/compiler/tflchef/tflite/src/TFliteImport.cpp @@ -43,6 +43,9 @@ bool TFliteImport::select_sub_graph(uint32_t sgindex) _operators = nullptr; _inputs.clear(); _outputs.clear(); + clear_tensor_filler(); + clear_tensor_filler_vint32(); + clear_tensor_filler_vfloat(); if (_subgraphs->size() <= sgindex) { diff --git a/compiler/tflchef/tflite/src/TFliteOpChef.h b/compiler/tflchef/tflite/src/TFliteOpChef.h index 98564293b93..6113df4261b 100644 --- a/compiler/tflchef/tflite/src/TFliteOpChef.h +++ b/compiler/tflchef/tflite/src/TFliteOpChef.h @@ -26,6 +26,13 @@ namespace tflchef { +struct RecipeChefContext +{ + const tflite::Operator *tflop = nullptr; + tflchef::Operation *chefop = nullptr; + // add more if needed +}; + /** * @brief Interface for each operators to build tflchef */ @@ -34,8 +41,7 @@ class TFliteOpChef public: virtual void filler(const tflite::Operator *op, TFliteImport *import, tflchef::ModelRecipe *model_recipe) const = 0; - virtual ::tflchef::Operation *build(const tflite::Operator *op, TFliteImport *import, - tflchef::ModelRecipe *model_recipe) const = 0; + virtual ::tflchef::Operation *build(RecipeChefContext *ctx) const = 0; virtual ~TFliteOpChef() {} }; diff --git a/compiler/tflchef/tflite/src/TFliteOpChefs.h b/compiler/tflchef/tflite/src/TFliteOpChefs.h index 6248cb2fa81..409dd39f984 100644 --- a/compiler/tflchef/tflite/src/TFliteOpChefs.h +++ b/compiler/tflchef/tflite/src/TFliteOpChefs.h @@ -131,6 +131,7 @@ #include "Op/include/Unique.h" #include "Op/include/Unpack.h" #include "Op/include/Where.h" +#include "Op/include/While.h" #include "Op/include/ZerosLike.h" #endif // __TFLITE_OP_CHEFS_H__ diff --git a/compiler/tflchef/tflite/src/TFliteOpRegistry.h b/compiler/tflchef/tflite/src/TFliteOpRegistry.h index 8131c433dc9..3679248bb98 100644 --- a/compiler/tflchef/tflite/src/TFliteOpRegistry.h +++ b/compiler/tflchef/tflite/src/TFliteOpRegistry.h @@ -168,6 +168,7 @@ class TFliteOpRegistry REG_TFL_OP(UNIQUE, TFliteOpUnique); REG_TFL_OP(UNPACK, TFliteOpUnpack); REG_TFL_OP(WHERE, TFliteOpWhere); + REG_TFL_OP(WHILE, TFliteOpWhile); REG_TFL_OP(ZEROS_LIKE, TFliteOpZerosLike); #undef REG_TFL_OP