aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/ExtractAPI
diff options
context:
space:
mode:
authorLei Wang <wlei@fb.com>2024-04-01 13:54:54 -0700
committerGitHub <noreply@github.com>2024-04-01 13:54:54 -0700
commitb8cc3ba409dc850776f37e27613bf74f5a80d66a (patch)
treea20d637464978108cc94f0acac1c803668c8e0f4 /clang/lib/ExtractAPI
parente93b5f5a4776ffea12d03652559dfdf8d421184c (diff)
downloadllvm-b8cc3ba409dc850776f37e27613bf74f5a80d66a.zip
llvm-b8cc3ba409dc850776f37e27613bf74f5a80d66a.tar.gz
llvm-b8cc3ba409dc850776f37e27613bf74f5a80d66a.tar.bz2
[PseudoProbe] Extend to skip instrumenting probe into the dests of invoke (#79919)
As before we only skip instrumenting probe of `unwind`(`KnownColdBlock`) block, this PR extends to skip the both EH flow from `invoke`, i.e. also skip the `normal` dest. For more contexts: when doing call-to-invoke conversion, the block is split by the `invoke` and two extra blocks(`normal` and `unwind`) are added. With this PR, the instrumentation is the same as the one before the call-to-invoke conversion. One significant benefit is this can help mitigate the "unstable IR" issue(https://discourse.llvm.org/t/ipo-for-linkonce-odr-functions/69404), the two versions now are on the same probe instrumentation, expected to be the same checksum. To achieve the same checksum, some tweaks is needed: - Now it also skips incrementing the probe ID for the skipped probe. - The checksum is also computed based on the CFG that skips the EH edges. We observed this fixes ~5% mismatched samples.
Diffstat (limited to 'clang/lib/ExtractAPI')
0 files changed, 0 insertions, 0 deletions