Use DW_OP_stack_value when reconstructing variable values with arithmetic.
authorAdrian Prantl <aprantl@apple.com>
Sat, 22 Apr 2017 20:54:06 +0000 (20:54 +0000)
committerAdrian Prantl <aprantl@apple.com>
Sat, 22 Apr 2017 20:54:06 +0000 (20:54 +0000)
commita2d25ac14a9555eb23207a7b4007302de9182d04
tree661a9c97d3bb4bf948237a23affa5171a4d34ba8
parentf27a714a9e6ea63b3fdd5d4e449ac7d0e417b185
Use DW_OP_stack_value when reconstructing variable values with arithmetic.

When the location description of a source variable involves arithmetic
on the value itself, it needs to be marked with DW_OP_stack_value since it
is not describing the variable's location, but rather its value.

This is a follow-up to r297971 and fixes the source testcase quoted in
the comment in debuginfo-dce.ll.

rdar://problem/30725338

llvm-svn: 301093
llvm/lib/Transforms/Utils/Local.cpp
llvm/test/Transforms/InstCombine/debuginfo-dce.ll