This document contains the release notes for the LLVM Compiler Infrastructure, release 6.0.0. Here we describe the status of LLVM, including major improvements from the previous release, improvements in various subprojects of LLVM, and some of the current users of the code. All LLVM releases may be downloaded from the LLVM releases web site.
For more information about LLVM, including information about the latest release, please check out the main LLVM web site. If you have questions or comments, the LLVM Developer’s Mailing List is a good place to send them.
Fixed numerous bugs:
New features:
Deprecation notices:
During this release the SystemZ target has:
During this release the X86 target has:
D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity. D supports powerful concepts like Compile-Time Function Execution (CTFE) and Template Meta-Programming, provides an innovative approach to concurrency and offers many classical paradigms.
LDC uses the frontend from the reference compiler combined with LLVM as backend to produce efficient native code. LDC targets x86/x86_64 systems like Linux, OS X, FreeBSD and Windows and also Linux on ARM and PowerPC (32/64 bit). Ports to other architectures like AArch64 and MIPS64 are underway.
JFS is an experimental constraint solver designed to investigate using coverage guided fuzzing as an incomplete strategy for solving boolean, BitVector, and floating-point constraints. It is built on top of LLVM, Clang, LibFuzzer, and Z3.
The solver works by generating a C++ program where the reachability of an abort() statement is equivalent to finding a satisfying assignment to the constraints. This program is then compiled by Clang with SanitizerCoverage instrumentation and then fuzzed using LibFuzzer.
Zig is an open-source programming language designed for robustness, optimality, and clarity. It is intended to replace C. It provides high level features such as Generics, Compile Time Function Execution, and Partial Evaluation, yet exposes low level LLVM IR features such as Aliases. Zig uses Clang to provide automatic import of .h symbols - even inline functions and macros. Zig uses LLD combined with lazily building compiler-rt to provide out-of-the-box cross-compiling for all supported targets.
A wide variety of additional information is available on the LLVM web page, in particular in the documentation section. The web page also contains versions of the API documentation which is up-to-date with the Subversion version of the source code. You can access versions of these documents specific to this release by going into the llvm/docs/ directory in the LLVM tree.
If you have any questions or comments about LLVM, please feel free to contact us via the mailing lists.