<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 22, 2015 at 9:27 PM, John Regehr <span dir="ltr"><<a href="mailto:regehr@cs.utah.edu" target="_blank">regehr@cs.utah.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I just noticed: most of the results in this batch seem to be about exploiting `[zs]ext i1` having cost 1<br>
in order to replace a select of cost 3.<br>
Could you do a run where select has cost 1 and [zs]ext i1 (and trunc to i1) has cost 2 or 3?<br>
</blockquote>
<br></span>
I tried this (or something quite similar) earlier and it caused Souper to introduce *a lot* of selects.  So the problem is that Souper's preferences become skewed too far in the other direction.<br></blockquote><div><br></div><div>Interesting. Do you happen to have some examples laying around?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
How about for the next run I give everything (except maybe div/rem) cost 1?</blockquote><div><br></div><div>That seems reasonable. Probably give mul >1 cost too due to the increased latency.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">  Then the only thing Souper will tell us about is when it can eliminate instructions, which seems to be a generally desirable thing.<br></blockquote><div><br></div><div>Except for decode-limited situations, in general decreasing the critical path length is more important than eliminating instructions. The critical path length is a target-independent lower bound on the maximum achievable execution speed; the number of instructions is not.</div><div><br></div><div>(assuming our chips don't start doing significant algebraic simplifications on the fly, which seems like a safe bet)</div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
As I said in the blog post, in the next batch Souper will exploit known bits.  I'm excited to see what kind of results come out of Philip's value-tracking-dom-conditions.<span class="HOEnZb"><font color="#888888"><br>
<br>
John<br>
</font></span></blockquote></div><br></div></div>