LLVM 7.0.0 Release
The release contains the work on trunk up to SVN revision 338536 plus
work on the release branch. It is the result of the community's work
over the past six months, including: function multiversioning in Clang
with the 'target' attribute for ELF-based x86/x86_64 targets, improved
PCH support in clang-cl, preliminary DWARF v5 support, basic support
for OpenMP 4.5 offloading to NVPTX, OpenCL C++ support, MSan, X-Ray
and libFuzzer support for FreeBSD, early UBSan, X-Ray and libFuzzer
support for OpenBSD, UBSan checks for implicit conversions, many
long-tail compatibility issues fixed in lld which is now production
ready for ELF, COFF and MinGW, new tools llvm-exegesis, llvm-mca and
diagtool. And as usual, many optimizations, improved diagnostics, and
bug fixes.
For more details, see the release notes:
https://llvm.org/releases/7.0.0/docs/ReleaseNotes.htmlhttps://llvm.org/releases/7.0.0/tools/clang/docs/ReleaseNotes.htmlhttps://llvm.org/releases/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.htmlhttps://llvm.org/releases/7.0.0/tools/lld/docs/ReleaseNotes.html
The compiler-rt project consists of:
- builtins - a simple library that provides an implementation of the low-level
target-specific hooks required by code generation and other runtime
components. For example, when compiling for a 32-bit target, converting a
double to a 64-bit unsigned integer is compiling into a runtime call to the
"__fixunsdfdi" function. The builtins library provides optimized
implementations of this and other low-level routines, either in
target-independent C form, or as a heavily-optimized assembly.
- sanitizer runtimes - runtime libraries that are required to run the code
with sanitizer instrumentation. This includes runtimes for:
* AddressSanitizer
* ThreadSanitizer
* UndefinedBehaviorSanitizer
* MemorySanitizer
* LeakSanitizer
* DataFlowSanitizer
- profile - library which is used to collect coverage information.
- BlocksRuntime - a target-independent implementation of Apple "Blocks"
runtime interfaces.