Add variable_name to tensors

Signed-off-by: Tai Ly <tai.ly@arm.com>
Change-Id: Ia142c8b1a9e0869daefb3eef71100fd0c2a0effc
diff --git a/include/tosa_generated.h b/include/tosa_generated.h
index b07fa8f..a81ff9c 100644
--- a/include/tosa_generated.h
+++ b/include/tosa_generated.h
@@ -2230,7 +2230,8 @@
     VT_TYPE = 8,
     VT_DATA = 10,
     VT_VARIABLE = 12,
-    VT_IS_UNRANKED = 14
+    VT_IS_UNRANKED = 14,
+    VT_VARIABLE_NAME = 16
   };
   const ::flatbuffers::String *name() const {
     return GetPointer<const ::flatbuffers::String *>(VT_NAME);
@@ -2250,6 +2251,9 @@
   bool is_unranked() const {
     return GetField<uint8_t>(VT_IS_UNRANKED, 0) != 0;
   }
+  const ::flatbuffers::String *variable_name() const {
+    return GetPointer<const ::flatbuffers::String *>(VT_VARIABLE_NAME);
+  }
   bool Verify(::flatbuffers::Verifier &verifier) const {
     return VerifyTableStart(verifier) &&
            VerifyOffset(verifier, VT_NAME) &&
@@ -2261,6 +2265,8 @@
            verifier.VerifyVector(data()) &&
            VerifyField<uint8_t>(verifier, VT_VARIABLE, 1) &&
            VerifyField<uint8_t>(verifier, VT_IS_UNRANKED, 1) &&
+           VerifyOffset(verifier, VT_VARIABLE_NAME) &&
+           verifier.VerifyString(variable_name()) &&
            verifier.EndTable();
   }
 };
@@ -2287,6 +2293,9 @@
   void add_is_unranked(bool is_unranked) {
     fbb_.AddElement<uint8_t>(TosaTensor::VT_IS_UNRANKED, static_cast<uint8_t>(is_unranked), 0);
   }
+  void add_variable_name(::flatbuffers::Offset<::flatbuffers::String> variable_name) {
+    fbb_.AddOffset(TosaTensor::VT_VARIABLE_NAME, variable_name);
+  }
   explicit TosaTensorBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
         : fbb_(_fbb) {
     start_ = fbb_.StartTable();
@@ -2305,8 +2314,10 @@
     tosa::DType type = tosa::DType_UNKNOWN,
     ::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> data = 0,
     bool variable = false,
-    bool is_unranked = false) {
+    bool is_unranked = false,
+    ::flatbuffers::Offset<::flatbuffers::String> variable_name = 0) {
   TosaTensorBuilder builder_(_fbb);
+  builder_.add_variable_name(variable_name);
   builder_.add_data(data);
   builder_.add_type(type);
   builder_.add_shape(shape);
@@ -2323,11 +2334,13 @@
     tosa::DType type = tosa::DType_UNKNOWN,
     const std::vector<uint8_t> *data = nullptr,
     bool variable = false,
-    bool is_unranked = false) {
+    bool is_unranked = false,
+    const char *variable_name = nullptr) {
   auto name__ = name ? _fbb.CreateString(name) : 0;
   auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
   if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
   auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
+  auto variable_name__ = variable_name ? _fbb.CreateString(variable_name) : 0;
   return tosa::CreateTosaTensor(
       _fbb,
       name__,
@@ -2335,7 +2348,8 @@
       type,
       data__,
       variable,
-      is_unranked);
+      is_unranked,
+      variable_name__);
 }
 
 struct TosaOperator FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
diff --git a/include/tosa_serialization_handler.h b/include/tosa_serialization_handler.h
index 814395b..e5448bc 100644
--- a/include/tosa_serialization_handler.h
+++ b/include/tosa_serialization_handler.h
@@ -150,14 +150,16 @@
                             const flatbuffers::Vector<int32_t>* shape,
                             DType dtype,
                             const flatbuffers::Vector<uint8_t>* data,
-                            const bool variable    = false,
-                            const bool is_unranked = false);
+                            const bool variable                      = false,
+                            const bool is_unranked                   = false,
+                            const flatbuffers::String* variable_name = NULL);
     TosaSerializationTensor(const std::string& name,
                             const std::vector<int32_t>& shape,
                             DType dtype,
                             const std::vector<uint8_t>& data,
-                            const bool variable    = false,
-                            const bool is_unranked = false);
+                            const bool variable              = false,
+                            const bool is_unranked           = false,
+                            const std::string& variable_name = "");
     TosaSerializationTensor();
     ~TosaSerializationTensor();
 
@@ -186,6 +188,10 @@
     {
         return _is_unranked;
     }
+    const std::string GetVariableName() const
+    {
+        return _variable_name;
+    }
 
     // modifier
     void SetDtype(DType dtype)
@@ -225,6 +231,7 @@
     bool _variable;              /* is this a variable tensor */
     std::vector<uint8_t> _data;  /* data array */
     bool _is_unranked;           /* whether this is an unranked tensor */
+    std::string _variable_name;  /* name for variable tensors */
 };
 
 class TosaSerializationOperator