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;