src/armnn/layers/SubtractionLayer.cpp \
src/armnn/layers/SwitchLayer.cpp \
src/armnn/layers/TransposeConvolution2dLayer.cpp \
+ src/armnn/BackendHelper.cpp \
src/armnn/Descriptors.cpp \
src/armnn/Exceptions.cpp \
src/armnn/Graph.cpp \
src/armnn/layers/TransposeConvolution2dLayer.cpp
src/armnn/layers/TransposeConvolution2dLayer.hpp
src/armnn/BackendSettings.hpp
+ src/armnn/BackendHelper.cpp
src/armnn/CompatibleTypes.hpp
src/armnn/Descriptors.cpp
src/armnn/DeviceSpec.hpp
#include "Exceptions.hpp"
#include "INetwork.hpp"
#include "IRuntime.hpp"
-#include "LayerSupport.hpp"
#include "LstmParams.hpp"
#include "Optional.hpp"
#include "Tensor.hpp"
--- /dev/null
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <armnn/BackendId.hpp>
+#include <armnn/ILayerSupport.hpp>
+
+namespace armnn
+{
+
+/// Convenience function to retrieve the ILayerSupport for a backend
+std::shared_ptr<ILayerSupport> GetILayerSupportByBackendId(const armnn::BackendId& backend);
+
+}
--- /dev/null
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include <armnn/BackendHelper.hpp>
+#include "backendsCommon/BackendRegistry.hpp"
+#include "backendsCommon/IBackendInternal.hpp"
+
+namespace armnn
+{
+
+std::shared_ptr<ILayerSupport> GetILayerSupportByBackendId(const armnn::BackendId& backend)
+{
+ BackendRegistry& backendRegistry = armnn::BackendRegistryInstance();
+
+ if (!backendRegistry.IsBackendRegistered(backend))
+ {
+ return nullptr;
+ }
+
+ auto factoryFunc = backendRegistry.GetFactory(backend);
+ auto backendObject = factoryFunc();
+ return backendObject->GetLayerSupport();
+}
+
+}