18 Oct 2011 11:44
gcc dwarf2out: Drop the size + performance overhead of DW_AT_sibling
Hi Mark, <warning> moved to a public list </warning> On Tue, 18 Oct 2011 11:26:03 +0200, Mark Wielaard wrote: > On Mon, 2011-10-17 at 15:36 +0200, Jan Kratochvil wrote: > > gcc.post: Drop DW_AT_sibling; remove 27 LoC: -3.49% .debug size, -1.7% > > GDB time. > > Do you have more information about that? Systemtap for example, which > uses elfutils libdw uses DW_AT_subling to more efficiently go through > the debug_info DIEs. The patch with various benchmarks is: [patch] dwarf2out: Drop the size + performance overhead of DW_AT_sibling http://gcc.gnu.org/ml/gcc-patches/2011-10/msg00992.html GDB also uses DW_AT_sibling when available (skip_one_die and locate_pdi_sibling). The mail above quotation: # I guess DW_AT_sibling had real performance gains on CPUs with 1x (=no) clock # multipliers. Nowadays mostly only the data size transferred over FSB matters. The problem is the DIEs skipping by CPU is so cheap on current CPUs it cannot be compared with the overhead of providing the helper data for it. I did not expect dropping DW_AT_sibling would be even a consumer performance _improvement_. I expected more it will be either not measurable or just not significant enough for the .debug on-disk sizes cost justification. I did only gdb and idb benchmarks. systemtap benchmark is welcome, libstdc++ files for benchmark, if it is enough for systemtap this way:(Continue reading)
RSS Feed