llvm-project/llvm/test/DebugInfo/COFF
Bob Haarman 223303c5a3 Reland r311957 [codeview] support more DW_OPs for more complete debug info
Summary:
Some variables show up in Visual Studio as "optimized out" even in -O0
-Od builds. This change fixes two issues that would cause this to
happen. The first issue is that not all DIExpressions we generate were
recognized by the CodeView writer. This has been addressed by adding
support for DW_OP_constu, DW_OP_minus, and DW_OP_plus. The second
issue is that we had no way to encode DW_OP_deref in CodeView. We get
around that by changinge the type we encode in the debug info to be
a reference to the type in the source code.

This fixes PR34261.

The reland adds two extra checks to the original: It checks if the
DbgVariableLocation is valid before checking any of its fields, and
it only emits ranges with nonzero registers.

Reviewers: aprantl, rnk, zturner

Reviewed By: rnk

Subscribers: mgorny, llvm-commits, aprantl, hiraditya

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

llvm-svn: 312034
2017-08-29 20:59:25 +00:00
..
anonymous-struct.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
array-odr-violation.ll IR: Replace the "Linker Options" module flag with "llvm.linker.options" named metadata. 2017-06-12 20:10:48 +00:00
asan-module-ctor.ll
asan-module-without-functions.ll
asm.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
big-type.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
bitfields.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
comdat.ll Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
cpp-mangling.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
defer-complete-type.ll [codeview] Write LF_UDT_SRC_LINE records (PR28251) 2016-06-22 21:22:13 +00:00
dlang.ll Followup to r308890: don't assert the llvm llvm version number. 2017-07-24 19:44:43 +00:00
enum.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
fp-stack.ll Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
global-dllimport.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
globals-discarded.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
globals.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
inheritance.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
inlining-files.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
inlining-header.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
inlining-levels.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
inlining-padding.ll
inlining-same-name.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
inlining.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
int8-char-type.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
lines-bb-start.ll [codeview] Ignore DBG_VALUEs when choosing a BB start source loc 2017-07-31 21:03:08 +00:00
lit.local.cfg
local-constant.ll Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
local-variable-gap.ll Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
local-variables.ll [DebugInfo] Don't turn dbg.declare into DBG_VALUE for static allocas 2017-08-01 19:45:09 +00:00
long-name.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
long-type-name.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
multifile.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
multifunction.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
nested-types.ll [codeview] Emit nested enums and typedefs from classes 2017-08-08 20:30:14 +00:00
no-cus.ll [codeview] Fix assertion failure introduced in r295354 refactoring 2017-05-12 17:02:40 +00:00
parameter-order.ll [codeview] Emit parameter variables in the right order 2016-06-24 17:55:40 +00:00
pieces.ll Reland r311957 [codeview] support more DW_OPs for more complete debug info 2017-08-29 20:59:25 +00:00
pr28747.ll Emit S_COMPILE3 record once per TU rather than once per function 2016-11-02 21:30:35 +00:00
purge-typedef-udts.ll [CodeView] Don't output S_UDT symbols for forward decls. 2017-08-28 18:49:04 +00:00
register-variables.ll [X86] Qualify the RMW INC/DEC patterns with NotSlowIncDec. 2017-08-26 06:24:25 +00:00
retained-types.ll [codeview] Fix letter casing in FileCheck regexes 2016-06-23 18:23:28 +00:00
scopes.ll Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
simple.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
synthetic.ll DebugInfo: elide type index entries for synthetic types 2017-05-03 21:39:01 +00:00
tail-call-without-lexical-scopes.ll
typedef.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
types-array-advanced.ll Reland r311957 [codeview] support more DW_OPs for more complete debug info 2017-08-29 20:59:25 +00:00
types-array.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
types-basic.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
types-calling-conv.ll Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
types-data-members.ll MC/COFF: Do not emit forward associative section referenceds. 2017-02-17 17:32:54 +00:00
types-nested-class.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
types-non-virtual-methods.ll [codeview] Write LF_UDT_SRC_LINE records (PR28251) 2016-06-22 21:22:13 +00:00
types-ptr-to-member.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
types-recursive-struct.ll [codeview] Write LF_UDT_SRC_LINE records (PR28251) 2016-06-22 21:22:13 +00:00
udts.ll [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
vftables.ll [codeview] Emit vtable shape information 2016-08-31 15:59:30 +00:00
virtual-method-kinds.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
virtual-methods.ll Resubmit "Write the TPI stream from a PDB to Yaml." 2016-08-18 16:49:29 +00:00
vtable-optzn-array.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00