LLVM 3.7 & Clang 3.7 Are Bringing Exciting Compiler Features, Improvements
The LLVM 3.7 release is imminent so here's our usual look at the new features/improvements for this open-source compiler stack. Complete OpenMP 3 support is a big one but there's also many other big ticket items to find in this major compiler update.
Highlights for LLVM 3.7 include:
- LLVM has a back-end now for the BPF instruction set to make use of the Linux kernel's new virtual machine for doing a variety of work.
- There's the new ORC API for On-Request Compilation. The C++ ORC JIT API is based on MCJIT but offers up other functionality.
- The AMDGPU/R600 LLVM back-end has seen a ton of improvements as usual. LLVM 3.7 plus Mesa 11.0 now allows for OpenGL 4.1 support on RadeonSI-backed AMD graphics hardware.
- MIPS target support for the MIPS32R3, MIPS32R5, MIPS32R3, MIPS32R5, and microMIPS32. There are also many other MIPS improvements within LLVM 3.7.
- Support for the POWER8 ISA 2.07B instruction set and other POWER8 enhancements.
- SafeStack was merged.
- Various PlayStation 4 related LLVM work.
On the Clang compiler front-end side for v3.7, there are:
- Complete OpenMP 3.1 support! There's also limited OpenMP 4.0 support.
- Improved diagnostics.
- Clang now supports GCC-compatible Profile Guided Optimization (PGO) flags for fprofile-generate, fprofile-use, and fno-profile-generate, etc.
- Static analyzer improvements.
Stay tuned for more details about LLVM/Clang 3.7 as its release approaches in the next few days. I'll also be starting some OpenMP LLVM/Clang 3.7 benchmarks today. There's also been daily LLVM/Clang 3.7 benchmarks of the SVN code through its development cycle (now tracking LLVM/Clang 3.8) via this LinuxBenchmarking.com performance tracker.
Highlights for LLVM 3.7 include:
- LLVM has a back-end now for the BPF instruction set to make use of the Linux kernel's new virtual machine for doing a variety of work.
- There's the new ORC API for On-Request Compilation. The C++ ORC JIT API is based on MCJIT but offers up other functionality.
- The AMDGPU/R600 LLVM back-end has seen a ton of improvements as usual. LLVM 3.7 plus Mesa 11.0 now allows for OpenGL 4.1 support on RadeonSI-backed AMD graphics hardware.
- MIPS target support for the MIPS32R3, MIPS32R5, MIPS32R3, MIPS32R5, and microMIPS32. There are also many other MIPS improvements within LLVM 3.7.
- Support for the POWER8 ISA 2.07B instruction set and other POWER8 enhancements.
- SafeStack was merged.
- Various PlayStation 4 related LLVM work.
On the Clang compiler front-end side for v3.7, there are:
- Complete OpenMP 3.1 support! There's also limited OpenMP 4.0 support.
- Improved diagnostics.
- Clang now supports GCC-compatible Profile Guided Optimization (PGO) flags for fprofile-generate, fprofile-use, and fno-profile-generate, etc.
- Static analyzer improvements.
Stay tuned for more details about LLVM/Clang 3.7 as its release approaches in the next few days. I'll also be starting some OpenMP LLVM/Clang 3.7 benchmarks today. There's also been daily LLVM/Clang 3.7 benchmarks of the SVN code through its development cycle (now tracking LLVM/Clang 3.8) via this LinuxBenchmarking.com performance tracker.
Add A Comment