Understood; however, I see the same change/difference when calling llc -O0?<div><br></div><div>Are there any other differences between calling these separately? Or does llc not take -O levels?<br><div><br><div class="gmail_quote">
On Wed, Mar 13, 2013 at 3:53 AM, Nick Lewycky <span dir="ltr"><<a href="mailto:nicholas@mxc.ca" target="_blank">nicholas@mxc.ca</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Ryan Taylor wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Why would the generated assembly results for a piece of code be<br>
different if I did this:<br>
<br>
clang -S -emit-llvm sample.c -o sample.ll<br>
llc sample.ll -o sample.s<br>
<br>
then if I did this:<br>
<br>
clang -S sample.c -o sample.s<br>
</blockquote>
<br></div></div>
For one example, 'llc' defaults to -O2 but clang defaults to -O0. In general, clang sets up the equivalent of an opt|llc run with a slew of flags passed in. Also, note that clang -O0 is not the same as clang -O2 -mllvm -disable-llvm-optzns, as clang chooses to emit more code which may prove useful to the optimizer, but would only waste time at -O0.<span><font color="#888888"><br>


<br>
Nick<br>
</font></span></blockquote></div><br>
</div></div>