<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 17 September 2015 at 22:25, Larisse Voufo <span dir="ltr"><<a href="mailto:lvoufo@gmail.com" target="_blank">lvoufo@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">lvoufo added a comment.<br>
<span class=""><br>
<br>
<br>
> -2-<br>
<br>
>  Does "opt -basicaa -gvn" clean up the redundant load? If so, is it okay that instcombine doesn't?<br>
<br>
<br>
</span>Now it does, as of Diff 35065 of <a href="http://reviews.llvm.org/D11826" rel="noreferrer" target="_blank">http://reviews.llvm.org/D11826</a>.</blockquote><div><br></div><div>Is that the correct link? That appears to introduce a new LLVM IR feature that changes both clang and llvm. If the transform is legal for instcombine to do, then it's also legal for gvn to do with no new IR features involved.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> But it still does not make it okay imo since once might still expect<br>
something like "-basicaa -instcombine -inline -early-cse -instcombine" to remove redundant loads when<br>
"-basicaa -instcombine -early-cse -instcombine" does.<br></blockquote><div><br></div><div>Well, yeah. I think it's unreasonable to expect instcombine to hack on your loads, but it does and I'll just move right along. What would surprise me is if instcombine folded redundant loads that gvn couldn't. That would suggest a problem in gvn...</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><a href="http://reviews.llvm.org/D12886" rel="noreferrer" target="_blank">http://reviews.llvm.org/D12886<br></a></blockquote><div> </div></div></div></div>