Skip to content
  • Jeremy Morse's avatar
    [DebugInfo][InstrRef] Cope with win32 calls changing SP in LiveDebugValues · bfadc5dc
    Jeremy Morse authored
    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
    bfadc5dc
Loading