MCPcopy Create free account
hub / github.com/ROCm/clr / getDemangledName

Method getDemangledName

rocclr/device/devprogram.cpp:2101–2138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2099}
2100
2101bool Program::getDemangledName(const std::string& mangledName, std::string& demangledName) const {
2102 amd_comgr_data_t mangled_data;
2103 amd_comgr_data_t demangled_data;
2104
2105 if (AMD_COMGR_STATUS_SUCCESS != amd::Comgr::create_data(AMD_COMGR_DATA_KIND_BYTES, &mangled_data))
2106 return false;
2107
2108 if (AMD_COMGR_STATUS_SUCCESS !=
2109 amd::Comgr::set_data(mangled_data, mangledName.size(), mangledName.c_str())) {
2110 amd::Comgr::release_data(mangled_data);
2111 return false;
2112 }
2113
2114 if (AMD_COMGR_STATUS_SUCCESS != amd::Comgr::demangle_symbol_name(mangled_data, &demangled_data)) {
2115 amd::Comgr::release_data(mangled_data);
2116 return false;
2117 }
2118
2119 size_t demangled_size = 0;
2120 if (AMD_COMGR_STATUS_SUCCESS != amd::Comgr::get_data(demangled_data, &demangled_size, NULL)) {
2121 amd::Comgr::release_data(mangled_data);
2122 amd::Comgr::release_data(demangled_data);
2123 return false;
2124 }
2125
2126 demangledName.resize(demangled_size);
2127
2128 if (AMD_COMGR_STATUS_SUCCESS != amd::Comgr::get_data(demangled_data, &demangled_size,
2129 const_cast<char*>(demangledName.data()))) {
2130 amd::Comgr::release_data(mangled_data);
2131 amd::Comgr::release_data(demangled_data);
2132 return false;
2133 }
2134
2135 amd::Comgr::release_data(mangled_data);
2136 amd::Comgr::release_data(demangled_data);
2137 return true;
2138}
2139
2140bool Program::getGlobalFuncFromCodeObj(std::vector<std::string>* func_names) const {
2141 return getSymbolsFromCodeObj(func_names, AMD_COMGR_SYMBOL_TYPE_FUNC);

Callers 1

submitKernelInternalMethod · 0.80

Calls 2

sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected