IVGCVSW-1951 Remove type templating from ClMergerWorkload

Change-Id: I8580f5d1612567a3b02cfccfd1f8d0f196eeda93
diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp
index 189509a..d293759 100644
--- a/src/backends/cl/ClWorkloadFactory.cpp
+++ b/src/backends/cl/ClWorkloadFactory.cpp
@@ -119,7 +119,7 @@
 std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreateMerger(const MergerQueueDescriptor& descriptor,
                                                                   const WorkloadInfo&          info) const
 {
-    return MakeWorkload<ClMergerFloatWorkload, ClMergerUint8Workload>(descriptor, info);
+    return std::make_unique<ClMergerWorkload>(descriptor, info);
 }
 
 std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreateFullyConnected(
diff --git a/src/backends/cl/backend.mk b/src/backends/cl/backend.mk
index ac2e771..d5aa945 100644
--- a/src/backends/cl/backend.mk
+++ b/src/backends/cl/backend.mk
@@ -25,8 +25,6 @@
         workloads/ClFullyConnectedWorkload.cpp \
         workloads/ClL2NormalizationFloatWorkload.cpp \
         workloads/ClLstmFloatWorkload.cpp \
-        workloads/ClMergerFloatWorkload.cpp \
-        workloads/ClMergerUint8Workload.cpp \
         workloads/ClMultiplicationWorkload.cpp \
         workloads/ClNormalizationFloatWorkload.cpp \
         workloads/ClPadWorkload.cpp \
diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp
index 6ac47fd..d3bae44 100644
--- a/src/backends/cl/test/ClCreateWorkloadTests.cpp
+++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp
@@ -475,7 +475,7 @@
     ClSplitterWorkloadTest<armnn::DataType::Float16>();
 }
 
-template <typename MergerWorkloadType, typename armnn::DataType DataType>
+template <typename armnn::DataType DataType>
 static void ClSplitterMergerTest()
 {
     // Tests that it is possible to decide which output of the splitter layer
@@ -488,7 +488,7 @@
     ClWorkloadFactory factory;
 
     auto workloads =
-        CreateSplitterMergerWorkloadTest<ClSplitterWorkload, MergerWorkloadType, DataType>
+        CreateSplitterMergerWorkloadTest<ClSplitterWorkload, ClMergerWorkload, DataType>
             (factory, graph);
 
     auto wlSplitter = std::move(workloads.first);
@@ -519,12 +519,12 @@
 
 BOOST_AUTO_TEST_CASE(CreateSplitterMergerFloatWorkload)
 {
-    ClSplitterMergerTest<ClMergerFloatWorkload, armnn::DataType::Float32>();
+    ClSplitterMergerTest<armnn::DataType::Float32>();
 }
 
 BOOST_AUTO_TEST_CASE(CreateSplitterMergerFloat16Workload)
 {
-    ClSplitterMergerTest<ClMergerFloatWorkload, armnn::DataType::Float16>();
+    ClSplitterMergerTest<armnn::DataType::Float16>();
 }
 
 
diff --git a/src/backends/cl/workloads/CMakeLists.txt b/src/backends/cl/workloads/CMakeLists.txt
index 7ff04a7..e7877f2 100644
--- a/src/backends/cl/workloads/CMakeLists.txt
+++ b/src/backends/cl/workloads/CMakeLists.txt
@@ -8,7 +8,6 @@
     ClActivationWorkload.hpp
     ClAdditionWorkload.cpp
     ClAdditionWorkload.hpp
-    ClBaseMergerWorkload.hpp
     ClBatchNormalizationFloatWorkload.cpp
     ClBatchNormalizationFloatWorkload.hpp
     ClConstantWorkload.cpp
@@ -31,10 +30,7 @@
     ClL2NormalizationFloatWorkload.hpp
     ClLstmFloatWorkload.cpp
     ClLstmFloatWorkload.hpp
-    ClMergerFloatWorkload.cpp
-    ClMergerFloatWorkload.hpp
-    ClMergerUint8Workload.cpp
-    ClMergerUint8Workload.hpp
+    ClMergerWorkload.hpp
     ClMultiplicationWorkload.cpp
     ClMultiplicationWorkload.hpp
     ClNormalizationFloatWorkload.cpp
diff --git a/src/backends/cl/workloads/ClBaseMergerWorkload.hpp b/src/backends/cl/workloads/ClBaseMergerWorkload.hpp
deleted file mode 100644
index f8ff6f9..0000000
--- a/src/backends/cl/workloads/ClBaseMergerWorkload.hpp
+++ /dev/null
@@ -1,28 +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
-{
-
-// Base class template providing an implementation of the Merger layer common to all data types.
-template <armnn::DataType... DataTypes>
-class ClBaseMergerWorkload : public TypedWorkload<MergerQueueDescriptor, DataTypes...>
-{
-public:
-    using TypedWorkload<MergerQueueDescriptor, DataTypes...>::TypedWorkload;
-
-     void Execute() const override
-    {
-        // With subtensors, merger is a no-op.
-    }
-};
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClMergerFloatWorkload.cpp b/src/backends/cl/workloads/ClMergerFloatWorkload.cpp
deleted file mode 100644
index 151f1e0..0000000
--- a/src/backends/cl/workloads/ClMergerFloatWorkload.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClMergerFloatWorkload.hpp"
-
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-void ClMergerFloatWorkload::Execute() const
-{
-    ARMNN_SCOPED_PROFILING_EVENT_CL("ClMergerFloatWorkload_Execute");
-    ClBaseMergerWorkload::Execute();
-}
-
-} //namespace armnn
-
diff --git a/src/backends/cl/workloads/ClMergerFloatWorkload.hpp b/src/backends/cl/workloads/ClMergerFloatWorkload.hpp
deleted file mode 100644
index 9782f7a..0000000
--- a/src/backends/cl/workloads/ClMergerFloatWorkload.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ClBaseMergerWorkload.hpp"
-
-namespace armnn
-{
-
-class ClMergerFloatWorkload : public ClBaseMergerWorkload<DataType::Float16, DataType::Float32>
-{
-public:
-    using ClBaseMergerWorkload<DataType::Float16, DataType::Float32>::ClBaseMergerWorkload;
-    virtual void Execute() const override;
-};
-
-} //namespace armnn
-
-
diff --git a/src/backends/cl/workloads/ClMergerUint8Workload.cpp b/src/backends/cl/workloads/ClMergerUint8Workload.cpp
deleted file mode 100644
index 9d1060d..0000000
--- a/src/backends/cl/workloads/ClMergerUint8Workload.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClMergerUint8Workload.hpp"
-
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-void ClMergerUint8Workload::Execute() const
-{
-    ARMNN_SCOPED_PROFILING_EVENT_CL("ClMergerUint8Workload_Execute");
-    ClBaseMergerWorkload<DataType::QuantisedAsymm8>::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClMergerUint8Workload.hpp b/src/backends/cl/workloads/ClMergerUint8Workload.hpp
deleted file mode 100644
index cbfc19a..0000000
--- a/src/backends/cl/workloads/ClMergerUint8Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ClBaseMergerWorkload.hpp"
-
-namespace armnn
-{
-
-class ClMergerUint8Workload : public ClBaseMergerWorkload<armnn::DataType::QuantisedAsymm8>
-{
-public:
-    using ClBaseMergerWorkload<armnn::DataType::QuantisedAsymm8>::ClBaseMergerWorkload;
-    virtual void Execute() const override;
-};
-
-} //namespace armnn
-
diff --git a/src/backends/cl/workloads/ClMergerWorkload.hpp b/src/backends/cl/workloads/ClMergerWorkload.hpp
new file mode 100644
index 0000000..a6deb2e
--- /dev/null
+++ b/src/backends/cl/workloads/ClMergerWorkload.hpp
@@ -0,0 +1,24 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <backends/Workload.hpp>
+
+namespace armnn
+{
+
+class ClMergerWorkload : public BaseWorkload<MergerQueueDescriptor>
+{
+public:
+    using BaseWorkload<MergerQueueDescriptor>::BaseWorkload;
+
+    void Execute() const override
+    {
+        // With subtensors, merger is a no-op.
+    }
+};
+
+} //namespace armnn
diff --git a/src/backends/cl/workloads/ClWorkloads.hpp b/src/backends/cl/workloads/ClWorkloads.hpp
index a01d9d8..8257218 100644
--- a/src/backends/cl/workloads/ClWorkloads.hpp
+++ b/src/backends/cl/workloads/ClWorkloads.hpp
@@ -7,7 +7,6 @@
 #include "ClActivationWorkload.hpp"
 #include "ClAdditionWorkload.hpp"
 #include "ClConstantWorkload.hpp"
-#include "ClBaseMergerWorkload.hpp"
 #include "ClBatchNormalizationFloatWorkload.hpp"
 #include "ClConvolution2dWorkload.hpp"
 #include "ClDepthwiseConvolutionWorkload.hpp"
@@ -16,8 +15,7 @@
 #include "ClFullyConnectedWorkload.hpp"
 #include "ClL2NormalizationFloatWorkload.hpp"
 #include "ClLstmFloatWorkload.hpp"
-#include "ClMergerFloatWorkload.hpp"
-#include "ClMergerUint8Workload.hpp"
+#include "ClMergerWorkload.hpp"
 #include "ClMultiplicationWorkload.hpp"
 #include "ClNormalizationFloatWorkload.hpp"
 #include "ClPermuteWorkload.hpp"