“SproutCore, profiled earlier this week, isn’t the only big news spill out from the top secret WWDC conference due to Apple’s embrace of open source sharing. Another future technology featured by the Mac maker last week was LLVM, the Low Level Virtual Machine compiler infrastructure project. Like SproutCore, LLVM is neither new nor secret, but both have been hiding from attention due to a thick layer of complexity that has obscured their future potential.”
This is something I’m very excited about. It can’t yet be used for everything, so I went back to gcc, but the underlying technology is very well designed and with a lot of potential.
One of these days I’ll have the time to follow the kaleidoscope tutorial and learn how to use llvm to its potential. This will make a lot of things a lot faster and more fun.
Yes, llvm is looking really promising. But seriously, statements like –“Sources report that LLVM-GCC “compiles code that consistently runs 33% faster” than code output from GCC.” is obviously not true. No matter how good LLVM is there’s no way it will consistently output code that is 33% faster, in reality it won’t do that other than in extreme cases. Unfortunately there were no mention of what these ‘sources’ were.
Unlike the GNU toolchain which strains under the pressure of being the de facto compiler on which nearly the entire open source spectrum depends, llvm is a perfect testbed for new and exciting techniques in code generation. Once it matures it will provide a great alternative to the GNU toolchain and hopefully this will mean we get real competition in the oss compiler arena.
That, and the fact that the gcc-llvm front end is going to be replaced with a new one, it’ll be interesting to see what the future will be. Its great to have a compiler which is not only going to give gcc some competition but also provide a compiler which is BSD licenced.
Unfortunately there were no mention of what these ‘sources’ were.
Agreed, if you are ever watching the news (esp. Fox and the like) and they use the term “sources” or some other vague term of reference, then it’s is something they are adding themselves… It is as reliable as going to a tech psychic (see analyst) and asking them.
Sources say Apple will come out with Ice Leopard a year after Snow Leopard, which will add hologram technology, ZFS++, OpenDirectX and HAL9000 technologies…
The reason we take “sources” as fact is that we want to believe it, OK, maybe not the OpenDirectX – lol…
Edited 2008-06-21 00:28 UTC
The article was confused. llvm-gcc consistently compiles code 30-40% faster than GCC does when the optimizer is enabled (e.g. at) -O2. The generated code is usually 5-10% faster than GCC generated code, but obviously YMMV.
Chris Lattner wrote:
–“The article was confused. llvm-gcc consistently compiles code 30-40% faster than GCC does when the optimizer is enabled (e.g. at) -O2. The generated code is usually 5-10% faster than GCC generated code, but obviously YMMV.”
Thanks for the clarification. Must say that ‘usually’ 5-10% faster sounds great. Any chance you could point me to your sources regarding this as I’m really interested in code optimization.
Chris is the primary author of LLVM. I suppose he is the source 🙂
Are there any public benchmarks available where LLVM outperforms gcc?
Edited 2008-06-22 12:40 UTC
Snow Leopard is going to be the best OS X release ever. Apple is going to get rid of all carbon code, Quicktime is getting a Cocoa overhaul, Safari is getting a new js engine and pass acid 3, we may se ZFS as the standard file system. The system will be optimized for multi-core computing and enterprise deployment. Dashcode will most likely get an overhaul so it integrates with SproutCore, this will be Apples .Net. Xcode will support this new compiler technology. Everything will be faster!!! This release may not have much for consumers, but the devs are all having a nerdgasm.
It would seem plausible that this release would be cheaper than other releases, or hopefully free for existing leopard users, I believe apple has a great interest in getting this on every mac. I would gladly pay 120 dollars for this, my MacBook Pro would be up to 33% faster, cheap upgrade!
Why would Apple release Snow Leopard for free? I would think a 15% or more speed increase plus the other stability and programming enhancements would make it worth the upgrade.
Q. Why would Apple give it away?
A. Because to the typical user it looks like a service pack.
Edited 2008-06-20 22:41 UTC
I’m sure Apple will come up with a features list and sell the Operating System that way. In the age of Vista speed and stability look very good on a feature checklist. Plus we know that their PIM Applications will be gaining Exchange support and I’m sure that they will be further tweaking other aspects of the software. I bet there will be at least a 100 “features” in this next release.
Apple will not give this away for free. There is no reason to. There will be lots of people who will gladly pay $129 for this release just for the Exchange support much less a lot of the advanced development features. I’m personally hoping for Screen Resolution Independence in all bundled applications myself.
If it brings a 15% speed increase across the board, that’s nothing like a service pack. That’s equivalent to a hardware upgrade.
It would be nice is Apple released it for free, but if you’re a company that had all your engineers working on a product for 2 years, would you release it for free?
The interesting thing about LLVM is that OpenCL probably is based on it. So, writing code for your GPU is the same as writing code for the host CPUs (maybe even in ObjC). The OS can then dispatch the code after JIT compilation to an appropriate processing unit. Maybe this is the breakthrough in multicore Apple announced. That means, they can dispatch the same code to a heterogeneous processing unit infrastructure.
Edited 2008-06-21 13:03 UTC
For instance, Cyrille Berger uses LLVM to base his OpenCTL and OpenGTL implementations on — free sofware compatible versions of the Color Transformation Language (http://ampasctl.sourceforge.net/, http://openctl.org/).
that Krita uses to handle painting correctly in 32bit/channel colourspaces. It’s a pity LLVM is pretty hard to compile. It won’t compile at all on my shiny new OpenSUSE 11 and needs patching for 64 bits machines.