IVGCVSW-3546 Create a reference dynamic backend to use for testing and as
an example in the docs
* Wrapped the reference backend into a dynamic backend
* Moved the static registration code to a separate file, so that
it is possible to create the reference dynamic backend that does not
register statically into armnn
* Added unit test
Change-Id: I1074d21b020820f9ac8c7178388be773b447555a
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
diff --git a/src/backends/reference/CMakeLists.txt b/src/backends/reference/CMakeLists.txt
index 281e916..963e643 100644
--- a/src/backends/reference/CMakeLists.txt
+++ b/src/backends/reference/CMakeLists.txt
@@ -13,6 +13,7 @@
RefLayerSupport.hpp
RefMemoryManager.hpp
RefMemoryManager.cpp
+ RefRegistryInitializer.cpp
RefWorkloadFactory.cpp
RefWorkloadFactory.hpp
)
diff --git a/src/backends/reference/RefBackend.cpp b/src/backends/reference/RefBackend.cpp
index 3680831..41438b0 100644
--- a/src/backends/reference/RefBackend.cpp
+++ b/src/backends/reference/RefBackend.cpp
@@ -20,21 +20,6 @@
namespace armnn
{
-namespace
-{
-
-static BackendRegistry::StaticRegistryInitializer g_RegisterHelper
-{
- BackendRegistryInstance(),
- RefBackend::GetIdStatic(),
- []()
- {
- return IBackendInternalUniquePtr(new RefBackend);
- }
-};
-
-}
-
const BackendId& RefBackend::GetIdStatic()
{
static const BackendId s_Id{RefBackendId()};
diff --git a/src/backends/reference/RefRegistryInitializer.cpp b/src/backends/reference/RefRegistryInitializer.cpp
new file mode 100644
index 0000000..427c7f0
--- /dev/null
+++ b/src/backends/reference/RefRegistryInitializer.cpp
@@ -0,0 +1,25 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "RefBackend.hpp"
+
+#include <backendsCommon/BackendRegistry.hpp>
+
+namespace
+{
+
+using namespace armnn;
+
+static BackendRegistry::StaticRegistryInitializer g_RegisterHelper
+{
+ BackendRegistryInstance(),
+ RefBackend::GetIdStatic(),
+ []()
+ {
+ return IBackendInternalUniquePtr(new RefBackend);
+ }
+};
+
+} // Anonymous namespace
diff --git a/src/backends/reference/backend.mk b/src/backends/reference/backend.mk
index 6e1360a..b212995 100644
--- a/src/backends/reference/backend.mk
+++ b/src/backends/reference/backend.mk
@@ -13,6 +13,7 @@
RefMemoryManager.cpp \
RefTensorHandle.cpp \
RefWorkloadFactory.cpp \
+ RefRegistryInitializer.cpp \
workloads/Activation.cpp \
workloads/BatchNormImpl.cpp \
workloads/BatchToSpaceNd.cpp \