From e9f0ae16bf87dfa197bfdb374f106df812e0a5d0 Mon Sep 17 00:00:00 2001 From: Robert David Date: Wed, 1 Apr 2020 14:19:28 -0700 Subject: [PATCH] Initialize static TfLiteRegistration objects at compilation time. After this change, compiled code is up to 100 bytes smaller per object on Aarch64, and removes all runtime code. Expecting similar changes on other platforms. PiperOrigin-RevId: 304261011 Change-Id: I22536a10fd1379e06aea331263bb8deb121a02e1 --- tensorflow/lite/micro/kernels/activations.cc | 22 +++- tensorflow/lite/micro/kernels/add.cc | 13 ++- tensorflow/lite/micro/kernels/arg_min_max.cc | 22 +++- tensorflow/lite/micro/kernels/ceil.cc | 11 +- .../lite/micro/kernels/circular_buffer.cc | 12 +- tensorflow/lite/micro/kernels/comparisons.cc | 60 ++++++++-- .../lite/micro/kernels/concatenation.cc | 18 ++- tensorflow/lite/micro/kernels/conv.cc | 11 +- .../lite/micro/kernels/depthwise_conv.cc | 13 ++- tensorflow/lite/micro/kernels/dequantize.cc | 11 +- tensorflow/lite/micro/kernels/elementwise.cc | 104 ++++++++++++++---- tensorflow/lite/micro/kernels/floor.cc | 13 ++- .../lite/micro/kernels/fully_connected.cc | 13 ++- tensorflow/lite/micro/kernels/logical.cc | 20 +++- tensorflow/lite/micro/kernels/logistic.cc | 11 +- .../lite/micro/kernels/maximum_minimum.cc | 28 ++++- tensorflow/lite/micro/kernels/mul.cc | 11 +- tensorflow/lite/micro/kernels/neg.cc | 10 +- tensorflow/lite/micro/kernels/pack.cc | 11 +- tensorflow/lite/micro/kernels/pad.cc | 22 +++- tensorflow/lite/micro/kernels/pooling.cc | 26 +++-- .../portable_optimized/depthwise_conv.cc | 13 ++- tensorflow/lite/micro/kernels/prelu.cc | 11 +- tensorflow/lite/micro/kernels/quantize.cc | 13 ++- tensorflow/lite/micro/kernels/reduce.cc | 13 ++- tensorflow/lite/micro/kernels/reshape.cc | 11 +- tensorflow/lite/micro/kernels/round.cc | 11 +- tensorflow/lite/micro/kernels/split.cc | 11 +- .../lite/micro/kernels/strided_slice.cc | 12 +- tensorflow/lite/micro/kernels/sub.cc | 13 ++- tensorflow/lite/micro/kernels/svdf.cc | 13 ++- tensorflow/lite/micro/kernels/unpack.cc | 11 +- .../micro/kernels/xtensa_hifi/activations.cc | 22 +++- .../lite/micro/kernels/xtensa_hifi/conv.cc | 11 +- .../kernels/xtensa_hifi/depthwise_conv.cc | 13 ++- .../lite/micro/kernels/xtensa_hifi/floor.cc | 10 +- .../kernels/xtensa_hifi/fully_connected.cc | 13 ++- .../micro/kernels/xtensa_hifi/logistic.cc | 11 +- .../lite/micro/kernels/xtensa_hifi/pooling.cc | 26 +++-- .../lite/micro/kernels/xtensa_hifi/svdf.cc | 13 ++- .../micro/kernels/xtensa_hifimini/quantize.cc | 13 ++- 41 files changed, 517 insertions(+), 209 deletions(-) diff --git a/tensorflow/lite/micro/kernels/activations.cc b/tensorflow/lite/micro/kernels/activations.cc index c989937378e..4a9b8ce5d8e 100644 --- a/tensorflow/lite/micro/kernels/activations.cc +++ b/tensorflow/lite/micro/kernels/activations.cc @@ -158,16 +158,26 @@ TfLiteStatus Relu6Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace activations TfLiteRegistration* Register_RELU() { - static TfLiteRegistration r = {}; - r.prepare = activations::ReluPrepare; - r.invoke = activations::ReluEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/activations::ReluPrepare, + /*invoke=*/activations::ReluEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_RELU6() { - static TfLiteRegistration r = {}; - r.prepare = activations::Relu6Prepare; - r.invoke = activations::Relu6Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/activations::Relu6Prepare, + /*invoke=*/activations::Relu6Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/add.cc b/tensorflow/lite/micro/kernels/add.cc index 14cff035d1c..feb855b8cdf 100644 --- a/tensorflow/lite/micro/kernels/add.cc +++ b/tensorflow/lite/micro/kernels/add.cc @@ -198,11 +198,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace add TfLiteRegistration* Register_ADD() { - static TfLiteRegistration r = {}; - r.init = add::Init; - r.free = add::Free; - r.prepare = add::Prepare; - r.invoke = add::Eval; + static TfLiteRegistration r = {/*init=*/add::Init, + /*free=*/add::Free, + /*prepare=*/add::Prepare, + /*invoke=*/add::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/arg_min_max.cc b/tensorflow/lite/micro/kernels/arg_min_max.cc index 8ea8886898a..2ec8ca23475 100644 --- a/tensorflow/lite/micro/kernels/arg_min_max.cc +++ b/tensorflow/lite/micro/kernels/arg_min_max.cc @@ -103,16 +103,26 @@ TfLiteStatus ArgMaxEval(TfLiteContext* context, TfLiteNode* node) { } // namespace arg_min_max TfLiteRegistration* Register_ARG_MAX() { - static TfLiteRegistration r = {}; - r.prepare = arg_min_max::Prepare; - r.invoke = arg_min_max::ArgMaxEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/arg_min_max::Prepare, + /*invoke=*/arg_min_max::ArgMaxEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_ARG_MIN() { - static TfLiteRegistration r = {}; - r.prepare = arg_min_max::Prepare; - r.invoke = arg_min_max::ArgMinEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/arg_min_max::Prepare, + /*invoke=*/arg_min_max::ArgMinEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/ceil.cc b/tensorflow/lite/micro/kernels/ceil.cc index 907601950a3..89831a767fe 100644 --- a/tensorflow/lite/micro/kernels/ceil.cc +++ b/tensorflow/lite/micro/kernels/ceil.cc @@ -54,9 +54,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace ceil TfLiteRegistration* Register_CEIL() { - static TfLiteRegistration r = {}; - r.prepare = ceil::Prepare; - r.invoke = ceil::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/ceil::Prepare, + /*invoke=*/ceil::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/circular_buffer.cc b/tensorflow/lite/micro/kernels/circular_buffer.cc index e4bf91d9095..590bdbe00f8 100644 --- a/tensorflow/lite/micro/kernels/circular_buffer.cc +++ b/tensorflow/lite/micro/kernels/circular_buffer.cc @@ -159,10 +159,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace circular_buffer TfLiteRegistration* Register_CIRCULAR_BUFFER() { - static TfLiteRegistration r = {}; - r.free = circular_buffer::Free; - r.prepare = circular_buffer::Prepare; - r.invoke = circular_buffer::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/circular_buffer::Free, + /*prepare=*/circular_buffer::Prepare, + /*invoke=*/circular_buffer::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/comparisons.cc b/tensorflow/lite/micro/kernels/comparisons.cc index 206119e71cb..1f0a0694a96 100644 --- a/tensorflow/lite/micro/kernels/comparisons.cc +++ b/tensorflow/lite/micro/kernels/comparisons.cc @@ -300,38 +300,74 @@ TfLiteStatus LessEqualEval(TfLiteContext* context, TfLiteNode* node) { } // namespace comparisons TfLiteRegistration* Register_EQUAL() { - static TfLiteRegistration r = {}; - r.invoke = comparisons::EqualEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/comparisons::EqualEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_NOT_EQUAL() { - static TfLiteRegistration r = {}; - r.invoke = comparisons::NotEqualEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/comparisons::NotEqualEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_GREATER() { - static TfLiteRegistration r = {}; - r.invoke = comparisons::GreaterEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/comparisons::GreaterEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_GREATER_EQUAL() { - static TfLiteRegistration r = {}; - r.invoke = comparisons::GreaterEqualEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/comparisons::GreaterEqualEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_LESS() { - static TfLiteRegistration r = {}; - r.invoke = comparisons::LessEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/comparisons::LessEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_LESS_EQUAL() { - static TfLiteRegistration r = {}; - r.invoke = comparisons::LessEqualEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/comparisons::LessEqualEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/concatenation.cc b/tensorflow/lite/micro/kernels/concatenation.cc index 2a710be6db0..add4b12619e 100644 --- a/tensorflow/lite/micro/kernels/concatenation.cc +++ b/tensorflow/lite/micro/kernels/concatenation.cc @@ -13,6 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ #include "tensorflow/lite/kernels/internal/reference/concatenation.h" + #include #include "tensorflow/lite/c/builtin_op_data.h" @@ -176,9 +177,9 @@ void EvalQuantizedUInt8(TfLiteContext* context, TfLiteNode* node) { op_params.output_zeropoint = output->params.zero_point; op_params.output_scale = output->params.scale; - reference_ops::ConcatenationWithScaling( - op_params, inputs_shape_ptr, inputs_data, GetTensorShape(output), - GetTensorData(output)); + reference_ops::ConcatenationWithScaling(op_params, inputs_shape_ptr, + inputs_data, GetTensorShape(output), + GetTensorData(output)); } TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { @@ -214,9 +215,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace concatenation TfLiteRegistration* Register_CONCATENATION() { - static TfLiteRegistration r = {}; - r.prepare = concatenation::Prepare; - r.invoke = concatenation::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/concatenation::Prepare, + /*invoke=*/concatenation::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/conv.cc b/tensorflow/lite/micro/kernels/conv.cc index a54410dacc1..ecbd4f42d62 100644 --- a/tensorflow/lite/micro/kernels/conv.cc +++ b/tensorflow/lite/micro/kernels/conv.cc @@ -271,9 +271,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace conv TfLiteRegistration* Register_CONV_2D() { - static TfLiteRegistration r = {}; - r.prepare = conv::Prepare; - r.invoke = conv::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/conv::Prepare, + /*invoke=*/conv::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/depthwise_conv.cc b/tensorflow/lite/micro/kernels/depthwise_conv.cc index 9c6bce9dded..fff8eeddd0b 100644 --- a/tensorflow/lite/micro/kernels/depthwise_conv.cc +++ b/tensorflow/lite/micro/kernels/depthwise_conv.cc @@ -263,11 +263,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace depthwise_conv TfLiteRegistration* Register_DEPTHWISE_CONV_2D() { - static TfLiteRegistration r = {}; - r.init = depthwise_conv::Init; - r.free = depthwise_conv::Free; - r.prepare = depthwise_conv::Prepare; - r.invoke = depthwise_conv::Eval; + static TfLiteRegistration r = {/*init=*/depthwise_conv::Init, + /*free=*/depthwise_conv::Free, + /*prepare=*/depthwise_conv::Prepare, + /*invoke=*/depthwise_conv::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/dequantize.cc b/tensorflow/lite/micro/kernels/dequantize.cc index 7f25493dab4..37fb8ffc3c6 100644 --- a/tensorflow/lite/micro/kernels/dequantize.cc +++ b/tensorflow/lite/micro/kernels/dequantize.cc @@ -119,9 +119,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace dequantize TfLiteRegistration* Register_DEQUANTIZE() { - static TfLiteRegistration r = {}; - r.prepare = dequantize::Prepare; - r.invoke = dequantize::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/dequantize::Prepare, + /*invoke=*/dequantize::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/elementwise.cc b/tensorflow/lite/micro/kernels/elementwise.cc index 2cd5fa4072d..2e3ebe9f351 100644 --- a/tensorflow/lite/micro/kernels/elementwise.cc +++ b/tensorflow/lite/micro/kernels/elementwise.cc @@ -110,58 +110,114 @@ TfLiteStatus LogicalNotEval(TfLiteContext* context, TfLiteNode* node) { } // namespace elementwise TfLiteRegistration* Register_ABS() { - static TfLiteRegistration r = {}; - r.prepare = elementwise::GenericPrepare; - r.invoke = elementwise::AbsEval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/ + elementwise::GenericPrepare, + /*invoke=*/elementwise::AbsEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_SIN() { - static TfLiteRegistration r = {}; - r.prepare = elementwise::GenericPrepare; - r.invoke = elementwise::SinEval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/ + elementwise::GenericPrepare, + /*invoke=*/elementwise::SinEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_COS() { - static TfLiteRegistration r = {}; - r.prepare = elementwise::GenericPrepare; - r.invoke = elementwise::CosEval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/ + elementwise::GenericPrepare, + /*invoke=*/elementwise::CosEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_LOG() { - static TfLiteRegistration r = {}; - r.prepare = elementwise::GenericPrepare; - r.invoke = elementwise::LogEval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/ + elementwise::GenericPrepare, + /*invoke=*/elementwise::LogEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_SQRT() { - static TfLiteRegistration r = {}; - r.prepare = elementwise::GenericPrepare; - r.invoke = elementwise::SqrtEval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/ + elementwise::GenericPrepare, + /*invoke=*/elementwise::SqrtEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_RSQRT() { - static TfLiteRegistration r = {}; - r.prepare = elementwise::GenericPrepare; - r.invoke = elementwise::RsqrtEval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/ + elementwise::GenericPrepare, + /*invoke=*/elementwise::RsqrtEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_SQUARE() { - static TfLiteRegistration r = {}; - r.prepare = elementwise::GenericPrepare; - r.invoke = elementwise::SquareEval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/ + elementwise::GenericPrepare, + /*invoke=*/elementwise::SquareEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_LOGICAL_NOT() { - static TfLiteRegistration r = {}; - r.prepare = elementwise::GenericPrepare; - r.invoke = elementwise::LogicalNotEval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/ + elementwise::GenericPrepare, + /*invoke=*/elementwise::LogicalNotEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/floor.cc b/tensorflow/lite/micro/kernels/floor.cc index 6082a86def5..435934fe39f 100644 --- a/tensorflow/lite/micro/kernels/floor.cc +++ b/tensorflow/lite/micro/kernels/floor.cc @@ -13,8 +13,9 @@ See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ -#include "tensorflow/lite/c/common.h" #include "tensorflow/lite/kernels/internal/reference/floor.h" + +#include "tensorflow/lite/c/common.h" #include "tensorflow/lite/kernels/internal/tensor_ctypes.h" #include "tensorflow/lite/kernels/kernel_util.h" @@ -37,8 +38,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace floor TfLiteRegistration* Register_FLOOR() { - static TfLiteRegistration r = {}; - r.invoke = floor::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/floor::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/fully_connected.cc b/tensorflow/lite/micro/kernels/fully_connected.cc index 91df80b328c..a1c2424d554 100644 --- a/tensorflow/lite/micro/kernels/fully_connected.cc +++ b/tensorflow/lite/micro/kernels/fully_connected.cc @@ -221,11 +221,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace fully_connected TfLiteRegistration* Register_FULLY_CONNECTED() { - static TfLiteRegistration r = {}; - r.init = fully_connected::Init; - r.free = fully_connected::Free; - r.prepare = fully_connected::Prepare; - r.invoke = fully_connected::Eval; + static TfLiteRegistration r = {/*init=*/fully_connected::Init, + /*free=*/fully_connected::Free, + /*prepare=*/fully_connected::Prepare, + /*invoke=*/fully_connected::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/logical.cc b/tensorflow/lite/micro/kernels/logical.cc index 4b95bb4bbe3..c6a6a5a08ef 100644 --- a/tensorflow/lite/micro/kernels/logical.cc +++ b/tensorflow/lite/micro/kernels/logical.cc @@ -68,16 +68,28 @@ TfLiteStatus LogicalAndEval(TfLiteContext* context, TfLiteNode* node) { TfLiteRegistration* Register_LOGICAL_OR() { // Init, Free, Prepare, Eval are satisfying the Interface required by // TfLiteRegistration. - static TfLiteRegistration r = {}; - r.invoke = logical::LogicalOrEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/logical::LogicalOrEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_LOGICAL_AND() { // Init, Free, Prepare, Eval are satisfying the Interface required by // TfLiteRegistration. - static TfLiteRegistration r = {}; - r.invoke = logical::LogicalAndEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/logical::LogicalAndEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/logistic.cc b/tensorflow/lite/micro/kernels/logistic.cc index 0a0cc50b14d..69d06937c3b 100644 --- a/tensorflow/lite/micro/kernels/logistic.cc +++ b/tensorflow/lite/micro/kernels/logistic.cc @@ -83,9 +83,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace activations TfLiteRegistration* Register_LOGISTIC() { - static TfLiteRegistration r = {}; - r.prepare = activations::Prepare; - r.invoke = activations::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/activations::Prepare, + /*invoke=*/activations::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } } // namespace micro diff --git a/tensorflow/lite/micro/kernels/maximum_minimum.cc b/tensorflow/lite/micro/kernels/maximum_minimum.cc index 4617767d2a0..7162664cea7 100644 --- a/tensorflow/lite/micro/kernels/maximum_minimum.cc +++ b/tensorflow/lite/micro/kernels/maximum_minimum.cc @@ -117,16 +117,32 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace maximum_minimum TfLiteRegistration* Register_MAXIMUM() { - static TfLiteRegistration r = {}; - r.invoke = maximum_minimum::Eval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/ + maximum_minimum::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_MINIMUM() { - static TfLiteRegistration r = {}; - r.invoke = maximum_minimum::Eval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/ + maximum_minimum::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/mul.cc b/tensorflow/lite/micro/kernels/mul.cc index 55e35ef543e..63258b8796c 100644 --- a/tensorflow/lite/micro/kernels/mul.cc +++ b/tensorflow/lite/micro/kernels/mul.cc @@ -163,9 +163,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace mul TfLiteRegistration* Register_MUL() { - static TfLiteRegistration r = {}; - r.prepare = mul::Prepare; - r.invoke = mul::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/mul::Prepare, + /*invoke=*/mul::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/neg.cc b/tensorflow/lite/micro/kernels/neg.cc index aba04215028..c94c36ef8e6 100644 --- a/tensorflow/lite/micro/kernels/neg.cc +++ b/tensorflow/lite/micro/kernels/neg.cc @@ -48,8 +48,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace neg TfLiteRegistration* Register_NEG() { - static TfLiteRegistration r = {}; - r.invoke = neg::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/neg::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/pack.cc b/tensorflow/lite/micro/kernels/pack.cc index 3c47ce86f44..de50912b743 100644 --- a/tensorflow/lite/micro/kernels/pack.cc +++ b/tensorflow/lite/micro/kernels/pack.cc @@ -113,9 +113,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace pack TfLiteRegistration* Register_PACK() { - static TfLiteRegistration r = {}; - r.prepare = pack::Prepare; - r.invoke = pack::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/pack::Prepare, + /*invoke=*/pack::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/pad.cc b/tensorflow/lite/micro/kernels/pad.cc index 6b686da51d3..20e68802633 100644 --- a/tensorflow/lite/micro/kernels/pad.cc +++ b/tensorflow/lite/micro/kernels/pad.cc @@ -208,17 +208,27 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace pad TfLiteRegistration* Register_PAD() { - static TfLiteRegistration r = {}; - r.prepare = pad::Prepare; - r.invoke = pad::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/pad::Prepare, + /*invoke=*/pad::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } // Also register Pad as PadV2. TfLiteRegistration* Register_PADV2() { - static TfLiteRegistration r = {}; - r.prepare = pad::Prepare; - r.invoke = pad::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/pad::Prepare, + /*invoke=*/pad::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/pooling.cc b/tensorflow/lite/micro/kernels/pooling.cc index 6349f86e5bb..4b0b150d89a 100644 --- a/tensorflow/lite/micro/kernels/pooling.cc +++ b/tensorflow/lite/micro/kernels/pooling.cc @@ -219,20 +219,26 @@ TfLiteStatus MaxEval(TfLiteContext* context, TfLiteNode* node) { } // namespace pooling TfLiteRegistration* Register_AVERAGE_POOL_2D() { - static TfLiteRegistration r = {}; - r.init = pooling::Init; - r.free = pooling::Free; - r.prepare = pooling::Prepare; - r.invoke = pooling::AverageEval; + static TfLiteRegistration r = {/*init=*/pooling::Init, + /*free=*/pooling::Free, + /*prepare=*/pooling::Prepare, + /*invoke=*/pooling::AverageEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_MAX_POOL_2D() { - static TfLiteRegistration r = {}; - r.init = pooling::Init; - r.free = pooling::Free; - r.prepare = pooling::Prepare; - r.invoke = pooling::MaxEval; + static TfLiteRegistration r = {/*init=*/pooling::Init, + /*free=*/pooling::Free, + /*prepare=*/pooling::Prepare, + /*invoke=*/pooling::MaxEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/portable_optimized/depthwise_conv.cc b/tensorflow/lite/micro/kernels/portable_optimized/depthwise_conv.cc index 49f8ab8ca2a..edb7fb0e110 100644 --- a/tensorflow/lite/micro/kernels/portable_optimized/depthwise_conv.cc +++ b/tensorflow/lite/micro/kernels/portable_optimized/depthwise_conv.cc @@ -509,11 +509,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace depthwise_conv TfLiteRegistration* Register_DEPTHWISE_CONV_2D() { - static TfLiteRegistration r = {}; - r.init = depthwise_conv::Init; - r.free = depthwise_conv::Free; - r.prepare = depthwise_conv::Prepare; - r.invoke = depthwise_conv::Eval; + static TfLiteRegistration r = {/*init=*/depthwise_conv::Init, + /*free=*/depthwise_conv::Free, + /*prepare=*/depthwise_conv::Prepare, + /*invoke=*/depthwise_conv::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/prelu.cc b/tensorflow/lite/micro/kernels/prelu.cc index d8e6360df96..a20d2c88225 100644 --- a/tensorflow/lite/micro/kernels/prelu.cc +++ b/tensorflow/lite/micro/kernels/prelu.cc @@ -105,9 +105,14 @@ TfLiteStatus PreluEval(TfLiteContext* context, TfLiteNode* node) { } // namespace activations TfLiteRegistration* Register_PRELU() { - static TfLiteRegistration r = {}; - r.prepare = activations::PreluPrepare; - r.invoke = activations::PreluEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/activations::PreluPrepare, + /*invoke=*/activations::PreluEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/quantize.cc b/tensorflow/lite/micro/kernels/quantize.cc index e394a227a98..7f15c600e5f 100644 --- a/tensorflow/lite/micro/kernels/quantize.cc +++ b/tensorflow/lite/micro/kernels/quantize.cc @@ -119,11 +119,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { // AffineQuantize takes scale and zero point and quantizes the float value to // quantized output, in int8 or uint8 format. TfLiteRegistration* Register_QUANTIZE() { - static TfLiteRegistration r = {}; - r.init = quantize::Init; - r.free = quantize::Free; - r.prepare = quantize::Prepare; - r.invoke = quantize::Eval; + static TfLiteRegistration r = {/*init=*/quantize::Init, + /*free=*/quantize::Free, + /*prepare=*/quantize::Prepare, + /*invoke=*/quantize::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/reduce.cc b/tensorflow/lite/micro/kernels/reduce.cc index 0705292d49d..09894ddc8b1 100644 --- a/tensorflow/lite/micro/kernels/reduce.cc +++ b/tensorflow/lite/micro/kernels/reduce.cc @@ -120,11 +120,14 @@ TfLiteStatus EvalMean(TfLiteContext* context, TfLiteNode* node) { } // namespace reduce TfLiteRegistration* Register_MEAN() { - static TfLiteRegistration r = {}; - r.init = nullptr; - r.free = nullptr; - r.prepare = reduce::PrepareMeanOrSum; - r.invoke = reduce::EvalMean; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/reduce::PrepareMeanOrSum, + /*invoke=*/reduce::EvalMean, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } } // namespace micro diff --git a/tensorflow/lite/micro/kernels/reshape.cc b/tensorflow/lite/micro/kernels/reshape.cc index 376c612ef59..407682a6ff4 100644 --- a/tensorflow/lite/micro/kernels/reshape.cc +++ b/tensorflow/lite/micro/kernels/reshape.cc @@ -90,9 +90,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace reshape TfLiteRegistration* Register_RESHAPE() { - static TfLiteRegistration r = {}; - r.prepare = reshape::Prepare; - r.invoke = reshape::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/reshape::Prepare, + /*invoke=*/reshape::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/round.cc b/tensorflow/lite/micro/kernels/round.cc index f4e0586ff61..b88c9fe0581 100644 --- a/tensorflow/lite/micro/kernels/round.cc +++ b/tensorflow/lite/micro/kernels/round.cc @@ -54,9 +54,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace round TfLiteRegistration* Register_ROUND() { - static TfLiteRegistration r = {}; - r.prepare = round::Prepare; - r.invoke = round::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/round::Prepare, + /*invoke=*/round::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/split.cc b/tensorflow/lite/micro/kernels/split.cc index 6aaa37f1e96..ab8105f57e6 100644 --- a/tensorflow/lite/micro/kernels/split.cc +++ b/tensorflow/lite/micro/kernels/split.cc @@ -116,9 +116,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace split TfLiteRegistration* Register_SPLIT() { - static TfLiteRegistration r = {}; - r.prepare = split::Prepare; - r.invoke = split::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/split::Prepare, + /*invoke=*/split::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/strided_slice.cc b/tensorflow/lite/micro/kernels/strided_slice.cc index eab687e199f..1a1e606d518 100644 --- a/tensorflow/lite/micro/kernels/strided_slice.cc +++ b/tensorflow/lite/micro/kernels/strided_slice.cc @@ -169,9 +169,15 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace strided_slice TfLiteRegistration* Register_STRIDED_SLICE() { - static TfLiteRegistration r = {}; - r.prepare = strided_slice::Prepare; - r.invoke = strided_slice::Eval; + static TfLiteRegistration r = { + /*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/strided_slice::Prepare, + /*invoke=*/strided_slice::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/sub.cc b/tensorflow/lite/micro/kernels/sub.cc index 3dbe4c202f4..cb33455d0db 100644 --- a/tensorflow/lite/micro/kernels/sub.cc +++ b/tensorflow/lite/micro/kernels/sub.cc @@ -195,11 +195,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace sub TfLiteRegistration* Register_SUB() { - static TfLiteRegistration r = {}; - r.init = sub::Init; - r.free = sub::Free; - r.prepare = sub::Prepare; - r.invoke = sub::Eval; + static TfLiteRegistration r = {/*init=*/sub::Init, + /*free=*/sub::Free, + /*prepare=*/sub::Prepare, + /*invoke=*/sub::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/svdf.cc b/tensorflow/lite/micro/kernels/svdf.cc index 8146bca9d34..c6272227c81 100644 --- a/tensorflow/lite/micro/kernels/svdf.cc +++ b/tensorflow/lite/micro/kernels/svdf.cc @@ -529,11 +529,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace svdf TfLiteRegistration* Register_SVDF() { - static TfLiteRegistration r = {}; - r.init = svdf::Init; - r.free = svdf::Free; - r.prepare = svdf::Prepare; - r.invoke = svdf::Eval; + static TfLiteRegistration r = {/*init=*/svdf::Init, + /*free=*/svdf::Free, + /*prepare=*/svdf::Prepare, + /*invoke=*/svdf::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/unpack.cc b/tensorflow/lite/micro/kernels/unpack.cc index 9ca69f7bb3a..1ddd10f7b58 100644 --- a/tensorflow/lite/micro/kernels/unpack.cc +++ b/tensorflow/lite/micro/kernels/unpack.cc @@ -106,9 +106,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace unpack TfLiteRegistration* Register_UNPACK() { - static TfLiteRegistration r = {}; - r.prepare = unpack::Prepare; - r.invoke = unpack::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/unpack::Prepare, + /*invoke=*/unpack::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/xtensa_hifi/activations.cc b/tensorflow/lite/micro/kernels/xtensa_hifi/activations.cc index d22912959ae..9c891712468 100644 --- a/tensorflow/lite/micro/kernels/xtensa_hifi/activations.cc +++ b/tensorflow/lite/micro/kernels/xtensa_hifi/activations.cc @@ -223,16 +223,26 @@ TfLiteStatus Relu6Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace activations TfLiteRegistration* Register_RELU() { - static TfLiteRegistration r = {}; - r.prepare = activations::ReluPrepare; - r.invoke = activations::ReluEval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/activations::ReluPrepare, + /*invoke=*/activations::ReluEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_RELU6() { - static TfLiteRegistration r = {}; - r.prepare = activations::Relu6Prepare; - r.invoke = activations::Relu6Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/activations::Relu6Prepare, + /*invoke=*/activations::Relu6Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/xtensa_hifi/conv.cc b/tensorflow/lite/micro/kernels/xtensa_hifi/conv.cc index 9536d5ec0e2..b32ccb22edb 100755 --- a/tensorflow/lite/micro/kernels/xtensa_hifi/conv.cc +++ b/tensorflow/lite/micro/kernels/xtensa_hifi/conv.cc @@ -538,9 +538,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace conv TfLiteRegistration* Register_CONV_2D() { - static TfLiteRegistration r = {}; - r.prepare = conv::Prepare; - r.invoke = conv::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/conv::Prepare, + /*invoke=*/conv::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/xtensa_hifi/depthwise_conv.cc b/tensorflow/lite/micro/kernels/xtensa_hifi/depthwise_conv.cc index fdb66d6cbc4..0e533fc4c83 100755 --- a/tensorflow/lite/micro/kernels/xtensa_hifi/depthwise_conv.cc +++ b/tensorflow/lite/micro/kernels/xtensa_hifi/depthwise_conv.cc @@ -547,11 +547,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace depthwise_conv TfLiteRegistration* Register_DEPTHWISE_CONV_2D() { - static TfLiteRegistration r = {}; - r.init = depthwise_conv::Init; - r.free = depthwise_conv::Free; - r.prepare = depthwise_conv::Prepare; - r.invoke = depthwise_conv::Eval; + static TfLiteRegistration r = {/*init=*/depthwise_conv::Init, + /*free=*/depthwise_conv::Free, + /*prepare=*/depthwise_conv::Prepare, + /*invoke=*/depthwise_conv::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/xtensa_hifi/floor.cc b/tensorflow/lite/micro/kernels/xtensa_hifi/floor.cc index 5358ce1780a..7ea2c2c906e 100644 --- a/tensorflow/lite/micro/kernels/xtensa_hifi/floor.cc +++ b/tensorflow/lite/micro/kernels/xtensa_hifi/floor.cc @@ -71,8 +71,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace floor TfLiteRegistration* Register_FLOOR() { - static TfLiteRegistration r = {}; - r.invoke = floor::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/nullptr, + /*invoke=*/floor::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/xtensa_hifi/fully_connected.cc b/tensorflow/lite/micro/kernels/xtensa_hifi/fully_connected.cc index 1a576cd7e9c..f008a867e4c 100644 --- a/tensorflow/lite/micro/kernels/xtensa_hifi/fully_connected.cc +++ b/tensorflow/lite/micro/kernels/xtensa_hifi/fully_connected.cc @@ -264,11 +264,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace fully_connected TfLiteRegistration* Register_FULLY_CONNECTED() { - static TfLiteRegistration r = {}; - r.init = fully_connected::Init; - r.free = fully_connected::Free; - r.prepare = fully_connected::Prepare; - r.invoke = fully_connected::Eval; + static TfLiteRegistration r = {/*init=*/fully_connected::Init, + /*free=*/fully_connected::Free, + /*prepare=*/fully_connected::Prepare, + /*invoke=*/fully_connected::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/xtensa_hifi/logistic.cc b/tensorflow/lite/micro/kernels/xtensa_hifi/logistic.cc index 80a4f922409..8a612bcf691 100644 --- a/tensorflow/lite/micro/kernels/xtensa_hifi/logistic.cc +++ b/tensorflow/lite/micro/kernels/xtensa_hifi/logistic.cc @@ -115,9 +115,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace activations TfLiteRegistration* Register_LOGISTIC() { - static TfLiteRegistration r = {}; - r.prepare = activations::Prepare; - r.invoke = activations::Eval; + static TfLiteRegistration r = {/*init=*/nullptr, + /*free=*/nullptr, + /*prepare=*/activations::Prepare, + /*invoke=*/activations::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } } // namespace micro diff --git a/tensorflow/lite/micro/kernels/xtensa_hifi/pooling.cc b/tensorflow/lite/micro/kernels/xtensa_hifi/pooling.cc index 53d7d5f2031..a3a56a5468a 100755 --- a/tensorflow/lite/micro/kernels/xtensa_hifi/pooling.cc +++ b/tensorflow/lite/micro/kernels/xtensa_hifi/pooling.cc @@ -558,20 +558,26 @@ TfLiteStatus MaxEval(TfLiteContext* context, TfLiteNode* node) { } // namespace pooling TfLiteRegistration* Register_AVERAGE_POOL_2D() { - static TfLiteRegistration r = {}; - r.init = pooling::Init; - r.free = pooling::Free; - r.prepare = pooling::Prepare; - r.invoke = pooling::AverageEval; + static TfLiteRegistration r = {/*init=*/pooling::Init, + /*free=*/pooling::Free, + /*prepare=*/pooling::Prepare, + /*invoke=*/pooling::AverageEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } TfLiteRegistration* Register_MAX_POOL_2D() { - static TfLiteRegistration r = {}; - r.init = pooling::Init; - r.free = pooling::Free; - r.prepare = pooling::Prepare; - r.invoke = pooling::MaxEval; + static TfLiteRegistration r = {/*init=*/pooling::Init, + /*free=*/pooling::Free, + /*prepare=*/pooling::Prepare, + /*invoke=*/pooling::MaxEval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/xtensa_hifi/svdf.cc b/tensorflow/lite/micro/kernels/xtensa_hifi/svdf.cc index e0fa6db5b0b..d2cda20ddf7 100644 --- a/tensorflow/lite/micro/kernels/xtensa_hifi/svdf.cc +++ b/tensorflow/lite/micro/kernels/xtensa_hifi/svdf.cc @@ -566,11 +566,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } // namespace svdf TfLiteRegistration* Register_SVDF() { - static TfLiteRegistration r = {}; - r.init = svdf::Init; - r.free = svdf::Free; - r.prepare = svdf::Prepare; - r.invoke = svdf::Eval; + static TfLiteRegistration r = {/*init=*/svdf::Init, + /*free=*/svdf::Free, + /*prepare=*/svdf::Prepare, + /*invoke=*/svdf::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; } diff --git a/tensorflow/lite/micro/kernels/xtensa_hifimini/quantize.cc b/tensorflow/lite/micro/kernels/xtensa_hifimini/quantize.cc index 40102503f97..d65fa4df089 100644 --- a/tensorflow/lite/micro/kernels/xtensa_hifimini/quantize.cc +++ b/tensorflow/lite/micro/kernels/xtensa_hifimini/quantize.cc @@ -168,11 +168,14 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { // AffineQuantize takes scale and zero point and quantizes the float value to // quantized output, in int8 or uint8 format. TfLiteRegistration* Register_QUANTIZE() { - static TfLiteRegistration r = {}; - r.init = quantize::Init; - r.free = quantize::Free; - r.prepare = quantize::Prepare; - r.invoke = quantize::Eval; + static TfLiteRegistration r = {/*init=*/quantize::Init, + /*free=*/quantize::Free, + /*prepare=*/quantize::Prepare, + /*invoke=*/quantize::Eval, + /*profiling_string=*/nullptr, + /*builtin_code=*/0, + /*custom_name=*/nullptr, + /*version=*/0}; return &r; }