<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 5, 2017 at 3:59 PM, Johan Engelen via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span style="font-size:12.8px">Hi all,</span><div style="font-size:12.8px">  I just found an optimization regression regarding simple dataflow/constprop analysis:</div><div style="font-size:12.8px"><a href="https://godbolt.org/g/Uz8P7t" target="_blank">https://godbolt.org/g/Uz8P7t</a><br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">This code</div><div style="font-size:12.8px">```</div><div style="font-size:12.8px"><div>int dataflow(int b) {</div><div>  int a;</div><div><br></div><div>  if (b==4)</div><div>    a = 3*b; // fully optimized when changed to a = 3;</div><div>  else </div><div>    a = 5;</div><div><br></div><div>  if (a == 4)</div><div>    return 0;</div><div>  else</div><div>    return 1;</div><div>}</div></div><div style="font-size:12.8px">```</div><div style="font-size:12.8px">is no longer optimized to just a "return 1". The regression happened in LLVM 3.6 --> 3.7.</div><div style="font-size:12.8px"><br></div></div></blockquote><div><br></div><div>NewGVN should be able to  do this at this point, but it's really a VRP issue.</div><div><br></div></div></div></div>