diff options
Diffstat (limited to 'src/backends/reference/workloads')
4 files changed, 77 insertions, 1 deletions
diff --git a/src/backends/reference/workloads/CMakeLists.txt b/src/backends/reference/workloads/CMakeLists.txt index 14d6ca9580..d71e6ea032 100644 --- a/src/backends/reference/workloads/CMakeLists.txt +++ b/src/backends/reference/workloads/CMakeLists.txt @@ -117,6 +117,8 @@ list(APPEND armnnRefBackendWorkloads_sources Splitter.hpp StridedSlice.hpp StridedSlice.cpp + StringMapping.cpp + StringMapping.hpp TensorBufferArrayView.hpp Mean.cpp Mean.hpp diff --git a/src/backends/reference/workloads/RefElementwiseWorkload.hpp b/src/backends/reference/workloads/RefElementwiseWorkload.hpp index 1b3200f85c..6dd6865f53 100644 --- a/src/backends/reference/workloads/RefElementwiseWorkload.hpp +++ b/src/backends/reference/workloads/RefElementwiseWorkload.hpp @@ -6,11 +6,11 @@ #pragma once #include <armnn/Types.hpp> -#include <backendsCommon/StringMapping.hpp> #include <backendsCommon/Workload.hpp> #include <backendsCommon/WorkloadData.hpp> #include "Maximum.hpp" #include "Minimum.hpp" +#include "StringMapping.hpp" namespace armnn { diff --git a/src/backends/reference/workloads/StringMapping.cpp b/src/backends/reference/workloads/StringMapping.cpp new file mode 100644 index 0000000000..3ca8843812 --- /dev/null +++ b/src/backends/reference/workloads/StringMapping.cpp @@ -0,0 +1,17 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "StringMapping.hpp" + +namespace armnn +{ + +const StringMapping& StringMapping::Instance() +{ + static StringMapping instance; + return instance; +} + +} // armnn diff --git a/src/backends/reference/workloads/StringMapping.hpp b/src/backends/reference/workloads/StringMapping.hpp new file mode 100644 index 0000000000..073a5a6833 --- /dev/null +++ b/src/backends/reference/workloads/StringMapping.hpp @@ -0,0 +1,57 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +namespace armnn +{ + +/// +/// StringMapping is helper class to be able to use strings as template +/// parameters, so this allows simplifying code which only differs in +/// a string, such as a debug string literal. +/// +struct StringMapping +{ +public: + enum Id { + RefAdditionWorkload_Execute, + RefEqualWorkload_Execute, + RefDivisionWorkload_Execute, + RefGreaterWorkload_Execute, + RefMaximumWorkload_Execute, + RefMinimumWorkload_Execute, + RefMultiplicationWorkload_Execute, + RefSubtractionWorkload_Execute, + MAX_STRING_ID + }; + + const char * Get(Id id) const + { + return m_Strings[id]; + } + + static const StringMapping& Instance(); + +private: + StringMapping() + { + m_Strings[RefAdditionWorkload_Execute] = "RefAdditionWorkload_Execute"; + m_Strings[RefDivisionWorkload_Execute] = "RefDivisionWorkload_Execute"; + m_Strings[RefEqualWorkload_Execute] = "RefEqualWorkload_Execute"; + m_Strings[RefGreaterWorkload_Execute] = "RefGreaterWorkload_Execute"; + m_Strings[RefMaximumWorkload_Execute] = "RefMaximumWorkload_Execute"; + m_Strings[RefMinimumWorkload_Execute] = "RefMinimumWorkload_Execute"; + m_Strings[RefMultiplicationWorkload_Execute] = "RefMultiplicationWorkload_Execute"; + m_Strings[RefSubtractionWorkload_Execute] = "RefSubtractionWorkload_Execute"; + } + + StringMapping(const StringMapping &) = delete; + StringMapping& operator=(const StringMapping &) = delete; + + const char * m_Strings[MAX_STRING_ID]; +}; + +} //namespace armnn |