[llvm-branch-commits] [llvm] [BOLT] Name similarity function matching (PR #95884)

Amir Ayupov via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Jun 21 09:37:14 PDT 2024


================
@@ -415,6 +422,75 @@ Error YAMLProfileReader::readProfile(BinaryContext &BC) {
     if (!YamlBF.Used && BF && !ProfiledFunctions.count(BF))
       matchProfileToFunction(YamlBF, *BF);
 
+  // Uses name similarity to match functions that were not matched by name.
+  uint64_t MatchedWithDemangledName = 0;
+
+  if (opts::NameSimilarityFunctionMatchingThreshold > 0) {
+    auto DemangleName = [&](const char* String) {
+      int Status = 0;
+      char *DemangledName = abi::__cxa_demangle(String,
+                                                nullptr, nullptr, &Status);
+      return Status == 0 ? new std::string(DemangledName) : nullptr;
+    };
+
+    auto DeriveNameSpace = [&](std::string DemangledName) {
----------------
aaupov wrote:

Would be cool to use `getFunctionDeclContextName` from ItaniumPartialDemangler

https://github.com/llvm/llvm-project/pull/95884


More information about the llvm-branch-commits mailing list