[PATCH] D113492: [llvm-profgen] Fix bug of split range branch sample

Lei Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 9 12:07:54 PST 2021


wlei added a comment.

In D113492#3118908 <https://reviews.llvm.org/D113492#3118908>, @wenlei wrote:

>> However, in HHVM, I found that there are many functions that none of their ranges is set to true
>
> Why is this happening? Should we fix this so that for any function, there's always one range that is considered entry?

For example, in HHVM:
The DWARF function name is "_ZN8facebook6falcon10ProcessKey**C2**ERKS1_"  and the same start address on ELF the symbol name is   " _ZN8facebook6falcon10ProcessKey**C1 <https://reviews.llvm.org/C1>**ERKS1_". The function has only one range.

So there is name difference between DWARF and symbol table even it has only one range. I don't know the root reason for debug info, maybe some change in FE

> Should we fix this so that for any function, there's always one range that is considered entry?

I'm thinking a case even we make the function entry flag correct, there's still a chance to call a non-entry function that should report the count, like "main" --> "foo.V1" , maybe foo.V1 is the function slice covering function start.

See the change in this patch, try to remove the `isFuncEntry` logic. Instead, we check if the source and start' range is from the same function but different split range.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D113492



More information about the llvm-commits mailing list