LLVM/Clang 3.9 Is Shipping Soon With OpenCL 2.0, ThinLTO & Much More

Written by Michael Larabel in LLVM on 16 August 2016 at 10:00 AM EDT. 18 Comments
LLVM
If all goes well, LLVM/Clang 3.9.0 will be released next week. With this major feature release right around the corner, here is a look at some of the exciting features and changes to this open-source compiler stack.

The LLVM/Clang 3.9 release date is currently penciled in for 22 August. Among the LLVM and Clang highlights for v3.9 are:

LLVM 3.9 Highlights:

- The Autoconf build system was dropped in favor of CMake.

- A new MemorySSA analysis.

- The incompatibility problems of the new GCC ABI have been addressed. a.k.a. the Clang issues that came about as Linux distributions began moving to GCC 5 and switching to the new ABI.

- LLVM now supports ThinLTO via -flto=thin. Those unfamiliar with ThinLTO can find much information about its design and implementation via the LLVM blog.

- LLVM on x86 now supports Intel Skylake server CPUs with AVX-512 via -march=skylake-avx512. There is also Knights Landing CPU support with AVX-512 via the knl value.

- LLVM on ARM now supports Qualcomm's Kryo and Broadcom's Vulcan. There's also early Cortex-R8 support and ARMv8.2-A support.

- The AMDGPU back-end now supports OpenGL shader images, buffer storage, atomic counters, and compute shader extensions. These go in hand with the work done on Mesa 12.

Clang 3.9 Highlights:

- Support for all OpenCL 2.0 features, such as pipe built-in functions, address space conversion functions, improved diagnostic/generation of Clang Blocks in OpenCL kernels, etc.

- Support for all non-offloading features of OpenMP 4.5. This brings Clang to OpenMP 3.1 support and the non-offloading features of OpenMP 4.0/4.5 while the support to offload to GPUs and other accelerators is still a work in progress.

- Various improvements to the compiler's diagnostics.

- Improved Windows support as well as to the clang-cl drop-in driver.

- Several new features are supported of the upcoming C++1z standard. The next-gen C++ language updates in experimental form can be turned on via -std=c++1z.

Succeeding LLVM/Clang 3.9 will be LLVM/Clang 4.0.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week