<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jun 9, 2013 at 11:31 PM, <a href="mailto:ihusar@fit.vutbr.cz">ihusar@fit.vutbr.cz</a> <span dir="ltr"><<a href="mailto:ihusar@fit.vutbr.cz" target="_blank">ihusar@fit.vutbr.cz</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello everyone,<br>
<br>
  we are planning to implement a stronger alias analysis<br>
for backend, because e.g. for VLIW architectures, this is our main performance limitation.<br>
I would have 2 questions regarding this.<br>
<br>
  I know that backend processes one function at a time,<br>
is it somehow possible to do there a whole program analysis,<br>
or could you give me some guidelines?<br>
<br>
  Which alias analysis algorithm you would recommend?<br>
There was a Stensgaard algorithm implemented before, but noone<br>
was maintaning it, so it was removed</blockquote><div><br></div><div style>There were other concerns that should not be gone into on this mailing list.</div><div style> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
. Do you think that this could be a suitable<br>
algorithm or should we choose something newer and stronger?<br>
Regarding the scalability, it ok for us, if the algorithm would run e.g. 1 hour for a<br>
100 KLOC application.<br></blockquote><div><br></div><div style>Newer implementations of Andersen's will give you more accurate analysis, and run in about 20 seconds on 1.5 million LOC on a modern machine.</div><div style>
You could actually do better with a little work, but that is an actual number from an real field-sensitive solver implemented on top of LLVM, running on Wine (that is about 2.5 million lines of code).</div><div style>Scalability is roughly linear in practice. The GIMP, which is about 700k LOC, takes 4 seconds.</div>
<div style><br></div><div style>There are always edge cases, of course.</div><div style><br></div></div></div></div>