Low-Level Virtual Machine (LLVM) is a compiler infrastructure designed for compile-time, link-time, run-time, and "idle-time" optimization of programs from arbitrary programming languages. It currently supports compilation of C, Objective-C, and C++ programs, using front-ends derived from GCC 4.0, GCC 4.2, and a custom new front-end, "clang". It supports x86, x86_64, ia64, PowerPC, and SPARC, with support for Alpha and ARM under development.
|Tags||Software Development Compilers Code Generators|
Release Notes: Type Based Alias Analysis is now implemented and turned on by default in Clang. Inline assembly now supports multiple alternative constraints. LLVM IR now supports the unnamed_addr attribute to indicate that constant global variables with identical initializers can be merged. Link Time Optimization has been improved to use MC for parsing inline assembly. The new TargetLibraryInfo interface allows mid-level optimizations to know whether the current target's runtime library has certain functions. LLVM has a new RegionPass infrastructure for region-based optimizations.
Release Notes: Clang C++ is now feature-complete with respect to the ISO C++ 1998 and 2003 standards. Support for Objective-C++ was added. Many new warnings were introduced and format string checking was greatly improved. A C interface was introduced to Clang, intended to support IDE clients. Support for SSE, ARM NEON, and Altivec was added. Support for many Microsoft extensions was improved. Support for blocks and precompiled headers in C++ was implemented. Abstract syntax trees were improved to retain more accurate source information. There were numerous other enhancements and bugfixes.
Release Notes: This release includes a new XCore backend. The gcc-4.2-based front-end now includes support for the C, C++, Objective-C, Ada, and Fortran programming languages. LLVM now uses CMake for Windows builds and supports arbitrary precision integers in the code generator. The '.ll' parser was completely rewritten to provide better diagnostics, and no longer relies on bison. Several analysis and optimization passes have been improved for speed and aggressiveness, including register promotion, scalar replacement of unions, and memory dependence analysis. This release ships with a new version of the driver llvmc which also supports the Clang plugin.
Release Notes: This release includes improved compilation speed, support for multiple return values in LLVM IR, and initial support for PIC16. llvmc2 (the generic compiler driver) gained plugin support. It is now easier to experiment with llvmc2 and build your own tools based on it. This release also includes an optional build system based on CMake. It still is in its early stages, but can be useful for Visual C++ users who cannot use the Visual Studio IDE. Other improvements in LLVM internals include a more efficient representation that leads to lower memory usage and better vector support.
Release Notes: This release includes many bugfixes, vastly improved support for the X86-64 ABI, support for SSE 4.1 on X86 chips, support for functions that return multiple results in memory, a new 'llvmc' tool, support for atomic operations, improved gfortran support, and many new and improved optimizer and code generator passes. A new addition to the LLVM family is "vmkit". vmkit is an implementation of a Java Virtual Machine and a CLI Virtual Machine (".NET") that use the Just-In-Time compiler of LLVM, as well as many facilities provided by the LLVM framework.