<br><br><div class="gmail_quote">On Fri Oct 03 2014 at 7:33:21 AM Alexander Kornienko <<a href="mailto:alexfh@google.com">alexfh@google.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr"><br>
On 3 Oct 2014 09:05, "Manuel Klimek" <<a href="mailto:klimek@google.com" target="_blank">klimek@google.com</a>> wrote:<br>
><br>
><br>
> On Thu, Oct 2, 2014, 19:37 Alexander Kornienko <<a href="mailto:alexfh@google.com" target="_blank">alexfh@google.com</a>> wrote:<br>
>><br>
>> One important thing this patch does, it splits isBaseOf with and without distance to avoid runtime selection.<br>
>><br>
>> As for the caching, I believe it doesn't matter much, as on my test (lib/Sema/SemaOverload.cpp) most of the calls were asking one of a small number of table cells. Here's some data:<br>
>><br>
>>   * total calls: ~39M<br>
>>   * total number of pairs asked: 1646<br>
>>   * 103 mostly asked cells cover 80% of all calls<br>
>>   * 219 mostly asked cells cover 90% of all calls<br>
>>   * 50 mostly asked rows (< 6kB) cover 97% of all calls<br>
><br>
> if they're spread out you might still hit 50 different pages...</p>
<p dir="ltr">You mean cache lines?</p></blockquote><div><br></div><div>Both. :)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<p dir="ltr">>><br>
>> The other solutions you've proposed are also interesting (especially #4 which is the most elegant, but requires some care in arranging the primes), but this one is the most straightforward, IMO.<br>
>><br>
>> <a href="http://reviews.llvm.org/D5577" target="_blank">http://reviews.llvm.org/D5577</a><br>
><br>
><br>
</p>
</blockquote></div>