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

Chad Rosier mcrosier at apple.com
Wed Jan 18 15:19:15 PST 2012

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


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

More information about the llvm-commits mailing list