The sixth major release of the LLVM compiler infrastructure was released today by the University of Illinois CS department. LLVM provides a comprehensive set of libraries and tools for building optimizing compilers with bytecode, JIT, and static compilation. For more information on LLVM, please visit the LLVM web site.This release adds new targets, new optimization features, an easier framework for creating new targets, tail calls, per-function calling conventions, speed and size improvements, and many other features. For details of the release, please read the release notes.
LLVM 1.5 Released
Submitted by Reid Spencer 2005-05-18 General Development 10 Comments
That link is actually for the CVS release notes (as such is mostly empty). LLVM 1.5’s release notes are located here:
their frontends for C/C++ are GCC based. Kinda defeats the purpose of licensing something under a BSD style license if you then go link it with something under the GPL. Otherwise you’d expect some of the BSD distributions to pick this up.
LLVM is not a C/C++ Compiler. Yes, you can build C/C++ compilers with it, and we do, but it can be used for much more than that. Note that the GPL C/C++ front-end based on GCC does not link to the BSD licensed libraries.
LLVM is a lot more than just a compiler.
Most modern compilers are broken up into two separate parts. You have the front-end, and the back-end. The front-end compiles the language to some intermediate form, and the back-end generates code for the target platform from that intermediate form.
LLVM is a little different. You still have a C compiler, and it’s still split into a front-end, and a back-end. The difference is that the back-end generates LLVM code instead of native machine code. LLVM can then either run that code using a JIT, or compile it to a native code binary. Either way, the compiler is entirely separate from the runtime and native code generator.
Currently, the only C/C++ compiler that can target LLVM is GCC. There’s no reason that someone couldn’t write a new compiler that targets LLVM, or even an entirely new language.
LLVM is very, very good. Our software is embedding the LLVM libraries.
Have a look.
Just like a CEO.
Blows his horn, then dosen’t deliver.
what exactly is it?
it would be cool, but i dont know or care to know c++. will there be bsdl’d compilers that come with this infrastructure in the future?
Basically, it is a framework that allows you to take programs written in the llvm instruction set, apply some very powerful optimizations to them, and generate either machine code, or bytecode for the llvm JIT. The llvm instruction set itself is rather interesting. It’s much higher level than any machine language instruction set, with static typing, ways to describe structures, and special intrinsics for stuff like memory management. These properties allow llvm to do some interesting optimizations, such as automatically pool allocate certain structures.