Re: Tail call hacks with gcc

Ceri Storey <>
4 Dec 1999 22:33:27 -0500

          From comp.compilers

Related articles
Tail call hacks with gcc danwang@vista.CS.Princeton.EDU (Daniel Wang) (1999-11-19)
Re: Tail call hacks with gcc (Ceri Storey) (1999-12-04)
Re: Tail call hacks with gcc (1999-12-07)
| List of all articles for this month |

From: Ceri Storey <>
Newsgroups: comp.compilers
Date: 4 Dec 1999 22:33:27 -0500
Organization: Compilers Central
References: 99-11-108
Keywords: code

On 19 Nov 1999 22:33:37 -0500, Daniel Wang <danwang@vista.CS.Princeton.EDU> wrote:
>I'm using gcc as a backend, for a higher level language, and I really
>like a clean hack to get proper tail recusion to work. I'm aware of
>various "trampolining" tricks to get this to work, but I'd like to
>have something that doesn't hit performance too much.

Assuming you are using C backend, and this is not what you mean by
trampolining then why not have a label / goto combination? eg. this
scheme example:

(let loop ((bar "hello world"))
    (foo bar)
    (loop (frobincate bar)))

would become this:

    char *bar = "hello world";
    bar = frobnicate(bar);
    goto __tail_recurse;

>I'm willing to play games with inline assembly (x86) and other gcc
>specific tricks, but a portable machine independent hack would be
>nicer. I'll summarize and put up a webpage if there's enough
-----------| Ceri Storey
      _\|/_ |
    o(O O)o | {for geek code also}

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.