[rocprofiler-systems] Add cached demangler and replace old demangle (#2135)

* Add cached demangler and replace old

* Add unit tests

* Applied suggestions from code review

* Applied suggestions from code review
这个提交包含在:
Milan Radosavljevic
2025-12-16 08:32:18 +01:00
提交者 GitHub
父节点 21afa807a9
当前提交 666e76deac
共修改 27 个文件,包含 450 行新增和 84 行删除
@@ -24,6 +24,7 @@
#include "core/components/fwd.hpp"
#include "core/config.hpp"
#include "core/debug.hpp"
#include "core/demangler.hpp"
#include "core/perfetto.hpp"
#include "core/state.hpp"
#include "library/components/ensure_storage.hpp"
@@ -150,7 +151,7 @@ backtrace::filter_and_patch(const std::vector<entry_type>& _data)
_ret.reserve(_data.size());
for(const auto& itr : _data)
{
auto _name = tim::demangle(_patch_label(itr.name));
auto _name = rocprofsys::utility::demangle(_patch_label(itr.name));
auto _use = _use_label(_name);
if(_use == -1) break;
if(_use == 0) continue;
@@ -24,6 +24,7 @@
#include "core/config.hpp"
#include "core/defines.hpp"
#include "core/demangler.hpp"
#include "core/state.hpp"
#include "core/timemory.hpp"
#include "core/trace_cache/cache_manager.hpp"
@@ -403,7 +404,8 @@ category_region<CategoryT>::audit(const gotcha_data_t& _data, audit::incoming,
{
int64_t _n = 0;
ROCPROFSYS_FOLD_EXPRESSION(tracing::add_perfetto_annotation(
ctx, tim::try_demangle<std::remove_reference_t<Args>>(), _args, _n++));
ctx, rocprofsys::utility::demangle<std::remove_reference_t<Args>>(),
_args, _n++));
}
});
}
@@ -431,7 +433,8 @@ category_region<CategoryT>::audit(std::string_view _name, audit::incoming,
{
int64_t _n = 0;
ROCPROFSYS_FOLD_EXPRESSION(tracing::add_perfetto_annotation(
ctx, tim::try_demangle<std::remove_reference_t<Args>>(), _args, _n++));
ctx, rocprofsys::utility::demangle<std::remove_reference_t<Args>>(),
_args, _n++));
}
});
}
@@ -22,6 +22,7 @@
#pragma once
#include "core/demangler.hpp"
#include "core/timemory.hpp"
#include <timemory/components/base.hpp>
@@ -184,7 +185,8 @@ rocprofsys::component::activate_mpip()
static std::string _label = []() {
std::stringstream ss;
ss << "rocprofsys-mpip-" << demangle<Toolset>() << "-" << demangle<Tag>();
ss << "rocprofsys-mpip-" << rocprofsys::utility::demangle<Toolset>() << "-"
<< rocprofsys::utility::demangle<Tag>();
return ss.str();
}();
ROCPROFSYS_BASIC_DEBUG_F("Adding cleanup for %s", _label.c_str());
@@ -208,7 +210,8 @@ rocprofsys::component::deactivate_mpip(uint64_t id)
{
static std::string _label = []() {
std::stringstream ss;
ss << "rocprofsys-mpip-" << demangle<Toolset>() << "-" << demangle<Tag>();
ss << "rocprofsys-mpip-" << rocprofsys::utility::demangle<Toolset>() << "-"
<< rocprofsys::utility::demangle<Tag>();
return ss.str();
}();
ROCPROFSYS_BASIC_DEBUG_F("Removing cleanup for %s", _label.c_str());