<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 11, 2016 at 5:20 PM, Philip Reames <span dir="ltr"><<a href="mailto:listmail@philipreames.com" target="_blank">listmail@philipreames.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">David,<br>
<br>
I very deeply believe that limiting hoisting in the IR to reduce register pressure is fundamentally the wrong approach.  The backend is responsible for sinking if desired to reduce register pressure. We do not model register pressure in the IR.  At all.  Period.</blockquote><div><br></div><div>Agree -- with a small cost of doing optimization and undo it later.  Correcting aggressive LICM is probably straightforward to do. There are also cases where this is not the case -- this is slightly off topic.</div><div><br></div><div>thanks,</div><div><br></div><div>David</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888"><br>
<br>
Philip</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On 03/11/2016 05:08 PM, David Li wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
davidxl added a comment.<br>
<br>
I have not read the patch in details, but it seems the main purpose of the patch to throttle LICM to reduce register pressure and the compile time benefit due to reduced LVI queries is just a good side effect of the patch? Do we have any performance data (runtime) showing the usefulness of the throttling?  (Whether this is the right approach to solve the spill problem is also subject to discussions).<br>
<br>
<br>
Repository:<br>
   rL LLVM<br>
<br>
<a href="http://reviews.llvm.org/D18069" rel="noreferrer" target="_blank">http://reviews.llvm.org/D18069</a><br>
<br>
<br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br></div></div>