<div dir="ltr">(Just replying to the one meta point here)<br><br><div class="gmail_quote"><div dir="ltr">On Thu, Dec 28, 2017 at 3:27 PM Hal Finkel via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">hfinkel added a comment.<br>
<br>
> Doing this so early on means that we can't recognize common, direct patterns in terms of select. While perhaps it would be better to go and teach everything to generically reason about either a select or a phi around control flow, that will need a really massive undertaking.<br>
<br>
FWIW, I believe that the outcome of the select/GVN discussion (e.g., from PR34603) has been that this is exactly what we need to do: we need to move select formation late in the pipeline, and likely canonicalize away from select early.<br></blockquote><div><br></div><div>OK, but that PR discussion is a *really* small subset of the community.</div><div><br></div><div>I don't actually have a strong opinion about select vs. CFG+phi really (and if anything, I *agree* that CFG+phi would be better than select). But I know that we have over a decade of tuning LLVM toward select, and this kind of a shift is going to be a *huge* undertaking. I'm still 100% OK if it is the right thing to do, and will be very happy to help out. But we're going to need to communicate this and discuss it *way* more widely than that PR, and do a lot of work to reverse the deep seeded and pervasive assumption in LLVM that we canonicalize to select early and reverse it late.</div><div><br></div><div>We need dev meeting talks, etc.. It's a really significant change of direction for the canonical IR of LLVM.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D39352" rel="noreferrer" target="_blank">https://reviews.llvm.org/D39352</a><br>
<br>
<br>
<br>
</blockquote></div></div>