[llvm-dev] DWARF Generator
Robinson, Paul via llvm-dev
llvm-dev at lists.llvm.org
Fri Nov 18 17:50:50 PST 2016
> Regarding DWARF parsing speed where strings are concerned: DWARF 5 will
> ruin this because DW_FORM_strx is a ULEB; so, every DIE that has a
> DW_AT_name or DW_AT_linkage_name will become variable-size (just as bad
> as DW_FORM_string). In a RelWithDebInfo build of Clang, I got just over
> 100 million DIEs and 40.2% had DW_AT_name. I didn't try to count DIEs
> that had DW_AT_linkage_name without DW_AT_name; it can happen, though, so
> the number of variable-size DIEs in DWARF 5 will actually be higher than
More data from my RelWithDebInfo build of Clang:
102,654,608 total DIEs
95,864,960 fixed-size in DWARF 4
58,189,225 fixed-size in DWARF 5, assuming
all FORM_strp attributes become FORM_strx
That is, fixed-size DIEs go from 93% to 57% of all DIEs.
If it's really faster to load fixed-size DIEs, this is likely to have
a noticeable effect.
> Maybe we should propose a fixed-size variant of FORM_strx, or that strx
> just be fixed size? The public-comment review period for DWARF 5 is not
> over yet, and this seems like a valid concern.
I have a little more data to look at but I am going to propose this to
the DWARF committee.
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
More information about the llvm-dev