]> granicus.if.org Git - llvm/commit
DWARF: Avoid cross-CU references under Fission
authorDavid Blaikie <dblaikie@gmail.com>
Fri, 12 May 2017 01:13:45 +0000 (01:13 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Fri, 12 May 2017 01:13:45 +0000 (01:13 +0000)
commit054c35d6a228935a03c6bd449a1d2ce3c1c691cf
treeabfb8de737d69e9a62bf75c6dcd6341959ec5ee2
parent022fc8e3fd79bac57627e07e4771f00a21f25e3a
DWARF: Avoid cross-CU references under Fission

Turns out that the Fission/Split DWARF package format (DWP) is currently
insufficient to handle cross-CU (ref_addr) references. So for now,
duplicate any debug info needed in these situations:
* inlined_subroutine's abstract_origin
* inlined variable's abstract_origin
* types

Keep the ref_addr behavior in general, including in the split DWARF
inline debug info that can be emitted into the object files for online
symbolication.
Keep a flag to use the old (ref_addr) behavior for testing ways of
addressing this limitation in the DWP tool (& for those not using DWP
packaging).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302858 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfDebug.h
lib/CodeGen/AsmPrinter/DwarfFile.h
lib/CodeGen/AsmPrinter/DwarfUnit.cpp
lib/CodeGen/AsmPrinter/DwarfUnit.h
test/DebugInfo/X86/split-dwarf-cross-unit-reference.ll