Intel reported in a blog this week that its adoption of the open source LLVM architecture for Intel’s C/C++ compiler is complete. The transition is part of Intel’s ongoing effort to boost oneAPI as the preferred tool suite for programming Intel’s growing portfolio diverse processors including CPUs, FPGAs, and GPUs.
The blog, by James Reinders, notes, “We recommend that all new projects start with the LLVM-based Intel C/C++ compilers, and all existing projects should make a plan to migrate to the new compiler this year. At some point in the future, the classic C/C++ compilers will enter “Legacy Product Support” mode signaling the end of regular updates to the classic compiler base, and they will no longer appear in oneAPI toolkits.”
Intel’s former tool suite, Parallel Studio XE, was rebranded and repackaged when Intel oneAPI toolkits were released in December 2020; those kits contained all of the Parallel Studio tools plus a DPC++ (data parallel C++) compiler. The latest blog notes Intel’s adoption of the LLVM as its base compiler architecture is now complete and that Intel has added or modified select features to directly support Intel architecture.
Reinders wrote, “The performance of the Intel C/C++ compilers can be expected to give higher performance than the base clang+LLVM compilers for Intel architecture. The default for the Intel C/C++ compilers going forward are versions (icx) that have adopted the LLVM open source infrastructure. We continue our strong history of contributing to the clang and LLVM projects, including optimizations for LLVM and clang. Not all our optimization techniques get upstreamed—sometimes because they are too new, sometimes because they are very specific for Intel architecture. This is to be expected and is consistent with other compilers that have adopted LLVM.”
Outlining development plans, Reinders said, “To support Intel’s evolving platforms, we are focusing new feature and hardware support in our LLVM-based compilers where we have added highly optimized support for GPUs and FPGAs alongside our continuing commitment to provide industry leading CPU optimizations. Our LLVM-based compilers are where we will have support for SYCL, C++20, OpenMP 5.1, and OpenMP GPU target device support.”
Intel estimates its latest LLVM-based compiler demonstrates a 14 percent reduction in build time versus the prior version, 41 percent improvement on floating point performance, and 48 percent improvement on integer performance on a popular SPECrate test (charts below).
Reinders wrote, “There is an excellent guide for converting from the classic C/C++ compiler to the LLVM-based compilers. The first thing you’ll notice is that the compiler has a different name (icx). This allows you to have both the classic and the new compilers installed and choose between them. Many users have already made the switch to rely solely on the LLVM-based Intel C/C++ compilers for their products going forward. The latest release notes offer more details on known issues and limitations (release notes for the classic C/C++ compilers are also available). Check out our webinars (“Talk to Experts“) for opportunities to hear from experts live or via on-demand viewing of previously recorded sessions.”
As noted by Intel, the LLVM open source project is a collection of modular and reusable compiler and toolchain technologies supporting multiple processor architectures and programming languages. The Clang open source project provides a C/C++ frontend supporting the latest language standards for the LLVM project. LLVM, including Clang, are maintained by a large and very active development community.