[LLVMdev] Query on optimization and tail call.
Basile STARYNKEVITCH
basile at starynkevitch.net
Tue Jun 10 23:38:42 PDT 2008
Eli Friedman wrote:
> On Tue, Jun 10, 2008 at 11:07 PM, Mahadevan R <mdevan.foobar at gmail.com> wrote:
>> int sum(int n)
>> {
>> return n + sum(n-1);
>> }
Sorry, but this is not a tail recursive call. There is some computation
involved (the addition) after the inner call to sum! The continuation of
the inner call to sum is not the continuation of the called sum.
In other words, the equivalent in languages or implementations claiming
to know about tail recursion (Scheme, Ocaml) is not compiled like tail
cails.
So I believe that llvm should not handle something which is not a tail
call like a tail call!
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***
More information about the llvm-dev
mailing list