aboutsummaryrefslogtreecommitdiff
path: root/src/armnn
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn')
-rw-r--r--src/armnn/LayerSupport.cpp9
-rw-r--r--src/armnn/LayerSupportCommon.hpp34
2 files changed, 22 insertions, 21 deletions
diff --git a/src/armnn/LayerSupport.cpp b/src/armnn/LayerSupport.cpp
index 3758ed40f6..8bad89f070 100644
--- a/src/armnn/LayerSupport.cpp
+++ b/src/armnn/LayerSupport.cpp
@@ -3,6 +3,7 @@
// SPDX-License-Identifier: MIT
//
#include <armnn/LayerSupport.hpp>
+#include <armnn/Optional.hpp>
#include <backends/reference/RefLayerSupport.hpp>
#include <backends/neon/NeonLayerSupport.hpp>
@@ -36,16 +37,16 @@ void CopyErrorMessage(char* truncatedString, const char* fullString, size_t maxL
switch(compute) \
{ \
case Compute::CpuRef: \
- isSupported = func##Ref(__VA_ARGS__, &reasonIfUnsupportedFull); \
+ isSupported = func##Ref(__VA_ARGS__, Optional<std::string&>(reasonIfUnsupportedFull)); \
break; \
case Compute::CpuAcc: \
- isSupported = func##Neon(__VA_ARGS__, &reasonIfUnsupportedFull); \
+ isSupported = func##Neon(__VA_ARGS__, Optional<std::string&>(reasonIfUnsupportedFull)); \
break; \
case Compute::GpuAcc: \
- isSupported = func##Cl(__VA_ARGS__, &reasonIfUnsupportedFull); \
+ isSupported = func##Cl(__VA_ARGS__, Optional<std::string&>(reasonIfUnsupportedFull)); \
break; \
default: \
- isSupported = func##Ref(__VA_ARGS__, &reasonIfUnsupportedFull); \
+ isSupported = func##Ref(__VA_ARGS__, Optional<std::string&>(reasonIfUnsupportedFull)); \
break; \
} \
CopyErrorMessage(reasonIfUnsupported, reasonIfUnsupportedFull.c_str(), reasonIfUnsupportedMaxLength); \
diff --git a/src/armnn/LayerSupportCommon.hpp b/src/armnn/LayerSupportCommon.hpp
index e351cf4f87..d6dda4f93d 100644
--- a/src/armnn/LayerSupportCommon.hpp
+++ b/src/armnn/LayerSupportCommon.hpp
@@ -12,7 +12,7 @@ namespace armnn
{
template<typename Float16Func, typename Float32Func, typename Uint8Func, typename ... Params>
-bool IsSupportedForDataTypeGeneric(std::string* reasonIfUnsupported,
+bool IsSupportedForDataTypeGeneric(Optional<std::string&> reasonIfUnsupported,
DataType dataType,
Float16Func float16FuncPtr,
Float32Func float32FuncPtr,
@@ -33,83 +33,83 @@ bool IsSupportedForDataTypeGeneric(std::string* reasonIfUnsupported,
}
template<typename ... Params>
-bool TrueFunc(std::string* reasonIfUnsupported, Params&&... params)
+bool TrueFunc(Optional<std::string&> reasonIfUnsupported, Params&&... params)
{
return true;
}
template<typename ... Params>
-bool FalseFunc(std::string* reasonIfUnsupported, Params&&... params)
+bool FalseFunc(Optional<std::string&> reasonIfUnsupported, Params&&... params)
{
return false;
}
template<typename ... Params>
-bool FalseFuncF16(std::string* reasonIfUnsupported, Params&&... params)
+bool FalseFuncF16(Optional<std::string&> reasonIfUnsupported, Params&&... params)
{
if (reasonIfUnsupported)
{
- *reasonIfUnsupported = "Layer is not supported with float16 data type";
+ reasonIfUnsupported.value() = "Layer is not supported with float16 data type";
}
return false;
}
template<typename ... Params>
-bool FalseFuncF32(std::string* reasonIfUnsupported, Params&&... params)
+bool FalseFuncF32(Optional<std::string&> reasonIfUnsupported, Params&&... params)
{
if (reasonIfUnsupported)
{
- *reasonIfUnsupported = "Layer is not supported with float32 data type";
+ reasonIfUnsupported.value() = "Layer is not supported with float32 data type";
}
return false;
}
template<typename ... Params>
-bool FalseFuncU8(std::string* reasonIfUnsupported, Params&&... params)
+bool FalseFuncU8(Optional<std::string&> reasonIfUnsupported, Params&&... params)
{
if (reasonIfUnsupported)
{
- *reasonIfUnsupported = "Layer is not supported with 8-bit data type";
+ reasonIfUnsupported.value() = "Layer is not supported with 8-bit data type";
}
return false;
}
template<typename ... Params>
-bool FalseInputFuncF32(std::string* reasonIfUnsupported, Params&&... params)
+bool FalseInputFuncF32(Optional<std::string&> reasonIfUnsupported, Params&&... params)
{
if (reasonIfUnsupported)
{
- *reasonIfUnsupported = "Layer is not supported with float32 data type input";
+ reasonIfUnsupported.value() = "Layer is not supported with float32 data type input";
}
return false;
}
template<typename ... Params>
-bool FalseInputFuncF16(std::string* reasonIfUnsupported, Params&&... params)
+bool FalseInputFuncF16(Optional<std::string&> reasonIfUnsupported, Params&&... params)
{
if (reasonIfUnsupported)
{
- *reasonIfUnsupported = "Layer is not supported with float16 data type input";
+ reasonIfUnsupported.value() = "Layer is not supported with float16 data type input";
}
return false;
}
template<typename ... Params>
-bool FalseOutputFuncF32(std::string* reasonIfUnsupported, Params&&... params)
+bool FalseOutputFuncF32(Optional<std::string&> reasonIfUnsupported, Params&&... params)
{
if (reasonIfUnsupported)
{
- *reasonIfUnsupported = "Layer is not supported with float32 data type output";
+ reasonIfUnsupported.value() = "Layer is not supported with float32 data type output";
}
return false;
}
template<typename ... Params>
-bool FalseOutputFuncF16(std::string* reasonIfUnsupported, Params&&... params)
+bool FalseOutputFuncF16(Optional<std::string&> reasonIfUnsupported, Params&&... params)
{
if (reasonIfUnsupported)
{
- *reasonIfUnsupported = "Layer is not supported with float16 data type output";
+ reasonIfUnsupported.value() = "Layer is not supported with float16 data type output";
}
return false;
}