llvm register coalescing

I wanted to update the llvm list on an offline discussion I was having with Rafael about a problem we have been seeing trying to compile an “interpreter” type of program with clang. It was producing a huge number of spills, something we had seen in llvm 2.8, and it seemed to have recurred in 3.0. Following Rafael’s advice we added -disable-early-taildup to llc and the spills disappeared. It would be nice if we could pass such switches directly through the clang command line. Is there a way to do that?

thanks for your help Rafael!

/maurice

2012/2/21 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>

I wanted to update the llvm list on an offline discussion I was having with
Rafael about a problem we have been seeing trying to compile an
"interpreter" type of program with clang. It was producing a huge number of
spills, something we had seen in llvm 2.8, and it seemed to have recurred in
3.0. Following Rafael's advice we added -disable-early-taildup to llc and
the spills disappeared. It would be nice if we could pass such switches
directly through the clang command line. Is there a way to do that?

I think you can use -mllvm or something like that. It would be really
nice if you could try finding out why we produce so many spills. Is
the coalescer failing for some reason?

thanks for your help Rafael!

/maurice

Cheers,
Rafael