[DebugInfo] Call site entries cannot be generated for FrameSetup calls
authorlewis-revill <lewis.revill@embecosm.com>
Tue, 11 Feb 2020 21:23:18 +0000 (21:23 +0000)
committerlewis-revill <lewis.revill@embecosm.com>
Tue, 11 Feb 2020 21:23:18 +0000 (21:23 +0000)
commita6bd1256ce8ae5d5faf66a2ed198e0bc8674ee97
tree79aae4b42eb25c9b27ae9a075be5771213050c12
parent07f7c00208b393296f8f27d6cd3cec2b11d86fd8
[DebugInfo] Call site entries cannot be generated for FrameSetup calls

Instructions marked as FrameSetup do not cause requestLabelAfterInsn to
be called and so no such label is generated. Call instructions which
require call site entries to be generated require this label to be
present in order to calculate the return PC offset/address, but the
check for whether the call instruction is marked as FrameSetup was not
present.

Therefore in the case where a call instruction is marked as FrameSetup,
an assertion failure occurs if a call site entry is to be generated.
This is the case with RISC-V's implementation of save/restore via
library calls.

Differential Revision: https://reviews.llvm.org/D71593
llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
llvm/test/DebugInfo/RISCV/saverestore.ll [new file with mode: 0644]