[libbenchmark] Introduce enum class Phase (#9361)
author김용섭/On-Device Lab(SR)/Engineer/삼성전자 <yons.kim@samsung.com>
Thu, 5 Dec 2019 09:08:03 +0000 (18:08 +0900)
committer이춘석/On-Device Lab(SR)/Staff Engineer/삼성전자 <chunseok.lee@samsung.com>
Thu, 5 Dec 2019 09:08:03 +0000 (18:08 +0900)
* [libbenchmark] Introduce enum class Phase

MODEL_LOAD, PREPARE and EXECUTE will be sections to be benchmarked

Signed-off-by: Yongseop Kim <yons.kim@samsung.com>
* add inline keyword to GetPhaseString

* Add handling default of switch

runtime/libs/benchmark/include/benchmark/Phase.h [new file with mode: 0644]

diff --git a/runtime/libs/benchmark/include/benchmark/Phase.h b/runtime/libs/benchmark/include/benchmark/Phase.h
new file mode 100644 (file)
index 0000000..f50a6f5
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_BENCHMARK_PHASE_H__
+#define __NNFW_BENCHMARK_PHASE_H__
+
+#include <string>
+#include <cassert>
+
+namespace benchmark
+{
+
+enum class Phase
+{
+  MODEL_LOAD,
+  PREPARE,
+  EXECUTE,
+};
+
+inline std::string GetPhaseString(Phase phase)
+{
+  switch (phase)
+  {
+    case Phase::MODEL_LOAD:
+      return "MODEL_LOAD";
+    case Phase::PREPARE:
+      return "PREPARE";
+    case Phase::EXECUTE:
+      return "EXECUTE";
+    default:
+      assert(false);
+      return "";
+  }
+}
+
+} // namespace benchmark
+
+#endif // __NNFW_BENCHMARK_PHASE_H__