On Thu, 2012-02-16 at 10:22 +0530, Rahul Sundaram wrote: > On 02/16/2012 10:08 AM, Genes MailLists wrote: > > > Not to mention that the kernel devs use gcc to compile the kernel - > > and it most certainly puts a lot of pressure on the compiler. I suspect > > unless linus drops gcc as well, we'll at a minimum need to keep it to > > build the kernel itself. > > Not quite. LLVM can be used to build the kernel and what Linus does > doesn't matter as much (kernel is important but only one component) as > showing that Fedora on the whole will actually benefit from moving to > LLVM. For that, LLVM has to so much better than GCC and someone has to > do the work within Fedora to show that it is the case. Since I was a bit (intentionally) curt and dismissive in my other response in this thread, I'll add some anecdata here. I have actually tried building xserver with clang and running the standard set of microbenchmarks. I found one relevant path where the clang build was ~15% faster [1]. Something like 60% of the rest were within ±3%. For everything else clang was uniformly worse by usually about 5%. This isn't especially surprising. Both llvm and gcc have a robust set of high quality optimization passes. Changing compiler is in this sense little different from changing CFLAGS. It's ricer-tuning at best. The performance problems in Linux - in software in general - are almost always algorithmic, and no compiler is going to magically fix broken algorithms. I know it's tempting to look for silver bullets, but we've pretty much run out of those. [2] Also, LLVM doesn't support anything newer than DWARF3. I'm not thrilled about the idea of generating worse code _and_ worse debugging info. Particularly not if it means switching to a compiler written in a far worse language, with far less tribal knowledge in the community I have to interact with. LLVM has a role to play. It's nicely lit a fire under gcc's ass about plugins being a thing that we really have needed for the last 20+ years, dammit. Maybe someday it'll prompt gcc into being usable as a JIT too. It happens to be the code generation backend for a number of languages, and it's an okay JIT which is pretty sweet for things like llvmpipe. But from where I sit, trying to switch to llvm wholesale would make my life measurably worse on every axis. I feel like even _cursory_ investigation into the question would have reached this conclusion, and I kind of resent that it's considered remotely appropriate to suggest HAY GUYS HAVE YOU HEARD ABOUT THIS NEW COMPILER without having done some research and maybe gathering some data. I expect better from a development list. [1] - I should probably re-do this test and file a gcc bug. [2] - Much as I hate linking to techcrunch: http://techcrunch.com/2011/10/25/lead-bullets/ - ajax
Attachment:
signature.asc
Description: This is a digitally signed message part
-- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel