I am somewhat surprised people are actually using TCO. I had to fixed a number
of subtle bugs to get it working and even now I am not too happy with it. My
focus was on finding non-ABI changing automatic tail call cases (aka gcc's
sibcall). It's now done so I'll leave -tailcallopt alone for now.
I'll run -tailcallopt as x86 llcbeta to see if JIT is indeed broken.
Evan
On Feb 5, 2010, at 7:32 PM, Albert Graef wrote:
> Evan Cheng wrote:
>> As far as I can tell only PPC and X86 targets are supporting this
option. Does anyone actually using it? I'd prefer to just remove it to
clean up the implementation if no one has any objections.
>
> Don't know whether that is the same, but my Pure compiler sets
> llvm::PerformTailCallOpt. Pure needs TCO because it doesn't have any
> built-in looping constructs. In fact, most functional language
> implementations will rely on TCO. If you can make this work reliably on
> all supported platforms without needing special flags, that would be
> welcome. Otherwise please keep the flag.
>
> (That said, last time I tried LLVM 2.7svn, TCO was broken in the JIT, at
> least on x86_64. It works fine up to LLVM 2.6 for me, though.)
>
> Albert
>
> --
> Dr. Albert Gr"af
> Dept. of Music-Informatics, University of Mainz, Germany
> Email: Dr.Graef at t-online.de, ag at muwiinfa.geschichte.uni-mainz.de
> WWW: http://www.musikinformatik.uni-mainz.de/ag