aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ExecutionEngine/Orc/ObjectFileInterface.cpp
diff options
context:
space:
mode:
authorwlei <wlei@fb.com>2021-12-14 16:28:36 -0800
committerwlei <wlei@fb.com>2021-12-14 16:40:53 -0800
commit3dcb60db9a538aa1b7144e0d5e37ee3b43d5d991 (patch)
tree91cafecf1d01110487970a7149ecdc664aa1a156 /llvm/lib/ExecutionEngine/Orc/ObjectFileInterface.cpp
parent322057179316c03b2b25ce341b1e55d01890730d (diff)
downloadllvm-3dcb60db9a538aa1b7144e0d5e37ee3b43d5d991.zip
llvm-3dcb60db9a538aa1b7144e0d5e37ee3b43d5d991.tar.gz
llvm-3dcb60db9a538aa1b7144e0d5e37ee3b43d5d991.tar.bz2
[CSSPGO][llvm-profgen] Fix external address issues of perf reader (leading external LBR part)
We can have the sampling just hit into the external addresses, in that case, both the top stack frame and the latest LBR target are external addresses. For example: ``` ffffffff 0x4006c8/0xffffffff/P/-/-/0 0x40069b/0x400670/M/-/-/0 ffffffff 40067e 0xffffffff/0xffffffff/P/-/-/0 0x4006c8/0xffffffff/P/-/-/0 0x40069b/0x400670/M/-/-/0 ``` Before we will ignore the entire samples. However, we found there exists some internal LBRs in the remaining part of sample, the range between them is still a valid range, we will lose some valid LBRs. Those LBRs will be unwinded based on a empty(context-less) call stack. This change tries to fix it, instead of ignoring the entire sample, we only ignore the leading external addresses. Note that the first outgoing LBR is useful since there is a valid range between it's source and next LBR's target. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D115538
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/ObjectFileInterface.cpp')
0 files changed, 0 insertions, 0 deletions