Keep track of inlined functions and their locations. This information is collected when nested llvm.dbg.func.start intrinsics are seen. (Right now, inliner removes nested llvm.dbg.func.start intrinisics during inlining.)

Create debug_inlined dwarf section using these information. This info is used by gdb, at least on Darwin, to enable better experience debugging inlined functions. See DwarfWriter.cpp for more information on structure of debug_inlined section.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68847 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel
2009-04-11 00:16:47 +00:00
parent dbf1e2b08b
commit 2057532679
7 changed files with 178 additions and 7 deletions

View File

@@ -506,7 +506,11 @@ namespace llvm {
/// DwarfPubTypesSection - Section directive for Dwarf info.
///
const char *DwarfPubTypesSection; // Defaults to ".debug_pubtypes".
/// DwarfDebugInlineSection - Section directive for inline info.
///
const char *DwarfDebugInlineSection; // Defaults to ".debug_inlined"
/// DwarfStrSection - Section directive for Dwarf info.
///
const char *DwarfStrSection; // Defaults to ".debug_str".
@@ -880,6 +884,9 @@ namespace llvm {
const char *getDwarfPubTypesSection() const {
return DwarfPubTypesSection;
}
const char *getDwarfDebugInlineSection() const {
return DwarfDebugInlineSection;
}
const char *getDwarfStrSection() const {
return DwarfStrSection;
}