<div>Thank you for your reply.<div><br></div></div><div>In case of setcc, I saw it was removed.</div><div><br></div><div>But I could not delete the extension instruction in other cases of zero extension from i1 to i32.</div>

<div><br>For example, in this case.<br><br>int main( int argc, char *argv[] ) {<br>   int i = ( argc > 0 ) & ( argv != NULL );<br>   return i;<br>}<br><br>
</div><div>So can you let us know how to remove it?</div><div><div><br></div><div>Thank you in advance.</div><div><br></div><div>Minwook Ahn</div></div><br>p.s. Sorry for the duplicated message if you get this twice.<br>
<br><div class="gmail_quote">2010/1/20 Richard Osborne <span dir="ltr"><<a href="mailto:richard@xmos.com" target="_blank">richard@xmos.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div><br>
On 20 Jan 2010, at 07:55, minwook Ahn wrote:<br>
<br>
> Dear developers.<br>
><br>
> We try to make our own backend of llvm for our target machine.<br>
><br>
> Assume that we have the following code in our source code.<br>
><br>
> int i = ( a < b );<br>
><br>
> The code is translated into<br>
><br>
> r0 <- gt r1 r2<br>
> r3 <- and r0 0x1<br>
><br>
> We think that r3 is not necessary. Is there any way to eliminate it by just modifying<br>
><br>
> our backend?<br>
><br>
> Thank you in advance.<br>
><br>
> Minwook Ahn<br>
<br>
</div></div>Have you told LLVM the result of setcc operations is 0 or 1? Add the following to the constructor of your ISelLowering class:<br>
<br>
setBooleanContents(ZeroOrOneBooleanContent);<br>
<font color="#888888"><br>
--<br>
Richard Osborne | XMOS<br>
<a href="http://www.xmos.com" target="_blank">http://www.xmos.com</a><br>
<br>
</font></blockquote></div><br>