[patch] tailcall elimination

David Sehr sehr at google.com
Mon Feb 11 15:22:25 PST 2013


Please ignore this patch for now.  I am revising it according to some input
provided off-line.

David


On Mon, Feb 11, 2013 at 8:59 AM, David Sehr <sehr at google.com> wrote:

> Hi Duncan,
>
> Yes, my comments were a bit terse, to be sure.  Nick's patch enables tail
> call elimination (including tail recursion elimination) subject to two
> constraints on the function F being transformed:
> 1) alloca addresses cannot be *captured* by any call site in F.
> 2) alloca addresses cannot be *used* by the candidate call site S for tail
> call elimination.
>
> There was a small bug in how condition (2) was enforced.  It was only
> being enforced for tail calls to functions other than F (recursive calls).
>  My change checks the use of alloca both for labeling call sites with
> "tail" and when converting them to iteration.
>
> David
>
>
> On Mon, Feb 11, 2013 at 6:12 AM, Duncan Sands <baldrick at free.fr> wrote:
>
>> Hi David,
>>
>>
>> On 10/02/13 23:50, David Sehr wrote:
>>
>>> This patch enables tail call optimization when alloca instructions are
>>> present.
>>>   It is based on
>>> http://lists.cs.uiuc.edu/**pipermail/llvm-commits/Week-**
>>> of-Mon-20121022/153958.html<http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121022/153958.html>,
>>> by
>>> adding a check that alloca addresses are not used by tail recursion
>>> candidates.
>>>
>>
>> did you change something wrt Nick's patch?
>>
>> Ciao, Duncan.
>>
>> ______________________________**_________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/**mailman/listinfo/llvm-commits<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/20130211/274c9e0f/attachment.html>


More information about the llvm-commits mailing list