LLVM Enjoyed Record Growth In 2021, Many Exciting Compiler Advancements
When running GitStats on the LLVM mono repository on New Year's Even, this open-source compiler/toolchain stack was up to 111,028 files that comprised 23.85 million lines of code. Quite a feat considering the Linux kernel is at 32 million lines of code in its source tree over its much longer history. LLVM's repository has seen 408k commits and contributions from around 2,903 different authors.
On a commit count, LLVM in 2021 didn't have the busiest year with just 32.1k commits compared to 34.9k in 2020 or 33.2k in 2019...
But when it came to code churn, LLVM led in 2021... LLVM saw 12.5 mllion lines of code added and 8.3 million lines removed... Far higher than 2020 where there were just 7 million lines added and 3.9 million removed.
Simon Pilgrim continued being responsible for the most commits in 2021 followed by Fangrui Song, Roman Lebedev, Craig Topper, Nikita Popov, and Sanjay Patel.
One of the other promising metrics for LLVM in 2021 was the record number of authors... 1,400 different email addresses committed to LLVM, up from 1,321 in 2020 that was previously an all-time high. Prior to 2020, there wasn't a single year seeing more than one thousand contributors. Now for 1,400 in 2020 is showing quite nice growth of the LLVM open-source community.
All the usual big names continue contributing extensively 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 happenings for LLVM in 2021, below is a look at the most popular news covered on Phoronix.
Building The Linux Kernel With Clang Continues To Be Useful, New Features Pursued
At last month's Linux.Conf.Au virtual conference was a presentation by Google engineer Nick Desaulniers on the current state of building the Linux kernel with LLVM Clang as an alternative to GCC.
LLVM Clang 14 Lands An "Amazing" Performance Optimization
While the performance of LLVM/Clang has improved a lot over the years and for x86_64 and AArch64 can be neck-and-neck with the GCC compiler, the fierce performance battle is not over. With LLVM/Clang 14.0 due out in the early months of 2022 will be more performance work with one recent commit in particular showing a lot of promise.
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 currently is supported on Linux systems and written by the original LLD author.
Facebook's BOLT Nearing Mainline LLVM For Optimizing Binaries
Facebook's BOLT project for optimizing the performance out of compiled binaries is nearing the point of being added to LLVM's official source tree with its mono repository.
Intel Fully Embracing LLVM For Their C/C++ Compilers
Intel's next-generation C/C++ compilers are fully leveraging the LLVM compiler stack in place of their former proprietary compiler code-base. Intel has "complete[d] adoption" of LLVM moving forward for their C/C++ compiler needs.
LLVM 13 Feature Development Is Over, LLVM 14 Enters Development
LLVM 13.0 feature development has ended with the code now branched and the first release candidate tagged.
BOLT Close To Merging Into LLVM For Optimizing Performance Of Binaries
In addition to the LLVM SPIR-V back-end appearing ready for merging, also working through the final steps for being mainlined in the LLVM compiler stack is also Facebook's BOLT project for optimizing the performance of binaries.
LLVM Clang Mainlines Support For The Motorola 68000 Series (m68k)
If it wasn't odd enough during these pandemic times seeing Nintendo 64 support upstreamed into the Linux 5.12 kernel a few weeks back, the latest vintage hardware seeing open-source support still going on 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 Relicensing, Needs Help Locating Some Past Contributors
For years LLVM has been working on a massive relicensing of its code-base but that effort is still ongoing as they are still trying to track down some past contributors to collect their sign-offs on the change.
LLVM 12.0 Released With Alder Lake + Sapphire Rapids Support, More C++20
After the release cycle dragged on an extra month due to blocker bugs, LLVM 12 was officially tagged on Wednesday night as the latest half-year update to this open-source compiler stack.
Red Hat Is Hiring More LLVM Compiler Engineers
Not only does Red Hat continue investing heavily in GCC and the GNU toolchain but it turns out they are ramping up their LLVM compiler talent as well.
Clang PGO Shot Down For Now From The Linux Kernel
While Clang PGO support was sent in for Linux 5.14 as part of Clang compiler handling updates for this next kernel version, the functionality was subsequently dropped out and a new pull request issued after criticism from Linus Torvalds and others.
LLVM 13.0 Released With Official Flang Binary Packages, Improved OpenCL Clang Support
LLVM 13.0 was tagged overnight as the latest half-year update to this widely-used, very powerful open-source compiler stack.
HPVM 1.0 Released As LLVM-Based Compiler For CPUs / GPUs / FPGAs / Accelerators
The latest open-source compiler infrastructure effort seeking to target a wide spectrum of devices from CPUs through GPUs, FPGAs, and accelerators is HPVM. The HPVM project today celebrated its 1.0 milestone.
Clang LTO Support Merged For Linux 5.12 Including ARM64 + x86_64
Pop open the champagne as the in-development Linux 5.12 kernel will be able to support link-time optimizations (LTO) in conjunction with the LLVM Clang compiler on not only AArch64 (64-bit ARM) but also x86_64.
Intel, Arm & Khronos Feel Ready to Land SPIR-V Backend Within LLVM
Engineers from Intel and Arm in cooperation with The Khronos Group feel ready now to begin landing their SPIR-V back-end within 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 could be ingested by Vulkan / OpenCL drivers.
LLVM 12.0-rc4 Released For Squaring Up This Open-Source Compiler
LLVM 12.0 was supposed to be out around the end of February but blocker bugs have resulted in additional release candidates as the developers work to button up this open-source compiler stack release.
AMD AOCC 3.1 Compiler Released - Rebased On LLVM 12.0
AMD earlier this week quietly published a new version of its AOCC code compiler that is now rebased against the upstream LLVM/Clang 12.0 compiler state.
AMD AOCC 3.0 Released As Zen 3 Optimized LLVM Clang 12 Based Compiler
With today's AMD EPYC 7003 "Milan" launch there is also the public availability of AOCC 3.0 as their LLVM/Clang downstream now carrying patches for optimized Zen 3 support.
LLVM 12.0 Delays Drag On With RC5 Now Shipping
LLVM 12.0 was supposed to ship at the start of March but now more than one month later and some 6,660+ commits to LLVM 13.0 already, LLVM 12.0 has not yet shipped but on Wednesday 12.0.0-rc5 was issued.