<div dir="ltr">Interesting.<div>I don't see how it legally decides to do that, but okay.</div><div>:)<br></div><div><br></div><div>In any case, i still think you should simplify this code unless we have anything that shows the complexity is worth it :)</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 6, 2016 at 3:55 PM, David Callahan <span dir="ltr"><<a href="mailto:dcallahan@fb.com" target="_blank">dcallahan@fb.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">david2050 added a comment.<br>
<br>
This snippet<br>
<br>
int foo(int b, int j, int N) {<br>
<span class=""> if (b) {<br>
int i;<br>
for (i = 0; i < N; i++)<br>
;<br>
</span> j = 0;<br>
}<br>
return j;<br>
}<br>
<br>
via<br>
<br>
clang -c -emit-llvm -O0 ...<br>
opt -sroa -adce -adce-remove-loops -S ...<br>
<br>
generates<br>
<br>
define i32 @foo(i32 %b, i32 %j, i32 %N) #0 {<br>
<span class=""> %1 = icmp ne i32 %b, 0<br>
br i1 %1, label %2, label %3<br>
<br>
; <label>:2: ; preds = %0<br>
br label %3<br>
<br>
; <label>:3: ; preds = %2, %0<br>
</span> %.0 = phi i32 [ %j, %0 ], [ 0, %2 ]<br>
ret i32 %.0<br>
}<br>
<br>
<br>
<a href="https://reviews.llvm.org/D23824" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D23824</a><br>
<br>
<br>
<br>
</blockquote></div><br></div>