What Features LLVM/Clang 3.2 Bring To The Table
Key features for LLVM/Clang 3.2 include:
- An automatic loop vectorizer for delivering some performance improvements. This auto loop vectorizer will be advanced with LLVM 3.3 and then enabled by default while for now it requires a compile-time switch.
- Improved PowerPC processor support.
- Various processor support improvements, such as for Apple's latest ARM SoC and improving the Intel instruction set extension support (AVX2).
- Polly polyhedral optimizations including the integration of the PLUTO support, more MIT-licensed code rather than GPL, isl-based code generation, OpenMP code generation fixes, and other work.
- The new NVPTX back-end was integrated that was supplied by NVIDIA and is used by their OpenCL/CUDA compiler for GPGPU on GeForce/Quadro/Tesla graphics processors.
- Various optimizer improvements, but LLVM/Clang 3.2 compiler benchmarks haven't shown the new release to be dramatically faster than its predecessors for most workloads.
- Improved compiler warnings / debugging information for the Clang compiler front-end.
- DragonEgg, the GCC plug-in that allows using LLVM in GCC for its code generators and optimizers under several different programming languages, now allows for LLVM plug-ins to be loaded, supports thread-local storage models, passes variable life-time information to the LLVM optimizers, and can run with a non-LTO GCC build.
While this is a nice update for the increasingly popular open-source compiler, among the work not found in this new stable release is not yet any mainline OpenMP support with LLVM/Clang, Unified Parallel C, no OpenACC, and the recently-merged AMD Radeon R600 GPU back-end won't appear until LLVM 3.3.
Download the latest release and find out more information from LLVM.org.