<div dir="ltr">By the way, I was wondering if the locality (or the lack of thereof) of SymbolBody and Symbol would matter, so I tried to embed Symbol to SymbolBody, so that they are close in memory (probably on the same cache line). In many cases there is one-to-one correspondence between SymbolBody and Symbol, so backref pointer is rarely updated. That change however made the program slower. I don't understand why, though.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 10, 2016 at 12:24 PM, Rafael EspĂ­ndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> I expect that after this change, we will be removing many isLocal() function<br>
> calls because in many places we will be able to handle local and global<br>
> symbols in the same way (because they will be represented in the same data<br>
> structure.) Does this affect the performance?<br>
<br>
</span>Maybe. I would expect it to still be impact by the fact that we always<br>
look at member of a SymbolBody, instead of just comparing the value of<br>
the pointer.<br>
<br>
I will try to benchmark the followup patches.<br>
<br>
Cheers,<br>
Rafael<br>
</blockquote></div><br></div>