<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Fri, Feb 19, 2016 at 5:10 PM Tim Shen <<a href="mailto:timshen@google.com" target="_blank">timshen@google.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I wonder if we can fix this by making the transformation simpler, that is, instead of doing:</div></div></blockquote><div><br></div></div><div dir="ltr"><div class="gmail_quote"><div>I wrote a prototype (see attach) for this idea, it actually improves some of the test cases (e.g. fma-assoc.ll: test_FMADD_ASSOC1), but pessimize several other cases (e.g. test_FMADD_ASSOC_EXT1).</div><div><br></div><div>I'm not sure what to do at this point, I have several options:</div><div>1) This pass simply omits the optimization for certain cases ("certain" needs to be defined).</div><div>2) This pass should never mutate anything out of the block, and may add a copy at the end of the block, if the value is live-out.</div><div>3) tune the transformation as I attempted, to make it simpler, working, and producing better result? It seems interesting to get the improvement as my prototype shown without hurting other test cases, but it needs a bit thinking and I'd like to fix the compiler crash soon.</div></div></div></div>