<div dir="ltr">Thanks for running some numbers - pity there wasn't more of a win. But props to LLD, I guess :)</div><br><div class="gmail_quote"><div dir="ltr">On Thu, Aug 3, 2017 at 10:08 PM Rafael Espíndola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">At -O0 linking the debug -O0 binaries the results are<br>
<br>
base: 9.274785113<br>
no-base: 9.177534113<br>
<br>
so the extra size seems to dominate at -O0<br>
<br>
With a regular linking of -O3 binaries the results are<br>
<br>
base: 11.765158874<br>
no-base 11.961078054<br>
<br>
But the extra relocations dominate in a regular link.<br>
<br>
In any case, the difference is pretty small.<br>
<br>
Cheers,<br>
Rafael<br>
<br>
<br>
On 3 August 2017 at 19:21, Rafael Avila de Espindola<br>
<<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>> wrote:<br>
> I have uploaded 4 build of clangs to<br>
><br>
>  <a href="https://s3-us-west-2.amazonaws.com/linker-tests/clang-tests.tar.xz" rel="noreferrer" target="_blank">https://s3-us-west-2.amazonaws.com/linker-tests/clang-tests.tar.xz</a><br>
><br>
> They are 4 cases -O0/-O3 use-dwarf-ranges-base-address-specifier/not<br>
><br>
> I will try benchmarking them in a bit.<br>
><br>
> Cheers,<br>
> Rafael<br>
><br>
> David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> writes:<br>
><br>
>> On Thu., 3 Aug. 2017, 5:19 pm Rafael Avila de Espindola via llvm-commits <<br>
>> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
>><br>
>>> David Blaikie via Phabricator <<a href="mailto:reviews@reviews.llvm.org" target="_blank">reviews@reviews.llvm.org</a>> writes:<br>
>>><br>
>>> > (aside: does anyone have an idea of how well LLD scales with the number<br>
>>> of<br>
>>> > relocations versus the number of bytes of data in a section? I'd love to<br>
>>> know<br>
>>> > how much this reduction in relocations is worth (like is runtime of the<br>
>>> linker<br>
>>> > roughly N*relocs + M*raw bytes? Could be interesting to know - obviously<br>
>>> > varying on different configurations (cores, disk speed, etc))<br>
>>><br>
>>> We have a special case for relocations in non alloc sections (like debug<br>
>>> info) that make it pretty fast.<br>
>>><br>
>>> I can try to build clang -O0 -g with and without<br>
>>> --use-dwarf-ranges-base-address-specifier and compare if you want. Can<br>
>>> you think of a better test?<br>
>>><br>
>><br>
>> An optimised build would be better - more likely to produce discontinuous<br>
>> ranges that use debug_ranges.<br>
>><br>
>> That's where I was seeing this internally - release (O3) builds with debug<br>
>> info (debug info is archives for "just in case" situations)<br>
>><br>
>> It also might be dwarfed (Har Har) by other relocations in a normal -g<br>
>> build compared to split-dwarf (string relocations especially).<br>
>><br>
>> Depends how far you want to go. I mean I'd be curious about whatever data<br>
>> you can get, for sure.<br>
>><br>
>> If you could measure the size or number of relocations in debug_* sections<br>
>> of whatever you test, that might be good (but I realise it might be too<br>
>> much work). That way if we know this change removes X relocs and saves Y<br>
>> time, we have so many more Xs and Ys we can save. (If you do look that far,<br>
>> really most/all of the relocs we /need/ (ie: the lower bound) are those in<br>
>> debug_line))<br>
>><br>
>><br>
>>> Cheers,<br>
>>> Rafael<br>
>>> _______________________________________________<br>
>>> llvm-commits mailing list<br>
>>> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
>>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
>>><br>
</blockquote></div>