From da708a2651aa665260b199fed2b296eba1a59873 Mon Sep 17 00:00:00 2001 From: Benjamin Welton Date: Wed, 13 Mar 2024 07:28:33 -0700 Subject: [PATCH] Use static_object for dimension map (#616) [ROCm/rocprofiler-sdk commit: a06eef34889df1e29163615769ddc9e942c381a8] --- .../source/lib/rocprofiler-sdk/counters/id_decode.cpp | 8 ++++---- .../source/lib/rocprofiler-sdk/counters/id_decode.hpp | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/counters/id_decode.cpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/counters/id_decode.cpp index a1bb2c22e7..a26d6703e9 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/counters/id_decode.cpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/counters/id_decode.cpp @@ -34,10 +34,10 @@ namespace rocprofiler { namespace counters { -const std::unordered_map& +const DimensionMap& dimension_map() { - static std::unordered_map map = { + static auto*& _v = common::static_object::construct(DimensionMap{ {ROCPROFILER_DIMENSION_NONE, std::string_view("DIMENSION_NONE")}, {ROCPROFILER_DIMENSION_XCC, std::string_view("DIMENSION_XCC")}, {ROCPROFILER_DIMENSION_SHADER_ENGINE, std::string_view("DIMENSION_SHADER_ENGINE")}, @@ -45,8 +45,8 @@ dimension_map() {ROCPROFILER_DIMENSION_SHADER_ARRAY, std::string_view("DIMENSION_SHADER_ARRAY")}, {ROCPROFILER_DIMENSION_CU, std::string_view("DIMENSION_CU")}, {ROCPROFILER_DIMENSION_INSTANCE, std::string_view("DIMENSION_INSTANCE")}, - }; - return map; + }); + return *_v; } const std::unordered_map& diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/counters/id_decode.hpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/counters/id_decode.hpp index e15f21e9bb..2c51ec1f20 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/counters/id_decode.hpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/counters/id_decode.hpp @@ -48,7 +48,10 @@ enum rocprofiler_profile_counter_instance_types ROCPROFILER_DIMENSION_LAST }; -const std::unordered_map& +using DimensionMap = + std::unordered_map; + +const DimensionMap& dimension_map(); inline rocprofiler_counter_id_t