DebugInfo: Lazily construct subprogram definition DIEs.
authorDavid Blaikie <dblaikie@gmail.com>
Tue, 27 May 2014 18:37:48 +0000 (18:37 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Tue, 27 May 2014 18:37:48 +0000 (18:37 +0000)
commit254d093f991287bea06e47c27ef2e14db36b1c59
tree957787852e37aee1067aa0c24d4fa517da8f940d
parentdef5a057976fe7ab21c8a6e6ccf1311d20971f4f
DebugInfo: Lazily construct subprogram definition DIEs.

A further step to correctly emitting concrete out of line definitions
preceeding inlined instances of the same program.

To do this, emission of subprograms must be delayed until required since
we don't know which (abstract only (if there's no out of line
definition), concrete only (if there are no inlined instances), or both)
DIEs are required at the start of the module.

To reduce the test churn in the following commit that actually fixes the
bug, this commit introduces the lazy DIE construction and cleans up test
cases that are impacted by the changes in the resulting DIE ordering.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209675 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
test/DebugInfo/X86/concrete_out_of_line.ll
test/DebugInfo/X86/debug-info-blocks.ll
test/DebugInfo/X86/inline-member-function.ll
test/DebugInfo/X86/inline-seldag-test.ll
test/DebugInfo/X86/sret.ll
test/DebugInfo/debug-info-qualifiers.ll
test/DebugInfo/namespace.ll
test/DebugInfo/varargs.ll
test/Linker/type-unique-odr-a.ll