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

Kostya Serebryany kcc at google.com
Wed Jan 18 15:30:03 PST 2012


On Wed, Jan 18, 2012 at 3:25 PM, Eli Friedman <eli.friedman at gmail.com>wrote:

> On Wed, Jan 18, 2012 at 3:10 PM, Nick Lewycky <nlewycky at google.com> 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.
>
> You're right that expressing this constraint with the tail marker
> doesn't make sense; that said, why not a function attribute?
>

I am not sure if a function attribute would be the right thing, but we
don't have any attribute bits left.
My patch to extend the Attributes bit vector is waiting for review :) :)

--kcc


>
> -Eli
> _______________________________________________
> 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/79e8ff0c/attachment.html>


More information about the llvm-commits mailing list