[PATCH] D112282: [llvm-profgen] Switch to DWARF-based symbol and ranges

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 25 20:59:23 PDT 2021


dblaikie added inline comments.


================
Comment at: llvm/tools/llvm-profgen/ProfileGenerator.cpp:499
     uint64_t EndOffset = I.second;
     Binary->computeInlinedContextSizeForRange(StartOffset, EndOffset);
   }
----------------
wlei wrote:
> hoy wrote:
> > From the way ranges of a dwarf symbol are populated, `EndOffset` should not be a part of a range (exclusive). But `computeInlinedContextSizeForRange` expects the opposite.
> Good point, I just changed EndOffset inclusive range.
> ```
> uint64_t EndOffset = Range.HighPC - getPreferredBaseAddress() - 1;
> ```
(it might be best to use an exclusive end, like DWARF does - for consistency and to enable representing zero-length ranges (which do come up at the moment in LLVM's codegen - zero length functions can produce situations where `lowpc == highpc`, so if you use - 1 you might end up with a weird situation where highpc < lowpc which could be problematic)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112282/new/

https://reviews.llvm.org/D112282



More information about the llvm-commits mailing list