While LLVM's Clang C/C++ compiler has made amazing progress in recent times, one of the features it's sorely been missing has been OpenMP support to allow it to better compete with GCC in many multi-threaded workloads. There's been numerous projects to work on OpenMP support in LLVM/Clang and most recently Intel has been taking up the work. Intel's latest announcement in the area is that they have decided to open-source their own OpenMP Runtime as a new LLVM sub-project.
For many months now Intel has had some of their compiler engineers working on OpenMP support for LLVM/Clang
after attempts in the past by other parties haven't brought mainlining of any support. In August they announced OpenMP 3.1 support for LLVM Clang
in an out-of-tree code-base.
The OpenMP 3.1 code has yet to be mainlined in full but that's Intel's ambition. Intel's OpenMP Clang work actually builds upon work originally started by AMD to achieve the same goal. Aside from the compiler support, there's also the run-time library needed for OpenMP. In getting that effort cleared, Intel decided to ship a copy of their Intel Open-Source OpenMP Run-Time as a new LLVM sub-project. This OpenMP run-time support is dual-licensed under the MIT and UIUC (BSD-like) license. OpenMP 4.0 support
is planned in the future and this implementation should already be high-performance and have ABI compatibility with GCC and Intel's own ICC compiler.
There's still some work ahead for this run-time as right now it requires building under GCC or ICC while obviously it will need to be build-able under Clang. The new LLVM OpenMP sub-project site is openmp.llvm.org
. Intel's open-source OpenMP run-time site is OpenMPRTL.org
where they have had code for some time but is now moving to LLVM as a new sub-project.
Jim Cownie of Intel announced their open-source contribution via the LLVM project blog