Automated sync from github.com/tensorflow/tensorflow (#2553) BUG=automated sync from upstream NO_CHECK_TFLITE_FILES=automated sync from upstream
diff --git a/tensorflow/lite/builtin_ops.h b/tensorflow/lite/builtin_ops.h index a8d6836..5dba0f6 100644 --- a/tensorflow/lite/builtin_ops.h +++ b/tensorflow/lite/builtin_ops.h
@@ -233,6 +233,7 @@ kTfLiteBuiltinDilate = 203, kTfLiteBuiltinStablehloRngBitGenerator = 204, kTfLiteBuiltinReduceWindow = 205, + kTfLiteBuiltinStablehloComposite = 206, } TfLiteBuiltinOperator; #ifdef __cplusplus
diff --git a/tensorflow/lite/core/api/flatbuffer_conversions.cc b/tensorflow/lite/core/api/flatbuffer_conversions.cc index d36c2b6..5425030 100644 --- a/tensorflow/lite/core/api/flatbuffer_conversions.cc +++ b/tensorflow/lite/core/api/flatbuffer_conversions.cc
@@ -925,6 +925,7 @@ case BuiltinOperator_STABLEHLO_SLICE: case BuiltinOperator_STABLEHLO_BROADCAST_IN_DIM: case BuiltinOperator_STABLEHLO_CONVOLUTION: + case BuiltinOperator_STABLEHLO_COMPOSITE: case BuiltinOperator_STABLEHLO_LOGISTIC: case BuiltinOperator_STABLEHLO_ADD: case BuiltinOperator_STABLEHLO_DIVIDE:
diff --git a/tensorflow/lite/core/macros.h b/tensorflow/lite/core/macros.h index 1bab15b..f1d10ae 100644 --- a/tensorflow/lite/core/macros.h +++ b/tensorflow/lite/core/macros.h
@@ -74,7 +74,7 @@ inline constexpr char tflite_metadata_min_runtime_version[] = "min_runtime_version"; // the stablehlo op version is supported by the tflite runtime -inline constexpr char tflite_supported_stablehlo_version[] = "0.14.0"; +inline constexpr char tflite_supported_stablehlo_version[] = "0.19.0"; #endif #endif // TENSORFLOW_LITE_CORE_MACROS_H_
diff --git a/tensorflow/lite/python/schema_py_generated.py b/tensorflow/lite/python/schema_py_generated.py index e3a26ed..52999cb 100755 --- a/tensorflow/lite/python/schema_py_generated.py +++ b/tensorflow/lite/python/schema_py_generated.py
@@ -273,6 +273,7 @@ DILATE = 203 STABLEHLO_RNG_BIT_GENERATOR = 204 REDUCE_WINDOW = 205 + STABLEHLO_COMPOSITE = 206 class BuiltinOptions(object): @@ -685,6 +686,7 @@ DilateOptions = 18 StablehloRngBitGeneratorOptions = 19 ReduceWindowOptions = 20 + StableHLOCompositeOptions = 21 def BuiltinOptions2Creator(unionType, table): from flatbuffers.table import Table @@ -730,6 +732,8 @@ return StablehloRngBitGeneratorOptionsT.InitFromBuf(table.Bytes, table.Pos) if unionType == BuiltinOptions2().ReduceWindowOptions: return ReduceWindowOptionsT.InitFromBuf(table.Bytes, table.Pos) + if unionType == BuiltinOptions2().StableHLOCompositeOptions: + return StableHLOCompositeOptionsT.InitFromBuf(table.Bytes, table.Pos) return None @@ -16520,6 +16524,180 @@ return operatorCode +class StableHLOCompositeOptions(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAs(cls, buf, offset=0): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = StableHLOCompositeOptions() + x.Init(buf, n + offset) + return x + + @classmethod + def GetRootAsStableHLOCompositeOptions(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod + def StableHLOCompositeOptionsBufferHasIdentifier(cls, buf, offset, size_prefixed=False): + return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x46\x4C\x33", size_prefixed=size_prefixed) + + # StableHLOCompositeOptions + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # StableHLOCompositeOptions + def Name(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.String(o + self._tab.Pos) + return None + + # StableHLOCompositeOptions + def DecompositionSubgraphIndex(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) + return 0 + + # StableHLOCompositeOptions + def CompositeAttributes(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Uint8Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 1)) + return 0 + + # StableHLOCompositeOptions + def CompositeAttributesAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Uint8Flags, o) + return 0 + + # StableHLOCompositeOptions + def CompositeAttributesLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # StableHLOCompositeOptions + def CompositeAttributesIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + return o == 0 + + # StableHLOCompositeOptions + def CompositeAttributesFormat(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Int8Flags, o + self._tab.Pos) + return 0 + + # StableHLOCompositeOptions + def Version(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) + return 0 + +def StableHLOCompositeOptionsStart(builder): + builder.StartObject(5) + +def StableHLOCompositeOptionsAddName(builder, name): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def StableHLOCompositeOptionsAddDecompositionSubgraphIndex(builder, decompositionSubgraphIndex): + builder.PrependInt32Slot(1, decompositionSubgraphIndex, 0) + +def StableHLOCompositeOptionsAddCompositeAttributes(builder, compositeAttributes): + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(compositeAttributes), 0) + +def StableHLOCompositeOptionsStartCompositeAttributesVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def StableHLOCompositeOptionsAddCompositeAttributesFormat(builder, compositeAttributesFormat): + builder.PrependInt8Slot(3, compositeAttributesFormat, 0) + +def StableHLOCompositeOptionsAddVersion(builder, version): + builder.PrependInt32Slot(4, version, 0) + +def StableHLOCompositeOptionsEnd(builder): + return builder.EndObject() + + +try: + from typing import List +except: + pass + +class StableHLOCompositeOptionsT(object): + + # StableHLOCompositeOptionsT + def __init__(self): + self.name = None # type: str + self.decompositionSubgraphIndex = 0 # type: int + self.compositeAttributes = None # type: List[int] + self.compositeAttributesFormat = 0 # type: int + self.version = 0 # type: int + + @classmethod + def InitFromBuf(cls, buf, pos): + stableHlocompositeOptions = StableHLOCompositeOptions() + stableHlocompositeOptions.Init(buf, pos) + return cls.InitFromObj(stableHlocompositeOptions) + + @classmethod + def InitFromPackedBuf(cls, buf, pos=0): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos) + return cls.InitFromBuf(buf, pos+n) + + @classmethod + def InitFromObj(cls, stableHlocompositeOptions): + x = StableHLOCompositeOptionsT() + x._UnPack(stableHlocompositeOptions) + return x + + # StableHLOCompositeOptionsT + def _UnPack(self, stableHlocompositeOptions): + if stableHlocompositeOptions is None: + return + self.name = stableHlocompositeOptions.Name() + self.decompositionSubgraphIndex = stableHlocompositeOptions.DecompositionSubgraphIndex() + if not stableHlocompositeOptions.CompositeAttributesIsNone(): + if np is None: + self.compositeAttributes = [] + for i in range(stableHlocompositeOptions.CompositeAttributesLength()): + self.compositeAttributes.append(stableHlocompositeOptions.CompositeAttributes(i)) + else: + self.compositeAttributes = stableHlocompositeOptions.CompositeAttributesAsNumpy() + self.compositeAttributesFormat = stableHlocompositeOptions.CompositeAttributesFormat() + self.version = stableHlocompositeOptions.Version() + + # StableHLOCompositeOptionsT + def Pack(self, builder): + if self.name is not None: + name = builder.CreateString(self.name) + if self.compositeAttributes is not None: + if np is not None and type(self.compositeAttributes) is np.ndarray: + compositeAttributes = builder.CreateNumpyVector(self.compositeAttributes) + else: + StableHLOCompositeOptionsStartCompositeAttributesVector(builder, len(self.compositeAttributes)) + for i in reversed(range(len(self.compositeAttributes))): + builder.PrependUint8(self.compositeAttributes[i]) + compositeAttributes = builder.EndVector() + StableHLOCompositeOptionsStart(builder) + if self.name is not None: + StableHLOCompositeOptionsAddName(builder, name) + StableHLOCompositeOptionsAddDecompositionSubgraphIndex(builder, self.decompositionSubgraphIndex) + if self.compositeAttributes is not None: + StableHLOCompositeOptionsAddCompositeAttributes(builder, compositeAttributes) + StableHLOCompositeOptionsAddCompositeAttributesFormat(builder, self.compositeAttributesFormat) + StableHLOCompositeOptionsAddVersion(builder, self.version) + stableHlocompositeOptions = StableHLOCompositeOptionsEnd(builder) + return stableHlocompositeOptions + + class Operator(object): __slots__ = ['_tab'] @@ -16821,7 +16999,7 @@ self.largeCustomOptionsOffset = 0 # type: int self.largeCustomOptionsSize = 0 # type: int self.builtinOptions2Type = 0 # type: int - self.builtinOptions2 = None # type: Union[None, StablehloConcatenateOptionsT, StablehloBroadcastInDimOptionsT, StablehloSliceOptionsT, StablehloConvolutionOptionsT, StablehloCustomCallOptionsT, StablehloReduceOptionsT, StablehloScatterOptionsT, StablehloCompareOptionsT, StablehloDynamicSliceOptionsT, StablehloPadOptionsT, StablehloIotaOptionsT, StablehloDotGeneralOptionsT, StablehloReduceWindowOptionsT, StablehloSortOptionsT, StablehloWhileOptionsT, StablehloGatherOptionsT, StablehloTransposeOptionsT, DilateOptionsT, StablehloRngBitGeneratorOptionsT, ReduceWindowOptionsT] + self.builtinOptions2 = None # type: Union[None, StablehloConcatenateOptionsT, StablehloBroadcastInDimOptionsT, StablehloSliceOptionsT, StablehloConvolutionOptionsT, StablehloCustomCallOptionsT, StablehloReduceOptionsT, StablehloScatterOptionsT, StablehloCompareOptionsT, StablehloDynamicSliceOptionsT, StablehloPadOptionsT, StablehloIotaOptionsT, StablehloDotGeneralOptionsT, StablehloReduceWindowOptionsT, StablehloSortOptionsT, StablehloWhileOptionsT, StablehloGatherOptionsT, StablehloTransposeOptionsT, DilateOptionsT, StablehloRngBitGeneratorOptionsT, ReduceWindowOptionsT, StableHLOCompositeOptionsT] @classmethod def InitFromBuf(cls, buf, pos):
diff --git a/tensorflow/lite/schema/schema.fbs b/tensorflow/lite/schema/schema.fbs index fe9ee4c..7ab78be 100644 --- a/tensorflow/lite/schema/schema.fbs +++ b/tensorflow/lite/schema/schema.fbs
@@ -471,6 +471,7 @@ DILATE = 203, STABLEHLO_RNG_BIT_GENERATOR = 204, REDUCE_WINDOW = 205 (deprecated), + STABLEHLO_COMPOSITE = 206, // WARNING: No runtime support } // LINT.ThenChange(nnapi_linter/linter.proto) @@ -628,6 +629,7 @@ DilateOptions, StablehloRngBitGeneratorOptions, ReduceWindowOptions (deprecated), + StableHLOCompositeOptions, } table StablehloGatherOptions{ @@ -1487,6 +1489,14 @@ FLEXBUFFERS = 0, } +table StableHLOCompositeOptions { + name:string; + decomposition_subgraph_index:int32; + composite_attributes:[ubyte]; + composite_attributes_format:CustomOptionsFormat; + version:int32; +} + // An operator takes tensors as inputs and outputs. The type of operation being // performed is determined by an index into the list of valid OperatorCodes, // while the specifics of each operations is configured using builtin_options
diff --git a/tensorflow/lite/schema/schema_generated.h b/tensorflow/lite/schema/schema_generated.h index a420de0..d728617 100755 --- a/tensorflow/lite/schema/schema_generated.h +++ b/tensorflow/lite/schema/schema_generated.h
@@ -639,6 +639,10 @@ struct OperatorCodeBuilder; struct OperatorCodeT; +struct StableHLOCompositeOptions; +struct StableHLOCompositeOptionsBuilder; +struct StableHLOCompositeOptionsT; + struct Operator; struct OperatorBuilder; struct OperatorT; @@ -1201,11 +1205,12 @@ BuiltinOperator_DILATE = 203, BuiltinOperator_STABLEHLO_RNG_BIT_GENERATOR = 204, BuiltinOperator_REDUCE_WINDOW = 205, + BuiltinOperator_STABLEHLO_COMPOSITE = 206, BuiltinOperator_MIN = BuiltinOperator_ADD, - BuiltinOperator_MAX = BuiltinOperator_REDUCE_WINDOW + BuiltinOperator_MAX = BuiltinOperator_STABLEHLO_COMPOSITE }; -inline const BuiltinOperator (&EnumValuesBuiltinOperator())[206] { +inline const BuiltinOperator (&EnumValuesBuiltinOperator())[207] { static const BuiltinOperator values[] = { BuiltinOperator_ADD, BuiltinOperator_AVERAGE_POOL_2D, @@ -1412,13 +1417,14 @@ BuiltinOperator_STABLEHLO_TRANSPOSE, BuiltinOperator_DILATE, BuiltinOperator_STABLEHLO_RNG_BIT_GENERATOR, - BuiltinOperator_REDUCE_WINDOW + BuiltinOperator_REDUCE_WINDOW, + BuiltinOperator_STABLEHLO_COMPOSITE }; return values; } inline const char * const *EnumNamesBuiltinOperator() { - static const char * const names[207] = { + static const char * const names[208] = { "ADD", "AVERAGE_POOL_2D", "CONCATENATION", @@ -1625,13 +1631,14 @@ "DILATE", "STABLEHLO_RNG_BIT_GENERATOR", "REDUCE_WINDOW", + "STABLEHLO_COMPOSITE", nullptr }; return names; } inline const char *EnumNameBuiltinOperator(BuiltinOperator e) { - if (::flatbuffers::IsOutRange(e, BuiltinOperator_ADD, BuiltinOperator_REDUCE_WINDOW)) return ""; + if (::flatbuffers::IsOutRange(e, BuiltinOperator_ADD, BuiltinOperator_STABLEHLO_COMPOSITE)) return ""; const size_t index = static_cast<size_t>(e); return EnumNamesBuiltinOperator()[index]; } @@ -4122,11 +4129,12 @@ BuiltinOptions2_DilateOptions = 18, BuiltinOptions2_StablehloRngBitGeneratorOptions = 19, BuiltinOptions2_ReduceWindowOptions = 20, + BuiltinOptions2_StableHLOCompositeOptions = 21, BuiltinOptions2_MIN = BuiltinOptions2_NONE, - BuiltinOptions2_MAX = BuiltinOptions2_ReduceWindowOptions + BuiltinOptions2_MAX = BuiltinOptions2_StableHLOCompositeOptions }; -inline const BuiltinOptions2 (&EnumValuesBuiltinOptions2())[21] { +inline const BuiltinOptions2 (&EnumValuesBuiltinOptions2())[22] { static const BuiltinOptions2 values[] = { BuiltinOptions2_NONE, BuiltinOptions2_StablehloConcatenateOptions, @@ -4148,13 +4156,14 @@ BuiltinOptions2_StablehloTransposeOptions, BuiltinOptions2_DilateOptions, BuiltinOptions2_StablehloRngBitGeneratorOptions, - BuiltinOptions2_ReduceWindowOptions + BuiltinOptions2_ReduceWindowOptions, + BuiltinOptions2_StableHLOCompositeOptions }; return values; } inline const char * const *EnumNamesBuiltinOptions2() { - static const char * const names[22] = { + static const char * const names[23] = { "NONE", "StablehloConcatenateOptions", "StablehloBroadcastInDimOptions", @@ -4176,13 +4185,14 @@ "DilateOptions", "StablehloRngBitGeneratorOptions", "ReduceWindowOptions", + "StableHLOCompositeOptions", nullptr }; return names; } inline const char *EnumNameBuiltinOptions2(BuiltinOptions2 e) { - if (::flatbuffers::IsOutRange(e, BuiltinOptions2_NONE, BuiltinOptions2_ReduceWindowOptions)) return ""; + if (::flatbuffers::IsOutRange(e, BuiltinOptions2_NONE, BuiltinOptions2_StableHLOCompositeOptions)) return ""; const size_t index = static_cast<size_t>(e); return EnumNamesBuiltinOptions2()[index]; } @@ -4271,6 +4281,10 @@ static const BuiltinOptions2 enum_value = BuiltinOptions2_ReduceWindowOptions; }; +template<> struct BuiltinOptions2Traits<tflite::StableHLOCompositeOptions> { + static const BuiltinOptions2 enum_value = BuiltinOptions2_StableHLOCompositeOptions; +}; + template<typename T> struct BuiltinOptions2UnionTraits { static const BuiltinOptions2 enum_value = BuiltinOptions2_NONE; }; @@ -4355,6 +4369,10 @@ static const BuiltinOptions2 enum_value = BuiltinOptions2_ReduceWindowOptions; }; +template<> struct BuiltinOptions2UnionTraits<tflite::StableHLOCompositeOptionsT> { + static const BuiltinOptions2 enum_value = BuiltinOptions2_StableHLOCompositeOptions; +}; + struct BuiltinOptions2Union { BuiltinOptions2 type; void *value; @@ -4545,6 +4563,14 @@ return type == BuiltinOptions2_ReduceWindowOptions ? reinterpret_cast<const tflite::ReduceWindowOptionsT *>(value) : nullptr; } + tflite::StableHLOCompositeOptionsT *AsStableHLOCompositeOptions() { + return type == BuiltinOptions2_StableHLOCompositeOptions ? + reinterpret_cast<tflite::StableHLOCompositeOptionsT *>(value) : nullptr; + } + const tflite::StableHLOCompositeOptionsT *AsStableHLOCompositeOptions() const { + return type == BuiltinOptions2_StableHLOCompositeOptions ? + reinterpret_cast<const tflite::StableHLOCompositeOptionsT *>(value) : nullptr; + } }; bool VerifyBuiltinOptions2(::flatbuffers::Verifier &verifier, const void *obj, BuiltinOptions2 type); @@ -14598,6 +14624,122 @@ ::flatbuffers::Offset<OperatorCode> CreateOperatorCode(::flatbuffers::FlatBufferBuilder &_fbb, const OperatorCodeT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); +struct StableHLOCompositeOptionsT : public ::flatbuffers::NativeTable { + typedef StableHLOCompositeOptions TableType; + std::string name{}; + int32_t decomposition_subgraph_index = 0; + std::vector<uint8_t> composite_attributes{}; + tflite::CustomOptionsFormat composite_attributes_format = tflite::CustomOptionsFormat_FLEXBUFFERS; + int32_t version = 0; +}; + +struct StableHLOCompositeOptions FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef StableHLOCompositeOptionsT NativeTableType; + typedef StableHLOCompositeOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NAME = 4, + VT_DECOMPOSITION_SUBGRAPH_INDEX = 6, + VT_COMPOSITE_ATTRIBUTES = 8, + VT_COMPOSITE_ATTRIBUTES_FORMAT = 10, + VT_VERSION = 12 + }; + const ::flatbuffers::String *name() const { + return GetPointer<const ::flatbuffers::String *>(VT_NAME); + } + int32_t decomposition_subgraph_index() const { + return GetField<int32_t>(VT_DECOMPOSITION_SUBGRAPH_INDEX, 0); + } + const ::flatbuffers::Vector<uint8_t> *composite_attributes() const { + return GetPointer<const ::flatbuffers::Vector<uint8_t> *>(VT_COMPOSITE_ATTRIBUTES); + } + tflite::CustomOptionsFormat composite_attributes_format() const { + return static_cast<tflite::CustomOptionsFormat>(GetField<int8_t>(VT_COMPOSITE_ATTRIBUTES_FORMAT, 0)); + } + int32_t version() const { + return GetField<int32_t>(VT_VERSION, 0); + } + bool Verify(::flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_NAME) && + verifier.VerifyString(name()) && + VerifyField<int32_t>(verifier, VT_DECOMPOSITION_SUBGRAPH_INDEX, 4) && + VerifyOffset(verifier, VT_COMPOSITE_ATTRIBUTES) && + verifier.VerifyVector(composite_attributes()) && + VerifyField<int8_t>(verifier, VT_COMPOSITE_ATTRIBUTES_FORMAT, 1) && + VerifyField<int32_t>(verifier, VT_VERSION, 4) && + verifier.EndTable(); + } + StableHLOCompositeOptionsT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(StableHLOCompositeOptionsT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset<StableHLOCompositeOptions> Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StableHLOCompositeOptionsT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct StableHLOCompositeOptionsBuilder { + typedef StableHLOCompositeOptions Table; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { + fbb_.AddOffset(StableHLOCompositeOptions::VT_NAME, name); + } + void add_decomposition_subgraph_index(int32_t decomposition_subgraph_index) { + fbb_.AddElement<int32_t>(StableHLOCompositeOptions::VT_DECOMPOSITION_SUBGRAPH_INDEX, decomposition_subgraph_index, 0); + } + void add_composite_attributes(::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> composite_attributes) { + fbb_.AddOffset(StableHLOCompositeOptions::VT_COMPOSITE_ATTRIBUTES, composite_attributes); + } + void add_composite_attributes_format(tflite::CustomOptionsFormat composite_attributes_format) { + fbb_.AddElement<int8_t>(StableHLOCompositeOptions::VT_COMPOSITE_ATTRIBUTES_FORMAT, static_cast<int8_t>(composite_attributes_format), 0); + } + void add_version(int32_t version) { + fbb_.AddElement<int32_t>(StableHLOCompositeOptions::VT_VERSION, version, 0); + } + explicit StableHLOCompositeOptionsBuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + ::flatbuffers::Offset<StableHLOCompositeOptions> Finish() { + const auto end = fbb_.EndTable(start_); + auto o = ::flatbuffers::Offset<StableHLOCompositeOptions>(end); + return o; + } +}; + +inline ::flatbuffers::Offset<StableHLOCompositeOptions> CreateStableHLOCompositeOptions( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + int32_t decomposition_subgraph_index = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> composite_attributes = 0, + tflite::CustomOptionsFormat composite_attributes_format = tflite::CustomOptionsFormat_FLEXBUFFERS, + int32_t version = 0) { + StableHLOCompositeOptionsBuilder builder_(_fbb); + builder_.add_version(version); + builder_.add_composite_attributes(composite_attributes); + builder_.add_decomposition_subgraph_index(decomposition_subgraph_index); + builder_.add_name(name); + builder_.add_composite_attributes_format(composite_attributes_format); + return builder_.Finish(); +} + +inline ::flatbuffers::Offset<StableHLOCompositeOptions> CreateStableHLOCompositeOptionsDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, + const char *name = nullptr, + int32_t decomposition_subgraph_index = 0, + const std::vector<uint8_t> *composite_attributes = nullptr, + tflite::CustomOptionsFormat composite_attributes_format = tflite::CustomOptionsFormat_FLEXBUFFERS, + int32_t version = 0) { + auto name__ = name ? _fbb.CreateString(name) : 0; + auto composite_attributes__ = composite_attributes ? _fbb.CreateVector<uint8_t>(*composite_attributes) : 0; + return tflite::CreateStableHLOCompositeOptions( + _fbb, + name__, + decomposition_subgraph_index, + composite_attributes__, + composite_attributes_format, + version); +} + +::flatbuffers::Offset<StableHLOCompositeOptions> CreateStableHLOCompositeOptions(::flatbuffers::FlatBufferBuilder &_fbb, const StableHLOCompositeOptionsT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); + struct OperatorT : public ::flatbuffers::NativeTable { typedef Operator TableType; uint32_t opcode_index = 0; @@ -15110,6 +15252,9 @@ const tflite::ReduceWindowOptions *builtin_options_2_as_ReduceWindowOptions() const { return builtin_options_2_type() == tflite::BuiltinOptions2_ReduceWindowOptions ? static_cast<const tflite::ReduceWindowOptions *>(builtin_options_2()) : nullptr; } + const tflite::StableHLOCompositeOptions *builtin_options_2_as_StableHLOCompositeOptions() const { + return builtin_options_2_type() == tflite::BuiltinOptions2_StableHLOCompositeOptions ? static_cast<const tflite::StableHLOCompositeOptions *>(builtin_options_2()) : nullptr; + } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField<uint32_t>(verifier, VT_OPCODE_INDEX, 4) && @@ -15723,6 +15868,10 @@ return builtin_options_2_as_ReduceWindowOptions(); } +template<> inline const tflite::StableHLOCompositeOptions *Operator::builtin_options_2_as<tflite::StableHLOCompositeOptions>() const { + return builtin_options_2_as_StableHLOCompositeOptions(); +} + struct OperatorBuilder { typedef Operator Table; ::flatbuffers::FlatBufferBuilder &fbb_; @@ -20895,6 +21044,44 @@ _builtin_code); } +inline StableHLOCompositeOptionsT *StableHLOCompositeOptions::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr<StableHLOCompositeOptionsT>(new StableHLOCompositeOptionsT()); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void StableHLOCompositeOptions::UnPackTo(StableHLOCompositeOptionsT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = name(); if (_e) _o->name = _e->str(); } + { auto _e = decomposition_subgraph_index(); _o->decomposition_subgraph_index = _e; } + { auto _e = composite_attributes(); if (_e) { _o->composite_attributes.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->composite_attributes.begin()); } } + { auto _e = composite_attributes_format(); _o->composite_attributes_format = _e; } + { auto _e = version(); _o->version = _e; } +} + +inline ::flatbuffers::Offset<StableHLOCompositeOptions> StableHLOCompositeOptions::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StableHLOCompositeOptionsT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { + return CreateStableHLOCompositeOptions(_fbb, _o, _rehasher); +} + +inline ::flatbuffers::Offset<StableHLOCompositeOptions> CreateStableHLOCompositeOptions(::flatbuffers::FlatBufferBuilder &_fbb, const StableHLOCompositeOptionsT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const StableHLOCompositeOptionsT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name); + auto _decomposition_subgraph_index = _o->decomposition_subgraph_index; + auto _composite_attributes = _o->composite_attributes.size() ? _fbb.CreateVector(_o->composite_attributes) : 0; + auto _composite_attributes_format = _o->composite_attributes_format; + auto _version = _o->version; + return tflite::CreateStableHLOCompositeOptions( + _fbb, + _name, + _decomposition_subgraph_index, + _composite_attributes, + _composite_attributes_format, + _version); +} + inline OperatorT *Operator::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr<OperatorT>(new OperatorT()); UnPackTo(_o.get(), _resolver); @@ -24197,6 +24384,10 @@ auto ptr = reinterpret_cast<const tflite::ReduceWindowOptions *>(obj); return verifier.VerifyTable(ptr); } + case BuiltinOptions2_StableHLOCompositeOptions: { + auto ptr = reinterpret_cast<const tflite::StableHLOCompositeOptions *>(obj); + return verifier.VerifyTable(ptr); + } default: return true; } } @@ -24296,6 +24487,10 @@ auto ptr = reinterpret_cast<const tflite::ReduceWindowOptions *>(obj); return ptr->UnPack(resolver); } + case BuiltinOptions2_StableHLOCompositeOptions: { + auto ptr = reinterpret_cast<const tflite::StableHLOCompositeOptions *>(obj); + return ptr->UnPack(resolver); + } default: return nullptr; } } @@ -24383,6 +24578,10 @@ auto ptr = reinterpret_cast<const tflite::ReduceWindowOptionsT *>(value); return CreateReduceWindowOptions(_fbb, ptr, _rehasher).Union(); } + case BuiltinOptions2_StableHLOCompositeOptions: { + auto ptr = reinterpret_cast<const tflite::StableHLOCompositeOptionsT *>(value); + return CreateStableHLOCompositeOptions(_fbb, ptr, _rehasher).Union(); + } default: return 0; } } @@ -24469,6 +24668,10 @@ value = new tflite::ReduceWindowOptionsT(*reinterpret_cast<tflite::ReduceWindowOptionsT *>(u.value)); break; } + case BuiltinOptions2_StableHLOCompositeOptions: { + value = new tflite::StableHLOCompositeOptionsT(*reinterpret_cast<tflite::StableHLOCompositeOptionsT *>(u.value)); + break; + } default: break; } @@ -24576,6 +24779,11 @@ delete ptr; break; } + case BuiltinOptions2_StableHLOCompositeOptions: { + auto ptr = reinterpret_cast<tflite::StableHLOCompositeOptionsT *>(value); + delete ptr; + break; + } default: break; } value = nullptr;