aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
diff options
context:
space:
mode:
authorJeremy Morse <jeremy.morse@sony.com>2021-11-24 17:32:55 +0000
committerJeremy Morse <jeremy.morse@sony.com>2021-11-24 19:56:21 +0000
commitbfadc5dcbfa81da00b58de5e62b569faf24538e7 (patch)
treed1d848b83c371448a2daffbdfa135768026ec803 /llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
parentb6e7b1be732d2b35c1452731883de812a818ff2a (diff)
downloadllvm-bfadc5dcbfa81da00b58de5e62b569faf24538e7.zip
llvm-bfadc5dcbfa81da00b58de5e62b569faf24538e7.tar.gz
llvm-bfadc5dcbfa81da00b58de5e62b569faf24538e7.tar.bz2
[DebugInfo][InstrRef] Cope with win32 calls changing SP in LiveDebugValues
Almost all of the time, call instructions don't actually lead to SP being different after they return. An exception is win32's _chkstk, which which implements stack probes. We need to recognise that as modifying SP, so that copies of the value are tracked as distinct vla pointers. This patch adds a target frame-lowering hook to see whether stack probe functions will modify the stack pointer, store that in an internal flag, and if it's true then scan CALL instructions to see whether they're a stack probe. If they are, recognise them as defining a new stack-pointer value. The added test exercises this behaviour: two calls to _chkstk should be considered as producing two different values. Differential Revision: https://reviews.llvm.org/D114443
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp')
0 files changed, 0 insertions, 0 deletions