[llvm-dev] DWARF Generator

Robinson, Paul via llvm-dev llvm-dev at lists.llvm.org
Fri Nov 18 12:23:00 PST 2016


Re DW_FORM_string the savings is small but since it came up I thought 
I'd mention the idea.  I agree it's not worth pursuing any further.  
An API to use that form explicitly (that isn't the normal debug-info
generation API) to facilitate testing is fine.

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.

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.
--paulr


More information about the llvm-dev mailing list