[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
> that.

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.

> --paulr
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

More information about the llvm-dev mailing list