Linux Kernel

LLVM experienced record growth in 2021, many exciting compiler advancements

The LLVM compiler stack experienced record growth in 2021 with both the most new code introduced in a single year as well as the highest number of contributors per year this open source project has ever seen. Even outside of development metrics, LLVM had a pretty hectic 2021 year.

When running GitStats on the mono LLVM repository on New Years Day, this open source compiler / toolchain stack contained up to 111,028 files comprising 23.85 million lines of code. Quite a feat considering that the Linux kernel has 32 million lines of code in its source tree over its much longer history. The LLVM repository saw 408,000 commits and contributions from approximately 2,903 different authors.

Regarding the number of commits, LLVM in 2021 did not have the busiest year with only 32.1k commits against 34.9k in 2020 or 33.2k in 2019 …

But when it comes to churn rate, LLVM dominated in 2021 … LLVM saw 12.5 million lines of code added and 8.3 million lines deleted … way more than in 2020, where it There were only 7 million lines added and 3.9 million deleted.

Simon Pilgrim continued to be responsible for the most commits in 2021, followed by Fangrui Song, Roman Lebedev, Craig Topper, Nikita Popov and Sanjay Patel.

Another promising measure for LLVM in 2021 was the record number of authors … 1,400 different email addresses dedicated to LLVM, up from 1,321 in 2020, which was previously a record high. Before 2020, there wasn’t a single year that had more than a thousand contributors. Now, for 1,400 in 2020, the growth of the open source LLVM community is quite interesting.

All the usual big names continue to make significant contributions to LLVM …

It will be very interesting to see the direction of LLVM in 2022 … The entire GitStats dump can be found here.

For those wondering about the big changes and events for LLVM in 2021, here’s a look at the most popular news covered on Phoronix.

Building the Linux kernel with Clang continues to be useful, new features are sought
At the Linux.Conf. virtual conference last month, Google engineer Nick Desaulniers presented the current state of building the Linux kernel with LLVM Clang as an alternative to GCC.

LLVM Clang 14 Achieves “Incredible” Performance Optimization
While the performance of LLVM / Clang has improved a lot over the years, and for x86_64 and AArch64 may be neck and neck with the GCC compiler, the fierce performance battle is not over. With the release of LLVM / Clang 14.0 in the first months of 2022, there will be more performance work with one recent commit in particular very promising.

Mold 1.0 released as a modern high speed linker alternative to GNU Gold, LLVM LLD
Mold 1.0 is a production-ready, high-speed linker alternative to GNU’s Gold or LLVM’s LLD that is currently supported on Linux systems and written by the original author of the LLD.

Facebook’s BOLT Approaching LLVM Main Line For Binaries Optimization
Facebook’s BOLT project to optimize the performance of compiled binaries is about to be added to the official LLVM source tree with its mono repository.

Intel fully adopts LLVM for its C / C ++ compilers
Intel’s next-generation C / C ++ compilers take full advantage of the LLVM compiler stack in place of their legacy proprietary compiler codebase. Intel has “finished[d] adoption “of LLVM for their C / C ++ compiler needs.

The development of the features of LLVM 13 is complete, LLVM 14 enters development
The development of the features of LLVM 13.0 ended with the code now branched out and the first release candidate tagged.

BOLT to merge with LLVM to optimize binaries performance
In addition to the LLVM SPIR-V back-end appearing to be merge-ready, Facebook’s BOLT project to optimize binaries performance is also in the final stages to be integrated into the LLVM compiler stack.

LLVM Clang Mainlines support for Motorola 68000 series (m68k)
While it wasn’t strange enough in these times of a pandemic to see upstream Nintendo 64 support in the Linux 5.12 kernel a few weeks ago, with the latest vintage hardware still getting support for the Nintendo 64 kernel. open source is the Motorola 68000 series 32-bit processors. LLVM / Clang today merged the “m68k” target for these three-decade-old processors.

LLVM is still working on license renewals, needs help locating former contributors
For years LLVM has been working on a massive new license of their codebase, but that effort is still ongoing as they are still trying to track down some past contributors to get their approvals on the change.

LLVM 12.0 released with support for Alder Lake + Sapphire Rapids, plus C ++ 20
After the release cycle dragged on for another month due to blocking bugs, LLVM 12 was officially marked on Wednesday evening as the last biannual update to this open source compiler stack.

Red Hat Recruits More LLVM Compiler Engineers
Not only does Red Hat continue to invest heavily in GCC and the GNU Toolchain, but it turns out that they are also increasing their skills as an LLVM compiler.

Clang PGO shot for now from Linux kernel
While support for Clang PGO was sent for Linux 5.14 as part of the Clang compiler updates for this next kernel version, the feature was later discontinued and a new extract request was issued after the updates. reviews by Linus Torvalds and others.

LLVM 13.0 released with official Flang binary packages, improved support for OpenCL Clang
LLVM 13.0 was marked overnight as the last biannual update to this very powerful and widely used open source compiler stack.

HPVM 1.0 released as an LLVM-based compiler for CPU / GPU / FPGA / Accelerators
The latest open source compiler infrastructure effort seeking to target a wide range of peripherals, from CPUs to GPUs, FPGAs, and accelerators is HPVM. The HPVM project celebrated its 1.0 milestone today.

Merged Clang LTO support for Linux 5.12 including ARM64 + x86_64
Open up the champagne as the developing Linux 5.12 kernel will be able to support Link Time Optimizations (LTO) in conjunction with the LLVM Clang compiler not only on AArch64 (64bit ARM) but also on x86_64.

Intel, Arm and Khronos feel ready to integrate the SPIR-V backend within LLVM
Engineers from Intel and Arm, in cooperation with The Khronos Group, now feel ready to start placing their SPIR-V back-end in the upstream LLVM source tree! This SPIR-V back-end for LLVM would ultimately allow LLVM front-ends for different languages ​​to more easily target this industry-standard shader representation so that it can be ingested by Vulkan / OpenCL drivers.

LLVM 12.0-rc4 released for squaring this open source compiler
LLVM 12.0 was supposed to release around the end of February, but blocking bugs have resulted in additional version candidates as developers work to implement this open source compiler stack version.

AMD AOCC 3.1 compiler released – Rebased on LLVM 12.0
AMD earlier this week quietly released a new version of its AOCC code compiler which is now rebased to the upstream LLVM / Clang 12.0 compiler state.

AMD AOCC 3.0 released as Zen 3-based compiler optimized LLVM Clang 12
With today’s AMD EPYC 7003 “Milan” launch, there is also the public availability of AOCC 3.0 as their downstream LLVM / Clang now carries patches for enhanced Zen 3 support.

LLVM 12.0 delays drag on with the delivery of RC5
LLVM 12.0 was supposed to ship in early March, but now over a month later and some 6,660+ commits to LLVM 13.0 already, LLVM 12.0 has yet to ship but on Wednesday 12.0.0-rc5 was released.

Source link