LLVM 2.9 brings better C++0x support
After the release of the GCC 4.6 (GNU Compiler Collection) and the Portable C Compiler 1.0, we now have version 2.9 of the low-level virtual machine (LLVM), a compiler infrastructure, supported partly by Apple, and consisting of a collection of libraries and tools for optimised compilers and just-in-time code generators. The developers say it allows code to be compiled nearly in real time without requiring any platform-specific code.
The Clang C/C++ compiler contained in the infrastructure now reportedly provides better support for the future C++0x standard (C++ 2011), contains better code generating functions and is more compatible with the Linux kernel. The DragonEgg GCC plug-in, which LLVM uses as a backend to generate code in languages supported by the GNU compiler, now provides better support for Fortran and no longer crashes when compiling Java code.
Several flaws have also been remedied in libc++, an implementation of the C++ standard library, and it is now offered under a dual licence like another subproject, Compiler-rt. For instance, the MIT licence can be used in addition to the University of Illinois Open Source License (UIUC). The library is designed to work with Clang but also runs well with other compilers and supports the new C++ standard. The modular Low Level Debugger (LLDB), which, like lib++, is quite new, is also reportedly more stable.
In the new version, LLVM also has an "experimental" backend that supports NVIDIA's graphics processors. Furthermore, the infrastructure supports a type-based pointer analysis ("alias analysis") to improve load/store architectures. The standard assembler in Clang for 32-bit and 64-bit architectures now supports various alternative constraints. Otherwise, development focused on the quality of debugging information.
C++ code was originally envisioned as a main field of activity for LLVM, but there are now front ends for Objective-C/C++, Java byte code, Microsoft's Common Intermediate Language (CIL), Python and Ruby implementations. In the release notes, the developers also mention a number of examples from the open source community in which LLVM is used.
- LLVM 2.8 compiler infrastructure released, a report from The H.