01 July 2007

LLVM - Low-Level Virtual Machine

Recently there has been a lot of development on the Low-Level Virtual Machine (LLVM). It provides a back-end for compilers to allow for optimisation for the entire lifetime of the program.

The GLSL in Mesa has been implemented using LLVM. You can read a little about it here. The OpenGL implementation in Mac OSX Leopard will be implemented using LLVM.

There is an interesting article here about the speed of LLVM. It is surprising how close it gets in speed as things currently stand to GCC.

Recently there was a development meeting for LLVM in May and the presentations are available here. Of particular interest is the presentation by Apple about a new C front-end for LLVM called Clang with plans to support Objective C and C++. You can read the slides here and see the presentation here. The new frontend is called Clang and probably won't be production ready for a while but it is interesting to see where compiler technologies are heading.

The most interesting area of LLVM is definitely the whole program optimisation potential of it. Anyone who has seen the performance gains from using it knows this is good thing.