<div dir="ltr"><div>@<span style="font-size:12.8px;white-space:nowrap">Manuel Jacob and </span><span style="font-size:12.8px;white-space:nowrap">Bruce Hoult</span></div><div><span style="font-size:12.8px;white-space:nowrap"><br></span>Thanks a lot for your answer.</div><div><br></div><div>Best Regards,</div><div>soham</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 2, 2016 at 3:12 PM, Manuel Jacob <span dir="ltr"><<a href="mailto:me@manueljacob.de" target="_blank">me@manueljacob.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 2016-09-02 14:59, Bruce Hoult via llvm-dev wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
llvm thinks so.<br>
<br>
You can easily see what it actually does in cases like this.<br>
<br>
echo 'int foo(int a){return 23 * a;}' >undeftimes.c<br>
clang -S -emit-llvm undeftimes.c<br>
vi undeftimes.ll # change the 23 to undef<br>
llc undeftimes.ll<br>
less undeftimes.s<br>
<br>
Personally, I find ARM (or other RISC) code far easier to follow than x86,<br>
so I generally add a "-march=arm" to the llc step if I'm on an x86 host,<br>
but that's personal preference.<br>
</blockquote>
<br></span>
Or even `opt -S -O3 undeftimes.ll` to see what the (full) optimizer pipeline does instead of just what llc does (llc only does a limited set of transformations).<div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
foo:<br>
push {r0}<br>
mov r0, #0<br>
add sp, sp, #4<br>
mov pc, lr<br>
<br>
Yep .. it just returns 0.<br>
<br>
Idle question, if anyone is reading still ... how do you get llc to do -Os<br>
or -Oz? The docs say the argument must be an integer, and anything other<br>
than 0..3 is rejected. (in fact .. bug report ... 10 thru 39 are also<br>
silently accepted as are 100 thru 399 etc)<br>
<br>
On Fri, Sep 2, 2016 at 3:33 PM, Soham Chakraborty via llvm-dev <<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
What is the value of undef * 0 in LLVM?<br>
<br>
According to its definition in  the LLVM IR reference;<br>
<br>
"The string ‘undef‘ can be used anywhere a constant is expected..."<br>
<br>
Am I correct to say that undef * 0 = 0 following this definition?<br>
<br>
Best Regards,<br>
soham<br>
______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br>
</blockquote>
<br>
______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
</blockquote>
</div></div></blockquote></div><br></div>