<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 4, 2014 at 3:11 PM, Sean Silva <span dir="ltr"><<a href="mailto:chisophugis@gmail.com" target="_blank">chisophugis@gmail.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="">On Tue, Mar 4, 2014 at 4:04 PM, Mark Seaborn <span dir="ltr"><<a href="mailto:mseaborn@chromium.org" target="_blank">mseaborn@chromium.org</a>></span> wrote:<br>

</div><div class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>The PNaCl project has implemented various IR simplification passes that simplify LLVM IR by lowering complex features to simpler features.  We'd like to upstream some of these IR passes to LLVM.  We'd like to explore if this acceptable, and if so, how we should go about doing this.</div>


<div><br></div><div>The immediate reason is that Emscripten is reusing PNaCl's IR passes for its new "fastcomp" backend [1].  It would be really useful if PNaCl and Emscripten could collaborate via upstream LLVM rather than a branch.</div>


<div><br></div><div>Some background:  There are two related use cases for these IR simplification passes:</div><div><br></div><div> 1) Simplifying the task of writing a new LLVM backend.  This is Emscripten's use case.  The IR simplification passes reduce the number of cases a backend has to handle, so they would be useful for anyone else creating a new backend.</div>

</div></blockquote><div><br></div></div><div>FWIW, this sounds to me like a sufficiently compelling use case to support getting this in-tree.</div></blockquote></div><br>Just in case it gets lost in my longer reply, I want to emphasize that if these will be used to simplify the in-tree backends and those backend maintainers are on board, then I am *totally* in favor of this going into the tree. My concerns are heavily based on the fact that as proposed, none of that seems likely to happen.</div>
</div>