On Mon, 28 Sep 2020 12:42:33 +0200, Jakub Jelinek wrote: > On Mon, Sep 28, 2020 at 12:31:59PM +0200, Mark Wielaard wrote: > > Finally I am interested in your proposal to implement a different way > > to reduce the size of DIE trees by eliminating "unused" DIEs. It is > > hard to predict what effect that would have without seeing an > > implementation (in theory GCC with LTO would not actually generate > > debuginfo for unused functions). But I think that can be done separate > > from your proposal and combined with other size reduction techniques. > > And note that GCC already does implement > -feliminate-unused-debug-{symbols,types} which are enabled by default and > are (at least in my eyes) sometimes too aggressive, so by eliminating even further > DIEs the debug experience might be even worse. git clone git://git.jankratochvil.net/massrebuild ./dwarfredundant lldb-debuginfo-11.0.0-0.2.rc3.fc34.x86_64/usr/lib/debug/usr/lib64/liblldb.so.11.0.0-11.0.0-0.2.rc3.fc34.x86_64.debug For example: saved=27: 0x0193b058: DW_TAG_subprogram [47] * DW_AT_abstract_origin [DW_FORM_ref_addr] (0x000000000515d936 "_ZN12lldb_private17StoppointLocationD2Ev") DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) DW_AT_high_pc [DW_FORM_udata] (1) DW_AT_frame_base [DW_FORM_exprloc] (DW_OP_call_frame_cfa) DW_AT_GNU_all_call_sites [DW_FORM_flag_present] (true) DW_AT_sibling [DW_FORM_ref_udata] (cu + 0x1da4f => {0x0193b073}) 0x0193b06b: DW_TAG_formal_parameter [55] DW_AT_abstract_origin [DW_FORM_ref_addr] (0x000000000515d941) DW_AT_location [DW_FORM_exprloc] (DW_OP_reg5 RDI) 0x0193b072: NULL This DIE describes only a concrete function instance at address 0x0. No function can exist on address 0x0 on x86_64, that is a discarded/deduplicated function: [Dwarf-Discuss] DWARF for linker GC'd code http://lists.dwarfstd.org/pipermail/dwarf-discuss-dwarfstd.org/2020-July/004683.html I do not see what any DWARF consumer could find out from such a DIE. And there are many such DIEs, something a bit less than 28% of what DWZ saves (28% is incl. removal of DW_UT_type declarations). Jan _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx