[llvm-commits] patch: target option to disable tail calls

Nick Lewycky nlewycky at google.com
Wed Jan 18 16:02:57 PST 2012


On 18 January 2012 15:19, Chad Rosier <mcrosier at apple.com> wrote:

> Hi Nick,
> Why not something more like disable-tail-calls?  Most of the options begin
> with verbs such as Enable, Disable, Emit, Trap, etc.
>

Sounds good, replaced all over. Updated patch attached!

Nick


>
>  Chad
>
> On Jan 18, 2012, at 3:10 PM, Nick Lewycky wrote:
>
> > 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.
> >
> > 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.
> >
> > Please review!
> >
> > Nick
> >
> > <no-tail-calls-1.patch>_______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120118/4b208ce2/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: no-tail-calls-2.patch
Type: text/x-patch
Size: 4162 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120118/4b208ce2/attachment.bin>


More information about the llvm-commits mailing list