LLVM 3.0 requires Clang and DragonEgg
Version 3.0 of the Low Level Virtual Machine (LLVM) compiler infrastructure has been released, six months after the last major version, LLVM 2.9. For the new update to the Low-Level Virtual Machine, the developers removed "some old baggage" that had built up in previous versions, for example, LLVM 3.0 no longer supports the llvm-gcc frontend; developers will instead have to use Clang or DragonEgg. Similarly, file formats from earlier LLVM versions, such as .bc and .il no longer work in the new version.
New features include register allocation for better code generation, support for atomic operators and the new C++11 standard memory model. The MIPS backend is no longer marked as experimental – support for older MIPS1 and MIPS2 architectures has been removed, while initial support for MIPS64 has been added.
In extending the Clang C/C++ compiler frontend, the development team has implemented Objective C's ARC (Automatic Reference Counting) system and various functions from C++11 and the forthcoming C1X C++ standard. Clang now offers initial support for OpenCL. DragonEgg can also be used with GCC 4.6, the latest version of the GNU Compiler Collection.
As before, the GCC frontend continues to officially support C, C++, Fortran and Ada, with Java, Objective-C, Objective-C++ and Go working up to a point. A detailed overview of all the changes can be found in the release notes.
The Low Level Virtual Machine (LLVM) is a compiler infrastructure, partially sponsored by Apple, that consists of a collection of libraries and tools for optimised compilation and just-in-time code generators. According to the developers, it allows code to be compiled almost in real time without requiring any platform-specific code. LLVM is made available under the terms of the University of Illinois Open Source License.