Integrate CLTensorArgument

- Add CLTensorArgument to query the components and storages as OpenCL
variables (or by values when possible)
- Add caching mechanism in CLTensorArgument to keep track of the components and storages used
- Add unit tests

Resolves COMPMID-5787

Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Signed-off-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Change-Id: Ib39e1f77b097e5b907a296fe6b0d41bb4bcd4ffc
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9908
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gunes Bayir <gunes.bayir@arm.com>
Reviewed-by: Jakub Sujak <jakub.sujak@arm.com>
diff --git a/compute_kernel_writer/src/TensorUtils.h b/compute_kernel_writer/src/TensorUtils.h
index 84eca08..bb0af5c 100644
--- a/compute_kernel_writer/src/TensorUtils.h
+++ b/compute_kernel_writer/src/TensorUtils.h
@@ -22,8 +22,8 @@
  * SOFTWARE.
  */
 
-#ifndef COMPUTE_KERNEL_WRITER_SRC_TENSORUTILS_H
-#define COMPUTE_KERNEL_WRITER_SRC_TENSORUTILS_H
+#ifndef CKW_SRC_TENSORUTILS_H
+#define CKW_SRC_TENSORUTILS_H
 
 #include <cstdint>
 
@@ -33,7 +33,7 @@
 // Forward declarations
 enum class TensorDataLayout;
 enum class TensorDataLayoutComponent;
-enum class TensorComponent : uint32_t;
+enum class TensorComponentType : uint32_t;
 
 /** Get tensor dimension from a given data layout and data layout component
  *
@@ -42,7 +42,7 @@
  *
  * @return the @ref TensorComponent
  */
-TensorComponent get_tensor_dimension(TensorDataLayout layout, TensorDataLayoutComponent component);
+TensorComponentType get_tensor_dimension(TensorDataLayout layout, TensorDataLayoutComponent component);
 
 /** Get tensor stride from a given data layout and data layout component
  *
@@ -51,6 +51,7 @@
  *
  * @return the @ref TensorComponent
  */
-TensorComponent get_tensor_stride(TensorDataLayout layout, TensorDataLayoutComponent component);
+TensorComponentType get_tensor_stride(TensorDataLayout layout, TensorDataLayoutComponent component);
 } // namespace ckw
-#endif /* COMPUTE_KERNEL_WRITER_SRC_TENSORUTILS_H */
+
+#endif // CKW_SRC_TENSORUTILS_H