[DebugInfo] Incorrect debug info record generated for loop counter.
authorAlexey Lapshin <a.v.lapshin@mail.ru>
Thu, 6 Jun 2019 21:19:39 +0000 (21:19 +0000)
committerAlexey Lapshin <a.v.lapshin@mail.ru>
Thu, 6 Jun 2019 21:19:39 +0000 (21:19 +0000)
commitb9f1e7b16ed2341e54b4e2033d111e7a2ca19b9a
tree6385b1d5e0caa713d4a1c13612b873ff12392834
parent37bd9bd13750a368c0468f0768f29edc37dc540a
[DebugInfo] Incorrect debug info record generated for loop counter.

Incorrect Debug Variable Range was calculated while "COMPUTING LIVE DEBUG VARIABLES" stage.
Range for Debug Variable("i") computed according to current state of instructions
inside of basic block. But Register Allocator creates new instructions which were not taken
into account when Live Debug Variables computed. In the result DBG_VALUE instruction for
the "i" variable was put after these newly inserted instructions. This is incorrect.
Debug Value for the loop counter should be inserted before any loop instruction.

Differential Revision: https://reviews.llvm.org/D62650

llvm-svn: 362750
llvm/lib/CodeGen/LiveDebugVariables.cpp
llvm/test/CodeGen/AArch64/wrong_debug_loc_after_regalloc.ll [new file with mode: 0644]
llvm/test/DebugInfo/X86/dbg-addr-dse.ll
llvm/test/DebugInfo/X86/live-debug-variables.ll