[LLVMdev] Removing -tailcallopt?

Evan Cheng evan.cheng at apple.com
Sat Feb 6 01:15:07 PST 2010

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.


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

More information about the llvm-dev mailing list