From 13c78a67a6a3d743352f0b6e349c52bf36e84468 Mon Sep 17 00:00:00 2001 From: Jerry Ge Date: Tue, 4 Oct 2022 20:32:39 -0700 Subject: [region] Add TosaSerializationRegion to serialization_lib - Rationale: add this fix to support constants access between multiple blocks by another layer of abstraction called Region - Changes: - flatbuffers schema update, regenerate header files - add TosaSerializationRegion for the handler - other relevant fixes Signed-off-by: Jerry Ge Change-Id: I4bb72503abfd629ae017d2f905184efbab244aa8 --- python/tosa/TosaGraph.py | 22 +++++++------- python/tosa/TosaRegion.py | 77 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 11 deletions(-) create mode 100644 python/tosa/TosaRegion.py (limited to 'python') diff --git a/python/tosa/TosaGraph.py b/python/tosa/TosaGraph.py index 164cef2..5ee3304 100644 --- a/python/tosa/TosaGraph.py +++ b/python/tosa/TosaGraph.py @@ -40,27 +40,27 @@ class TosaGraph(object): return None # TosaGraph - def Blocks(self, j): + def Regions(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from tosa.TosaBasicBlock import TosaBasicBlock - obj = TosaBasicBlock() + from tosa.TosaRegion import TosaRegion + obj = TosaRegion() obj.Init(self._tab.Bytes, x) return obj return None # TosaGraph - def BlocksLength(self): + def RegionsLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.VectorLen(o) return 0 # TosaGraph - def BlocksIsNone(self): + def RegionsIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) return o == 0 @@ -70,12 +70,12 @@ def Start(builder): def TosaGraphAddVersion(builder, version): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(version), 0) def AddVersion(builder, version): return TosaGraphAddVersion(builder, version) -def TosaGraphAddBlocks(builder, blocks): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(blocks), 0) -def AddBlocks(builder, blocks): - return TosaGraphAddBlocks(builder, blocks) -def TosaGraphStartBlocksVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartBlocksVector(builder, numElems): - return TosaGraphStartBlocksVector(builder, numElems) +def TosaGraphAddRegions(builder, regions): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(regions), 0) +def AddRegions(builder, regions): + return TosaGraphAddRegions(builder, regions) +def TosaGraphStartRegionsVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def StartRegionsVector(builder, numElems): + return TosaGraphStartRegionsVector(builder, numElems) def TosaGraphEnd(builder): return builder.EndObject() def End(builder): return TosaGraphEnd(builder) \ No newline at end of file diff --git a/python/tosa/TosaRegion.py b/python/tosa/TosaRegion.py new file mode 100644 index 0000000..e16ee0e --- /dev/null +++ b/python/tosa/TosaRegion.py @@ -0,0 +1,77 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tosa + +import flatbuffers +from flatbuffers.compat import import_numpy +np = import_numpy() + +class TosaRegion(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAs(cls, buf, offset=0): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = TosaRegion() + x.Init(buf, n + offset) + return x + + @classmethod + def GetRootAsTosaRegion(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod + def TosaRegionBufferHasIdentifier(cls, buf, offset, size_prefixed=False): + return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) + + # TosaRegion + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # TosaRegion + 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 + + # TosaRegion + def Blocks(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + x = self._tab.Vector(o) + x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 + x = self._tab.Indirect(x) + from tosa.TosaBasicBlock import TosaBasicBlock + obj = TosaBasicBlock() + obj.Init(self._tab.Bytes, x) + return obj + return None + + # TosaRegion + def BlocksLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # TosaRegion + def BlocksIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + return o == 0 + +def TosaRegionStart(builder): builder.StartObject(2) +def Start(builder): + return TosaRegionStart(builder) +def TosaRegionAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) +def AddName(builder, name): + return TosaRegionAddName(builder, name) +def TosaRegionAddBlocks(builder, blocks): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(blocks), 0) +def AddBlocks(builder, blocks): + return TosaRegionAddBlocks(builder, blocks) +def TosaRegionStartBlocksVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def StartBlocksVector(builder, numElems): + return TosaRegionStartBlocksVector(builder, numElems) +def TosaRegionEnd(builder): return builder.EndObject() +def End(builder): + return TosaRegionEnd(builder) \ No newline at end of file -- cgit v1.2.1