<div class="gmail_quote">On 18 January 2012 15:19, Chad Rosier <span dir="ltr"><<a href="mailto:mcrosier@apple.com" target="_blank">mcrosier@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




Hi Nick,<br>
Why not something more like disable-tail-calls?  Most of the options begin with verbs such as Enable, Disable, Emit, Trap, etc.<br></blockquote><div><br></div><div>Sounds good, replaced all over. Updated patch attached!</div>




<div><br></div><div>Nick</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
 Chad<br>
<div><div><br>
On Jan 18, 2012, at 3:10 PM, Nick Lewycky wrote:<br>
<br>
> The attached patch adds a new "-no-tail-calls" flag to llc, and implements it in the x86 backend only. The intent is to support gcc's -fno-optimize-sibling-calls in clang, which as far as I can tell just disables tail calls period. The goal is to help ASAN produce correct stack 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 IR-level. The "tail" marker is used to indicate things that are useful to the optimizers themselves; for example alias analysis interprets the presence of a tail marker as proof that the callee can't access any alloca's in the caller, whether the pointer has been captured or not.<br>





><br>
> Please review!<br>
><br>
> Nick<br>
><br>
</div></div>> <no-tail-calls-1.patch>_______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">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>
<br>
</blockquote></div><br>