Change the start and size of slice to tosa shape type

This offers dynamism support for slice op.

Change-Id: I4521c072c663a01e03e575e0cbbc8671c832f646
Signed-off-by: TatWai Chong <tatwai.chong@arm.com>
diff --git a/reference_model/src/ops/data_layout.h b/reference_model/src/ops/data_layout.h
index e085b8e..6ab5ebd 100644
--- a/reference_model/src/ops/data_layout.h
+++ b/reference_model/src/ops/data_layout.h
@@ -145,15 +145,18 @@
     virtual int checkTensorAttributes();
     virtual int eval();
 
-    using InEigenType  = typename GetEigenType<Dtype>::type;
-    using OutEigenType = typename GetEigenType<Dtype>::type;
-    using TIn          = Eigen::Tensor<InEigenType, Rank>;
-    using TOut         = Eigen::Tensor<OutEigenType, Rank>;
+    using InEigenType      = typename GetEigenType<Dtype>::type;
+    using InEigenShapeType = typename GetEigenType<TOSA_REF_TYPE_SHAPE>::type;
+    using OutEigenType     = typename GetEigenType<Dtype>::type;
+    using TIn              = Eigen::Tensor<InEigenType, Rank>;
+    using TInShape         = Eigen::Tensor<InEigenShapeType, 1>;
+    using TOut             = Eigen::Tensor<OutEigenType, Rank>;
 
 protected:
-    TosaSliceAttribute* attribute;
     Eigen::array<Eigen::Index, Rank> begin_array;
     Eigen::array<Eigen::Index, Rank> size_array;
+    TosaReference::TensorTemplate<TInShape>* start;
+    TosaReference::TensorTemplate<TInShape>* size;
     TosaReference::TensorTemplate<TIn>* in;
     TosaReference::TensorTemplate<TOut>* out;
 };