[llvm] [llvm-profgen] Loading binary functions from .symtab when DWARF info is incomplete (PR #163654)

via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 27 13:59:32 PDT 2025


================
@@ -449,29 +449,62 @@ bool ProfileGeneratorBase::collectFunctionsFromRawProfile(
   // Go through all the stacks, ranges and branches in sample counters, use
   // the start of the range to look up the function it belongs and record the
   // function.
+  uint64_t ErrStkAddr = 0, ErrFuncRange = 0, ErrSrc = 0, ErrTgt = 0;
+  uint64_t TotalStkAddr = 0, TotalFuncRange = 0, TotalSrc = 0, TotalTgt = 0;
   for (const auto &CI : *SampleCounters) {
     if (const auto *CtxKey = dyn_cast<AddrBasedCtxKey>(CI.first.getPtr())) {
       for (auto StackAddr : CtxKey->Context) {
+        uint64_t Inc = Binary->addressIsCode(StackAddr) ? 1 : 0;
+        TotalStkAddr += Inc;
----------------
WenleiHe wrote:

nit for readability: 
```
bool StackAddrIsCode = Binary->addressIsCode(StackAddr);
if (StackAddrIsCode)
  TotalStkAddr++;

if (...)
   ProfiledFunctions.insert(FRange->Func);
else if (StackAddrIsCode)
   ErrStkAddr++;

...

same for all other instances. 

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


More information about the llvm-commits mailing list