diff options
author | Lei Wang <wlei@fb.com> | 2024-04-01 13:54:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-01 13:54:54 -0700 |
commit | b8cc3ba409dc850776f37e27613bf74f5a80d66a (patch) | |
tree | a20d637464978108cc94f0acac1c803668c8e0f4 /clang/lib/ExtractAPI | |
parent | e93b5f5a4776ffea12d03652559dfdf8d421184c (diff) | |
download | llvm-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