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