aboutsummaryrefslogtreecommitdiff
path: root/src/backends/WorkloadFactory.cpp
diff options
context:
space:
mode:
authorDavid Beck <david.beck@arm.com>2018-10-03 11:42:42 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-10 16:16:58 +0100
commitdcb751f338b86c811a35bd0a9413ba9b8df7b718 (patch)
treebda3027fe7d958383eaa85105f611bfc07c3838c /src/backends/WorkloadFactory.cpp
parent3041e3036398048b4f8b72e0a321d77cd222a2fa (diff)
downloadarmnn-dcb751f338b86c811a35bd0a9413ba9b8df7b718.tar.gz
IVGCVSW-1642 : introducing the IBackend interface
Change-Id: Iaadee0a08c0594c9a3c802a48fe346e15f2cbbb2
Diffstat (limited to 'src/backends/WorkloadFactory.cpp')
-rw-r--r--src/backends/WorkloadFactory.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/backends/WorkloadFactory.cpp b/src/backends/WorkloadFactory.cpp
index a70097eb82..dc9c1bc624 100644
--- a/src/backends/WorkloadFactory.cpp
+++ b/src/backends/WorkloadFactory.cpp
@@ -2,7 +2,8 @@
// Copyright © 2017 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//
-#include "WorkloadFactory.hpp"
+#include <backends/WorkloadFactory.hpp>
+
#include <backends/reference/RefWorkloadFactory.hpp>
#include <backends/neon/NeonWorkloadFactory.hpp>
#include <backends/cl/ClWorkloadFactory.hpp>
@@ -53,12 +54,16 @@ namespace
}
}
-bool IWorkloadFactory::IsLayerSupported(Compute compute, const Layer& layer, boost::optional<DataType> dataType,
- std::string& outReasonIfUnsupported)
+bool IWorkloadFactory::IsLayerSupported(Compute compute,
+ const IConnectableLayer& connectableLayer,
+ boost::optional<DataType> dataType,
+ std::string& outReasonIfUnsupported)
{
constexpr size_t reasonCapacity = 1024;
char reason[reasonCapacity];
bool result;
+ const Layer& layer = *(boost::polymorphic_downcast<const Layer*>(&connectableLayer));
+
switch(layer.GetType())
{
case LayerType::Activation:
@@ -583,10 +588,12 @@ bool IWorkloadFactory::IsLayerSupported(Compute compute, const Layer& layer, boo
return result;
}
-bool IWorkloadFactory::IsLayerSupported(const Layer& layer, boost::optional<DataType> dataType,
+bool IWorkloadFactory::IsLayerSupported(const IConnectableLayer& connectableLayer,
+ boost::optional<DataType> dataType,
std::string& outReasonIfUnsupported)
{
- return IsLayerSupported(layer.GetComputeDevice(), layer, dataType, outReasonIfUnsupported);
+ auto layer = boost::polymorphic_downcast<const Layer*>(&connectableLayer);
+ return IsLayerSupported(layer->GetComputeDevice(), connectableLayer, dataType, outReasonIfUnsupported);
}
}