<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">I agree this is an improvement, but this approach is still failing to catch cases where the common uses are not on separate paths on the tree. In those cases no matter which order we take there will be a common use that can't be scheduled.<br>
</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Here is a sample case where we still fail to schedule a common load:<br></div>

<div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">







<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">void foo(double *x, double C) {<br> x[0] = x[0]*C + x[0] * x[0];<br>

 x[1] = x[1]*C + x[1] * x[1];<br>}</blockquote>


<p>Any ideas on how to get those cases? It would seem to me we'd need either a prepass or deferral of the decisions until the whole tree is inspected. Thoughts?</p></div></div><div class="gmail_extra"><br clear="all">
<div><div dir="ltr"><div><div style="line-height:1.5em;padding-top:10px;margin-top:10px;font-family:sans-serif;font-size:small"><span style="color:rgb(85,85,85);border-width:2px 0px 0px;border-style:solid;border-color:rgb(213,15,37);padding-top:2px;margin-top:2px">Raúl E Silvera |</span><span style="color:rgb(85,85,85);border-width:2px 0px 0px;border-style:solid;border-color:rgb(51,105,232);padding-top:2px;margin-top:2px"> SWE |</span><span style="color:rgb(85,85,85);border-width:2px 0px 0px;border-style:solid;border-color:rgb(0,153,57);padding-top:2px;margin-top:2px"> <a href="mailto:rsilvera@google.com" target="_blank">rsilvera@google.com</a> |</span><span style="border-width:2px 0px 0px;border-style:solid;border-color:rgb(238,178,17);padding-top:2px;margin-top:2px"><font color="#555555"> </font><font color="#0033bb"><u>408-789-2846</u></font></span></div>
<br></div></div></div>
<br><br><div class="gmail_quote">On Fri, May 23, 2014 at 9:32 AM, Nadav Rotem <span dir="ltr"><<a href="mailto:nrotem@apple.com" target="_blank">nrotem@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="">Hi Karthik,<br>
<br>
Can you please measure the effects of this patch on the LLVM test suite?  It would be interesting to see if other workloads are affected by this change and if they improve or regress.<br>
<br>
Thanks,<br>
Nadav<br>
<br>
</div><a href="http://reviews.llvm.org/D3800" target="_blank">http://reviews.llvm.org/D3800</a><br>
<br>
<br>
</blockquote></div><br></div>