LLVM 2.2 Released
performance geek writes "LLVM 2.2 was released yesterday! This is the thirteenth public release of the open-source compiler that started as a GCC fork. LLVM supports several aggressive optimizations, in compile-, link- and run-time, and often produces faster (1.5-3x) code than GCC. It is also much faster than GCC at compiling (despite the slow link-time optimizations). Gentoo users are already trying to build the whole system with the LLVM toolchain to get the extra performance bit."
Low Level Virtual Machine
"I'm a Genius!"*
*Not an actual Genius
LWN has discussion on this, and there is a nice video presentation of LLVM 2.0 as well. Cool thing, but as they say it isn't really about replacing GCC.
http://en.wikipedia.org/wiki/LLVM
Wikipedia, learn to use it.
"The open-source compiler that started as a GCC fork"? LLVM is not a compiler. It is a code generator, optimizer and virtual machine, usable as a compiler back-end. It later added a gcc-based front end.
Also, Apple is currently driving development of an alternate BSD-licensed front end named clang.
Wikipedia, learn to use it. It wouldn't exactly kill Slashdot editors and contributors to get acquainted with the <acronym> tag though would it?
Spelling mistakes, grammatical errors, and stupid comments are intentional.
Comment removed based on user account deletion
Of course the Gentoo users are off recompiling there whole system for the extra performance. It's what they do - why use your computer when you can make it .242% faster with only 15 hours of compiling?
Agreed. I've always been taught that you introduce the full meaning of an acronym before you use it. The acronym may make sense to you, but the reader may not have been exposed to it. This is especially applicable on a tech site, where acronyms are rampant. I'm not even including the acronyms seen only on slashdot (which are very off putting to a first time user by the way). Remember: EVERYONE started as a beginner.
;)
... just a pet peeve of mine that I can do a mini-rant on without being off-topic
Lack of planning on your part does not constitute an emergency on mine.
It was a perfectly reasonable question.
Dick, learn to stop being one.
Last I knew, this didn't have inline assembly. Does it have this yet? I know that a lot of people like to say you shouldn't be using assembly, but for certain uses this is a show stopper. If LLVM wants to truly replace GCC, it should provide this.
Granted, the small amount I've read about LLVM's design might make this less than straightforward. IIRC, it places much emphasis on generating intermediate, architecture-independent code which can then be compiled into machine code. Some things I read seem to suggest that they want to do JIT (or something like it) of this intermediate language (correct me if I'm wrong).
overcoming gcc is not so easy after all Apple trolls.
IAWTP
Terrorists can't threaten a country's freedom and democracy. Only lawmakers and voters can do that.
Some Gentoo users just want fine-grained control over their systems. They get exactly the packages they want, configured the way they want, and nothing else. The biggest power of Gentoo isn't compile optimizations, but rather use flags. I want my box to operate exactly how I want it. Gentoo allows me that freedom.
It does take a good deal more time and effort, but frankly some people enjoy that sort of thing as a hobby, the way others constantly tinker with their car.
For what it is worth, portage (and the two portage replacements, pauldis and pkgcore) are quite frankly hands down the best package managers out there, and they handle pre-compiled binary packages just as well. I really honestly believe the rest of the Linux world would be greatly benefited by using one package manager, regardless of how they compile or pack their binaries.
Set a use flag for openSUSE_10.3 and portage knows what packages to grab. It could work.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
I don't imagine my whole computer will even run more than 10% faster, let alone 3 times faster. However, there are some really large, clunky codebases such as OpenOffice that could probably really benefit from this. And if part of the benefit comes from assembly in-lining, then code that has large chunks of assembly like emulators, or maybe the kernel might benefit as well. It will likely be up to these packages to try and support llvm rather than vice-versa.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
The problem is that in my view gentoo is often the worst distribution out there, with very low quality packages. Maybe the package manager is great, but it's not really about technical excenlece it's about how easy it is to use. Sadly most things become easy to use after training, and people don't want to train more than once, that's why people are still in Debian.
But if you have any good highlights of why portage is so much better then please tell me, the one thing I love about debian is this:
apt-get sources xbattle
apt-get build-dep xbattle
# then build manually
I'm sure there is something similar in portage.
I remember reading somewhere about some guy targeting javascript so that he could write in any language which has a front-end in LLVM and have it generate javascript.
I don't know javascript at all...so lets say he did this with Java.
Could I write a program in C, and have it target a JVM rather than a particular OS/Architecture? Would I get Java array bounds checking of my C code?
It's an initialism, not an acronym.
Sam ty sig.
What, you mean you don't pronounce it lulivim?
Yeah I know, but try finding the <initialism> tag in the HTML specs and you could be a while. I guess technically it should use the <abbr> element, but I'm still used to using <acronym>, largely because IE didn't support <abbr> until IE7.
Regardless of which tag they use, anything would be better than having to look up this stuff manually.
Spelling mistakes, grammatical errors, and stupid comments are intentional.
Gelato uses OpenIMPACT to do the same thing. From what I understand, OpenIMPACT works on both 32-bit and 64-bit code, with most of the development going into the 64-bit stuff and with most of the interest from the HPC and supercomputer groups (which is where I've most often seen the Gelato distro). Both are source-to-source "compilers" (well, since it's source-to-source, I'd look at them more as a pre-compiler). Not sure how well they do at optimizing between source files. I'm also suspicious of linking (function calls are expensive and - by definition - that's what libraries do). Not sure what you can do about optimizing system calls, which are really expensive. A batch system call would offer all kinds of possibilities for security holes.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
LLVM is written in C++, as opposed to C for GCC.
This difference may seem trivial or unimportant, but writing any complicated transformation can be done in just a fraction of the number lines of code. Fewer lines of code equates to easier to improved code readability, and ultimately - greater reliability.