<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Nov 18, 2016 at 5:51 PM Robinson, Paul <<a href="mailto:paul.robinson@sony.com">paul.robinson@sony.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> Regarding DWARF parsing speed where strings are concerned:  DWARF 5 will<br class="gmail_msg">
> ruin this because DW_FORM_strx is a ULEB; so, every DIE that has a<br class="gmail_msg">
> DW_AT_name or DW_AT_linkage_name will become variable-size (just as bad<br class="gmail_msg">
> as DW_FORM_string).  In a RelWithDebInfo build of Clang, I got just over<br class="gmail_msg">
> 100 million DIEs and 40.2% had DW_AT_name.  I didn't try to count DIEs<br class="gmail_msg">
> that had DW_AT_linkage_name without DW_AT_name; it can happen, though, so<br class="gmail_msg">
> the number of variable-size DIEs in DWARF 5 will actually be higher than<br class="gmail_msg">
> that.<br class="gmail_msg">
<br class="gmail_msg">
More data from my RelWithDebInfo build of Clang:<br class="gmail_msg">
<br class="gmail_msg">
102,654,608 total DIEs<br class="gmail_msg">
 95,864,960 fixed-size in DWARF 4<br class="gmail_msg">
 58,189,225 fixed-size in DWARF 5, assuming<br class="gmail_msg">
            all FORM_strp attributes become FORM_strx<br class="gmail_msg">
<br class="gmail_msg">
That is, fixed-size DIEs go from 93% to 57% of all DIEs.<br class="gmail_msg">
If it's really faster to load fixed-size DIEs, this is likely to have<br class="gmail_msg">
a noticeable effect.<br class="gmail_msg">
<br class="gmail_msg">
><br class="gmail_msg">
> Maybe we should propose a fixed-size variant of FORM_strx, or that strx<br class="gmail_msg">
> just be fixed size?  The public-comment review period for DWARF 5 is not<br class="gmail_msg">
> over yet, and this seems like a valid concern.<br class="gmail_msg">
<br class="gmail_msg">
I have a little more data to look at but I am going to propose this to<br class="gmail_msg">
the DWARF committee.<br class="gmail_msg">
<br class="gmail_msg"></blockquote><div><br></div><div>Agreed. Let's talk offline about a proposal here if you'd like.</div><div><br></div><div>-eric</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> --paulr<br class="gmail_msg">
> _______________________________________________<br class="gmail_msg">
> LLVM Developers mailing list<br class="gmail_msg">
> <a href="mailto:llvm-dev@lists.llvm.org" class="gmail_msg" target="_blank">llvm-dev@lists.llvm.org</a><br class="gmail_msg">
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class="gmail_msg">
</blockquote></div></div>