|From:||Adam Jackson <ajax-AT-redhat.com>|
|To:||Development discussions related to Fedora <devel-AT-lists.fedoraproject.org>|
|Subject:||Re: Apple will use LLVM|
|Date:||Thu, 16 Feb 2012 10:02:05 -0500|
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 . 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.  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.  - I should probably re-do this test and file a gcc bug.  - Much as I hate linking to techcrunch: http://techcrunch.com/2011/10/25/lead-bullets/ - ajax -- devel mailing list email@example.com https://admin.fedoraproject.org/mailman/listinfo/devel
Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds