mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-16 00:33:10 +00:00
DebugInfo: Tag units as having been indexed in GNU pubnames by using a DW_AT_GNU_pubnames of DW_FORM_flag(_present) rather than sec_offsets to the pubnames/types sections
This is consistent with GDB ToT and reduces the number of relocations in (type and compile) units, substantially reducing relocations and debug size in fission + type units builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203082 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
df95a94064
commit
ca8b562f2d
@ -733,13 +733,7 @@ void DwarfDebug::addGnuPubAttributes(DwarfUnit *U, DIE *D) const {
|
||||
if (!GenerateGnuPubSections)
|
||||
return;
|
||||
|
||||
addSectionLabel(Asm, U, D, dwarf::DW_AT_GNU_pubnames,
|
||||
Asm->GetTempSymbol("gnu_pubnames", U->getUniqueID()),
|
||||
DwarfGnuPubNamesSectionSym);
|
||||
|
||||
addSectionLabel(Asm, U, D, dwarf::DW_AT_GNU_pubtypes,
|
||||
Asm->GetTempSymbol("gnu_pubtypes", U->getUniqueID()),
|
||||
DwarfGnuPubTypesSectionSym);
|
||||
U->addFlag(D, dwarf::DW_AT_GNU_pubnames);
|
||||
}
|
||||
|
||||
// Create new DwarfCompileUnit for the given metadata node with tag
|
||||
|
@ -6,8 +6,8 @@
|
||||
|
||||
; Check that the attributes in the compile unit both point to a correct
|
||||
; location, even when nothing is exported.
|
||||
; CHECK: DW_AT_GNU_pubnames [DW_FORM_sec_offset] (0x00000000)
|
||||
; CHECK: DW_AT_GNU_pubtypes [DW_FORM_sec_offset] (0x00000000)
|
||||
; CHECK: DW_AT_GNU_pubnames [DW_FORM_flag_present] (true)
|
||||
; CHECK-NOT: DW_AT_GNU_pubtypes [
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4}
|
||||
|
@ -47,8 +47,8 @@
|
||||
|
||||
; CHECK: .debug_info contents:
|
||||
; CHECK: Compile Unit: length = [[UNIT_SIZE:[0-9a-f]+]]
|
||||
; CHECK: DW_AT_GNU_pubnames [DW_FORM_sec_offset] (0x00000000)
|
||||
; CHECK: DW_AT_GNU_pubtypes [DW_FORM_sec_offset] (0x00000000)
|
||||
; CHECK: DW_AT_GNU_pubnames [DW_FORM_flag_present] (true)
|
||||
; CHECK-NOT: DW_AT_GNU_pubtypes [
|
||||
|
||||
; CHECK: [[C:[0-9a-f]+]]: DW_TAG_structure_type
|
||||
; CHECK-NEXT: DW_AT_name {{.*}} "C"
|
||||
@ -127,8 +127,8 @@
|
||||
|
||||
; DWARF3: .debug_info contents:
|
||||
; DWARF3: Compile Unit: length = [[UNIT_SIZE:[0-9a-f]+]]
|
||||
; DWARF3: DW_AT_GNU_pubnames [DW_FORM_data4] (0x00000000)
|
||||
; DWARF3: DW_AT_GNU_pubtypes [DW_FORM_data4] (0x00000000)
|
||||
; DWARF3: DW_AT_GNU_pubnames [DW_FORM_flag] (0x01)
|
||||
; DWARF3-NOT: DW_AT_GNU_pubtypes [
|
||||
|
||||
; DWARF3: [[C:[0-9a-f]+]]: DW_TAG_structure_type
|
||||
; DWARF3-NEXT: DW_AT_name {{.*}} "C"
|
||||
|
Loading…
x
Reference in New Issue
Block a user