IVGCVSW-1951 Remove type templating from ClConstantWorkload

Change-Id: Ib2c9fe56c59aedabeff899a81a0afe260bd57c9f
diff --git a/src/backends/cl/workloads/CMakeLists.txt b/src/backends/cl/workloads/CMakeLists.txt
index 4d1c1bf..1e19bf5 100644
--- a/src/backends/cl/workloads/CMakeLists.txt
+++ b/src/backends/cl/workloads/CMakeLists.txt
@@ -10,15 +10,11 @@
     ClActivationUint8Workload.hpp
     ClAdditionWorkload.cpp
     ClAdditionWorkload.hpp
-    ClBaseConstantWorkload.cpp
-    ClBaseConstantWorkload.hpp
     ClBaseMergerWorkload.hpp
     ClBatchNormalizationFloatWorkload.cpp
     ClBatchNormalizationFloatWorkload.hpp
-    ClConstantFloatWorkload.cpp
-    ClConstantFloatWorkload.hpp
-    ClConstantUint8Workload.cpp
-    ClConstantUint8Workload.hpp
+    ClConstantWorkload.cpp
+    ClConstantWorkload.hpp
     ClConvertFp16ToFp32Workload.cpp
     ClConvertFp16ToFp32Workload.hpp
     ClConvertFp32ToFp16Workload.cpp
diff --git a/src/backends/cl/workloads/ClBaseConstantWorkload.hpp b/src/backends/cl/workloads/ClBaseConstantWorkload.hpp
deleted file mode 100644
index f7a23a9..0000000
--- a/src/backends/cl/workloads/ClBaseConstantWorkload.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <backends/Workload.hpp>
-
-#include <arm_compute/runtime/CL/CLFunctions.h>
-
-namespace armnn
-{
-template <armnn::DataType... DataTypes>
-class ClBaseConstantWorkload : public TypedWorkload<ConstantQueueDescriptor, DataTypes...>
-{
-public:
-    ClBaseConstantWorkload(const ConstantQueueDescriptor& descriptor, const WorkloadInfo& info)
-        : TypedWorkload<ConstantQueueDescriptor, DataTypes...>(descriptor, info)
-        , m_RanOnce(false)
-    {
-    }
-
-    void Execute() const override;
-
-private:
-    mutable bool m_RanOnce;
-};
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClConstantFloatWorkload.cpp b/src/backends/cl/workloads/ClConstantFloatWorkload.cpp
deleted file mode 100644
index 1565047..0000000
--- a/src/backends/cl/workloads/ClConstantFloatWorkload.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClConstantFloatWorkload.hpp"
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-void ClConstantFloatWorkload::Execute() const
-{
-    ARMNN_SCOPED_PROFILING_EVENT_CL("ClConstantFloatWorkload_Execute");
-    ClBaseConstantWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClConstantFloatWorkload.hpp b/src/backends/cl/workloads/ClConstantFloatWorkload.hpp
deleted file mode 100644
index 0cbeaad..0000000
--- a/src/backends/cl/workloads/ClConstantFloatWorkload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ClBaseConstantWorkload.hpp"
-
-namespace armnn
-{
-class ClConstantFloatWorkload : public ClBaseConstantWorkload<DataType::Float16, DataType::Float32>
-{
-public:
-    using ClBaseConstantWorkload<DataType::Float16, DataType::Float32>::ClBaseConstantWorkload;
-    void Execute() const override;
-};
-
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClConstantUint8Workload.cpp b/src/backends/cl/workloads/ClConstantUint8Workload.cpp
deleted file mode 100644
index a5ef032..0000000
--- a/src/backends/cl/workloads/ClConstantUint8Workload.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClConstantUint8Workload.hpp"
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-void ClConstantUint8Workload::Execute() const
-{
-    ARMNN_SCOPED_PROFILING_EVENT_CL("ClConstantUint8Workload_Execute");
-    ClBaseConstantWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClConstantUint8Workload.hpp b/src/backends/cl/workloads/ClConstantUint8Workload.hpp
deleted file mode 100644
index 30556dc..0000000
--- a/src/backends/cl/workloads/ClConstantUint8Workload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ClBaseConstantWorkload.hpp"
-
-namespace armnn
-{
-
-class ClConstantUint8Workload : public ClBaseConstantWorkload<DataType::QuantisedAsymm8>
-{
-public:
-    using ClBaseConstantWorkload<DataType::QuantisedAsymm8>::ClBaseConstantWorkload;
-    void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClBaseConstantWorkload.cpp b/src/backends/cl/workloads/ClConstantWorkload.cpp
similarity index 84%
rename from src/backends/cl/workloads/ClBaseConstantWorkload.cpp
rename to src/backends/cl/workloads/ClConstantWorkload.cpp
index 848ab5a..eee6dbd 100644
--- a/src/backends/cl/workloads/ClBaseConstantWorkload.cpp
+++ b/src/backends/cl/workloads/ClConstantWorkload.cpp
@@ -3,7 +3,7 @@
 // SPDX-License-Identifier: MIT
 //
 
-#include "ClBaseConstantWorkload.hpp"
+#include "ClConstantWorkload.hpp"
 
 #include <armnnUtils/Half.hpp>
 #include <backends/aclCommon/ArmComputeTensorUtils.hpp>
@@ -15,12 +15,16 @@
 namespace armnn
 {
 
-template class ClBaseConstantWorkload<DataType::Float16, DataType::Float32>;
-template class ClBaseConstantWorkload<DataType::QuantisedAsymm8>;
-
-template<armnn::DataType... dataTypes>
-void ClBaseConstantWorkload<dataTypes...>::Execute() const
+ClConstantWorkload::ClConstantWorkload(const ConstantQueueDescriptor& descriptor, const WorkloadInfo& info)
+    : BaseWorkload<ConstantQueueDescriptor>(descriptor, info)
+    , m_RanOnce(false)
 {
+}
+
+void ClConstantWorkload::Execute() const
+{
+    ARMNN_SCOPED_PROFILING_EVENT_CL("ClConstantWorkload_Execute");
+
     // The intermediate tensor held by the corresponding layer output handler can be initialised with the given data
     // on the first inference, then reused for subsequent inferences.
     // The initialisation cannot happen at workload construction time since the ACL kernel for the next layer may not
@@ -61,5 +65,4 @@
     }
 }
 
-
 } //namespace armnn
diff --git a/src/backends/cl/workloads/ClConstantWorkload.hpp b/src/backends/cl/workloads/ClConstantWorkload.hpp
new file mode 100644
index 0000000..ccdbf06
--- /dev/null
+++ b/src/backends/cl/workloads/ClConstantWorkload.hpp
@@ -0,0 +1,25 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <backends/Workload.hpp>
+
+#include <arm_compute/runtime/CL/CLFunctions.h>
+
+namespace armnn
+{
+class ClConstantWorkload : public BaseWorkload<ConstantQueueDescriptor>
+{
+public:
+    ClConstantWorkload(const ConstantQueueDescriptor& descriptor, const WorkloadInfo& info);
+
+    void Execute() const override;
+
+private:
+    mutable bool m_RanOnce;
+};
+
+} //namespace armnn
diff --git a/src/backends/cl/workloads/ClWorkloads.hpp b/src/backends/cl/workloads/ClWorkloads.hpp
index 6574d43..e03f6a5 100644
--- a/src/backends/cl/workloads/ClWorkloads.hpp
+++ b/src/backends/cl/workloads/ClWorkloads.hpp
@@ -7,11 +7,9 @@
 #include "ClActivationFloatWorkload.hpp"
 #include "ClActivationUint8Workload.hpp"
 #include "ClAdditionWorkload.hpp"
-#include "ClBaseConstantWorkload.hpp"
+#include "ClConstantWorkload.hpp"
 #include "ClBaseMergerWorkload.hpp"
 #include "ClBatchNormalizationFloatWorkload.hpp"
-#include "ClConstantFloatWorkload.hpp"
-#include "ClConstantUint8Workload.hpp"
 #include "ClConvolution2dWorkload.hpp"
 #include "ClDepthwiseConvolutionWorkload.hpp"
 #include "ClDivisionFloatWorkload.hpp"