llvm-project/llvm/test/DebugInfo/COFF
Adrian Prantl bceaaa9643 [IR] Remove the DIExpression field from DIGlobalVariable.
This patch implements PR31013 by introducing a
DIGlobalVariableExpression that holds a pair of DIGlobalVariable and
DIExpression.

Currently, DIGlobalVariables holds a DIExpression. This is not the
best way to model this:

(1) The DIGlobalVariable should describe the source level variable,
    not how to get to its location.

(2) It makes it unsafe/hard to update the expressions when we call
    replaceExpression on the DIGLobalVariable.

(3) It makes it impossible to represent a global variable that is in
    more than one location (e.g., a variable with multiple
    DW_OP_LLVM_fragment-s).  We also moved away from attaching the
    DIExpression to DILocalVariable for the same reasons.

This reapplies r289902 with additional testcase upgrades and a change
to the Bitcode record for DIGlobalVariable, that makes upgrading the
old format unambiguous also for variables without DIExpressions.

<rdar://problem/29250149>
https://llvm.org/bugs/show_bug.cgi?id=31013
Differential Revision: https://reviews.llvm.org/D26769

llvm-svn: 290153
2016-12-20 02:09:43 +00:00
..
anonymous-struct.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
asan-module-ctor.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
asan-module-without-functions.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
asm.ll Emit S_COMPILE3 record once per TU rather than once per function 2016-11-02 21:30:35 +00:00
big-type.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
bitfields.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
comdat.ll [codeview] Use comdats for debug info describing comdat functions 2016-05-25 23:16:12 +00:00
cpp-mangling.ll [codeview] Make function names more consistent with MSVC 2016-06-17 16:11:20 +00:00
defer-complete-type.ll [codeview] Write LF_UDT_SRC_LINE records (PR28251) 2016-06-22 21:22:13 +00:00
enum.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
fp-stack.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
global-dllimport.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
globals-discarded.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
globals.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
inheritance.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
inlining-files.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
inlining-header.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
inlining-levels.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
inlining-padding.ll Modify emitTypeInformation to use MemoryTypeTableBuilder, take 2 2016-05-23 20:23:46 +00:00
inlining-same-name.ll [CodeView] Don't crash on functions without subprograms 2016-07-28 05:03:22 +00:00
inlining.ll [X86] Optimization for replacing LEA with MOV at frame index elimination time 2016-09-26 06:42:07 +00:00
int8-char-type.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
lit.local.cfg
local-constant.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
local-variable-gap.ll [codeview] Optimize the size of defranges with gaps 2016-09-15 22:05:08 +00:00
local-variables.ll Reapply: "Remove debug location from common tail when tail-merging" 2016-10-26 17:01:47 +00:00
long-name.ll [codeview] Truncate records to maximum record size near 64KB 2016-10-05 22:36:07 +00:00
long-type-name.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
multifile.ll Emit S_COMPILE3 record once per TU rather than once per function 2016-11-02 21:30:35 +00:00
multifunction.ll Emit S_COMPILE3 record once per TU rather than once per function 2016-11-02 21:30:35 +00:00
parameter-order.ll [codeview] Emit parameter variables in the right order 2016-06-24 17:55:40 +00:00
pieces.ll [DIExpression] Introduce a dedicated DW_OP_LLVM_fragment operation 2016-12-05 18:04:47 +00:00
pr28747.ll Emit S_COMPILE3 record once per TU rather than once per function 2016-11-02 21:30:35 +00:00
register-variables.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
retained-types.ll [codeview] Fix letter casing in FileCheck regexes 2016-06-23 18:23:28 +00:00
scopes.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
simple.ll [AsmPrinter] Enable codeview for windows-itanium 2016-11-21 20:13:32 +00:00
tail-call-without-lexical-scopes.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
typedef.ll Emit S_COMPILE3 CodeView record 2016-09-20 17:20:51 +00:00
types-array-advanced.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
types-array.ll Emit S_COMPILE3 CodeView record 2016-09-20 17:20:51 +00:00
types-basic.ll [codeview] Emit parameter variables in the right order 2016-06-24 17:55:40 +00:00
types-calling-conv.ll [codeview] Write LF_UDT_SRC_LINE records (PR28251) 2016-06-22 21:22:13 +00:00
types-data-members.ll [codeview] Emit vtable shape information 2016-08-31 15:59:30 +00:00
types-nested-class.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +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 [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
types-recursive-struct.ll [codeview] Write LF_UDT_SRC_LINE records (PR28251) 2016-06-22 21:22:13 +00:00
udts.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
vftables.ll [codeview] Emit vtable shape information 2016-08-31 15:59:30 +00:00
virtual-method-kinds.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +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 [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00