DebugInfo: Following up to r209677, refactor local variable emission to delay the...
authorDavid Blaikie <dblaikie@gmail.com>
Fri, 13 Jun 2014 22:18:23 +0000 (22:18 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Fri, 13 Jun 2014 22:18:23 +0000 (22:18 +0000)
commit0fcb9cb1c11b209774bb7dc4f23e796b7cafdbf3
tree314e21f1df4dff57e3f9cb2336baf4dca02f23b9
parentc4268a67950514b1e5f2f602882dc7c22609c448
DebugInfo: Following up to r209677, refactor local variable emission to delay the choice between emitting the definition attributes or using DW_AT_abstract_definition

This doesn't fix the abstract variable handling yet, but it introduces a
similar delay mechanism as was added for subprograms, causing
DW_AT_location to be reordered to the beginning of the attribute list
for local variables, and fixes all the test fallout for that.

A subsequent commit will remove the abstract variable handling in
DbgVariable and just do the abstract variable lookup at module end to
ensure that abstract variables introduced after their concrete
counterparts are appropriately referenced by the concrete variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210943 91177308-0d34-0410-b5e6-96231b3b80d8
20 files changed:
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfDebug.h
lib/CodeGen/AsmPrinter/DwarfUnit.cpp
lib/CodeGen/AsmPrinter/DwarfUnit.h
test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll
test/DebugInfo/SystemZ/variable-loc.ll
test/DebugInfo/X86/DW_AT_location-reference.ll
test/DebugInfo/X86/dbg-const-int.ll
test/DebugInfo/X86/dbg-value-const-byref.ll
test/DebugInfo/X86/dbg-value-location.ll
test/DebugInfo/X86/debug-info-block-captured-self.ll
test/DebugInfo/X86/debug-info-blocks.ll
test/DebugInfo/X86/debug-loc-offset.ll
test/DebugInfo/X86/empty-and-one-elem-array.ll
test/DebugInfo/X86/misched-dbg-value.ll
test/DebugInfo/X86/op_deref.ll
test/DebugInfo/X86/parameters.ll
test/DebugInfo/X86/sret.ll
test/DebugInfo/cross-cu-inlining.ll
test/DebugInfo/dead-argument-order.ll