<br><br><div class="gmail_quote">On Wed, Jan 18, 2012 at 3:25 PM, Eli Friedman <span dir="ltr"><<a href="mailto:eli.friedman@gmail.com">eli.friedman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On Wed, Jan 18, 2012 at 3:10 PM, Nick Lewycky <<a href="mailto:nlewycky@google.com">nlewycky@google.com</a>> wrote:<br>
> The attached patch adds a new "-no-tail-calls" flag to llc, and implements<br>
> it in the x86 backend only. The intent is to support gcc's<br>
> -fno-optimize-sibling-calls in clang, which as far as I can tell just<br>
> disables tail calls period. The goal is to help ASAN produce correct stack<br>
> traces, which requires disabling all tail calls.<br>
><br>
> As an aside, there is a good reason to do this in the backend and not at the<br>
> IR-level. The "tail" marker is used to indicate things that are useful to<br>
> the optimizers themselves; for example alias analysis interprets the<br>
> presence of a tail marker as proof that the callee can't access any alloca's<br>
> in the caller, whether the pointer has been captured or not.<br>
<br>
</div></div>You're right that expressing this constraint with the tail marker<br>
doesn't make sense; that said, why not a function attribute?<br></blockquote><div><br></div><div>I am not sure if a function attribute would be the right thing, but we don't have any attribute bits left. </div><div>
My patch to extend the Attributes bit vector is waiting for review :) :) </div><div><br></div><div>--kcc </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<span class="HOEnZb"><font color="#888888"><br>
-Eli<br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br>