News: 0001516623

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

LLVM Had Another Exciting Year With More Than 37k Commits, 35.5 Million Lines

([LLVM] 6 Hours Ago LLVM Code Activity)


LLVM development has peaked in recent years at around 37k commits per year for this huge, innovative open-source compiler stack. It was another very exciting year for this leading open-source compiler stack.

In 2024 LLVM saw the LLVM 18 and LLVM 19 releases and development well underway on LLVM 20. There's been new C and C++ standards worked on, the new Flang compiler code coming together well, new hardware targets, continued work on AMDGPU and other GPU hardware, a telemetry framework, new RISC-V features, more AVX10 enablement, and an assortment of other features to land in 2024.

In 2024 there were 37,486 commits to the LLVM repository... Roughly inline with the 37.4~37.5k commits seen in 2022 and 2023. Those 37.4k commits added 9,339,334 lines of code while removing 5,591,115 lines.

Taking the top spot with responsible for about 3% of commits to LLVM in 2024 was Simon Pilgrim, a Sony engineer. Following Simon was Kazu Hirata, Craig Topper, Fangrui Song, Nikita Popov, and Florian Hahn as the most prolific LLVM contributors of 2024. There were 2,138 different authors to LLVM in 2024... A nice increase from the 1,932 in 2023 and the 1,573 in 2022. Having 2.1k authors to LLVM was easily the most number of authors to this open-source project ever. It was just one decade ago that in 2014 there were just 336 authors for the year.

LLVM's growth by line count continues to grow quite a lot each year. LLVM ended out 2024 at 35.56 million lines.

Those wanting to go through all the Git statistics for LLVM in 2024 can see the full data dump [1]here .

For those curious about the most popular LLVM news on 2024 from Phoronix, below is a look at the most popular LLVM news for the past year:

[2]How AMD Is Taking Standard C/C++ Code To Run Directly On GPUs

Back at the 2024 LLVM Developers' Meeting was an interesting presentation by AMD engineer Joseph Huber for how they have been exploring running common, standard C/C++ code directly on GPUs without having to be adapted for any GPU language / programming dialects or other adaptations.

[3]DOOM Ported To Run Atop AMD ROCm + LLVM libc

An open-source developer at AMD has carried out a DOOM port that runs almost entirely atop AMD GPUs for rendering and the game logic. This DOOM GPU port relies on the AMD ROCm library with the LLVM libc C library for offloading the classic DOOM to the AMD GPU.

[4]AMD's Newest Open-Source Surprise: "Peano" - An LLVM Compiler For Ryzen AI NPUs

There was a very exciting Friday evening code drop out of AMD... They announced a new project called Peano that serves as an open-source LLVM compiler back-end for AMD/Xilinx AI engine processors with a particular focus on the Ryzen AI SOCs with existing Phoenix and Hawk Point hardware as well as the upcoming XDNA2 found with the forthcoming Ryzen AI 300 series.

[5]Apple M4 Support Added To The LLVM Compiler, Confirming Its ISA Capabilities

Apple compiler engineers have contributed Apple M4 CPU support to the upstream LLVM/Clang compiler via the new -mcpu=apple-m4 target. Interestingly the Apple M4 is exposed as an ARMv8.7 derived design.

[6]Meta Continues Working On BOLT'ing The Linux Kernel For Greater Performance

Merged to the LLVM compiler stack two years ago was the BOLT tool for optimizing the layout of generated binaries for offering even greater performance than the likes of Profile Guided Optimizations (PGO) alone. BOLT had been in development for years by Facebook/Meta engineers and has continued to be improved upon for enhancing the code layout of binaries to yield enhanced performance. Recently there's been renewed work on using BOLT to optimize Linux kernel images.

[7]Autocheck To Check If Your C++ Code Is Safe For Automobiles & Safety Critical Systems

Being developed the past several years by the SYRMIA embedded software firm is Autocheck, an LLVM/Clang-based project to check C and C++ code to evaluate if it's suitable for running inside automobiles and other safety critical environments. Autocheck is now free and open-source for those wanting to help evaluate the safety of your C/C++ code.

[8]LLVM/Clang Can Work Fine As A GCC Replacement For Linux Distributions

While the performance of LLVM/Clang is on-par with GCC these days on both x86_64 and AArch64 and the C/C++ support is very robust compared to many years ago, most Linux distributions continue using the GCC compiler and GNU toolchain by default. OpenMandriva is a well known Linux distribution that for several years has been a Clang-built Linux distribution while for three years now the Chimera Linux distribution has also been relying exclusively on an LLVM toolchain.

[9]Proposal Raised To Deprecate "-Ofast" For The LLVM/Clang Compiler

Some that crave the absolute best possible performance sometimes build their software with the "-Ofast" optimization level that is a step above "-O3" but comes with the risk of potentially unsafe math. LLVM developers are now weighing whether to deprecate -Ofast to either remove it or have it just be an alias for the -O3 optimizations.

[10]Codon 0.17 Released For LLVM-Based Python Implementation For 10~100x Speedups

Codon is an open-source project that leverages the LLVM compiler infrastructure and aims for super fast Python code with as much as 10~100x speedups. Released this week was Codon 0.17 as the newest step forward for this alternative Python implementation.

[11]LLVM Adds Support For New "Ampere1B" Third-Gen Cores From Ampere Computing

While we are still waiting to get our hands on AmpereOne hardware for Ampere Computing's in-house design Arm cores with up to 192 cores, Friday night Git activity to LLVM has revealed an "Ampere1B" core.

[12]Mold 2.32 Released With Increased LLVM LLD Compatibility, Faster Identical Code Folding

Mold 2.32 is out as the newest feature release for this high speed code linker that rivals LLVM LLD and GNU Gold.

[13]LLVM Compiler Finally Ends Support For AMD's 3DNow!

The open-source LLVM compiler today dropped support for AMD's long forgotten 3DNow! instructions.

[14]LLVM/Clang 18.1 Released With Intel AVX10.1 Work, Adds Clearwater Forest & Panther Lake

Out today is the big LLVM/Clang 18.1 release. Due to shifting to a new versioning scheme like GCC, today's LLVM 18.1 release is the first major stable release in the new series for what previously would have been called LLVM 18.0.

[15]Mold Linker Performance Remains Very Compelling In 2024 Over GNU Gold/ld, LLVM lld

The Mold high performance linker has long been known for offering excellent performance over GNU Gold/ld and LLVM lld while some fresh benchmark numbers reinforce the competitive advantage that persists today for this open-source project.

[16]LLVM Clang 19 Adds Initial "-std=c2y" Support For The Next C Standard

LLVM Clang 19 this morning landed initial support for the -std=c2y and -std=gnu2y options for targeting the next C programming language standard.

[17]LLVM BOLT Optimizations Net ~6% Improvement For GNOME's Pango

BOLT that was upstreamed into LLVM in 2022 by Facebook/Meta allows for optimizing the layout of binaries as a post-linking step to yield increased performance. BOLT like Profile Guided Optimizations (PGO) first requires the profiling step to generate perf recordings to feedback in for the optimization process, but the gains can be significant.

[18]LLVM's BOLT Being Adapted To Analyze Security Hardening Of Binaries

LLVM's BOLT is an amazing tool for optimizing the layout of binaries and in turn can lead to some mighty useful performance improvements. But now an Arm compiler engineer has taken to leveraging BOLT for creating a binary analysis tool to vet the correctness of security hardening options.

[19]AMD AI Compiler Engineer Lands A Generic MLIR To SPIR-V Pass In LLVM 19

Merged on Friday to LLVM 19 Git is a generic MLIR to SPIR-V pass for lowering the Multi-Level Intermediate Representation down into SPIR-V as the intermediate representation consumed by OpenGL / OpenCL / Vulkan drivers.

[20]LLVM Dealing With Slower Performance On AMD CPUs When Targeting AMD Zen Optimizations

Recently there was an LLVM bug report of "Worse runtime performance on Zen CPU when optimizing for Zen." Well, that's not good... Fortunately, that bug is now fixed with the latest LLVM Clang compiler code but other deficiencies in the AMD CPU optimization targeting remain.

[21]LLVM 18 Planned For Release In Early March

Tom Stellard announced plans this past week for releasing the LLVM 18 compiler stack in early March.

[22]LLVM 18.1-rc1 Released For Enabling New Intel CPU Features, More C23 & C++23

Following the recent branching of LLVM 18, LLVM 18.1-rc1 was released today as the first test candidate for this half-year update of this widely-used open-source compiler stack.

[23]LLVM Clang Switches MMX Intrinsics To Use SSE2 Instead

Following LLVM/Clang recently dropping support for AMD 3DNow! instructions, the open-source compiler stack is now pushing the MMX SIMD instruction set to a backseat. Moving forward the MMX intrinsics will not make use of MMX but rather be mapped to SSE2. This is all fine unless you are wanting to use this modern code compiler on an Intel Pentium MMX / Pentium II / Pentium III or AMD K6 / K7 processor from the late 90's.

[24]A "Safe C++" Being Explored Using The New ClangIR

An interesting "request for comments" proposal I have been meaning to write about since last month is in-development work developing "Safe C++" as an extension to the LLVM Clang compiler and making use of the new, in-development ClangIR.

[25]FreeBSD 13.3 Released With Better WiFi Support, LLVM objdump Added

For those still on the FreeBSD 13 series with not having migrated yet to FreeBSD 14, FreeBSD 13.3 was released overnight as the newest incremental update to this mature BSD platform.

[26]LLVM 19.1-rc1 Compiler Released With More C23 / C++23 & New Intel Extensions

LLVM 19.1-rc1 was released today as the first tagged development snapshot of LLVM 19 that is working its way toward the stable LLVM 19.1 version expected in September.

[27]AMD Lands Support For Vendor Flavored SPIR-V Within LLVM

SPIR-V used by the likes of OpenGL, OpenCL, and Vulkan is a common intermediate representation (IR) / intermediate language for consumption by device drivers. With code now merged into LLVM, AMD has introduced the notion of vendor "flavored" SPIR-V for containing extra information pertinent to the GPU device/driver being targeted.

[28]Red Hat Engineer Nikita Popov Now The Lead Maintainer For LLVM

Following a proposal that began last month, Red Hat engineer Nikita Popov was nominated to become the new lead maintainer for LLVM. Following unaminous approval, as of last week in LLVM Git he's been appointed the official lead maintainer for this critical open-source compiler stack.

[29]Ubuntu 25.04 Planning To Use GCC 15 As Well As Exploring Greater LLVM Use

Canonical's Matthieu Clemenceau as the Engineering Director for the Ubuntu Foundations Team has provided a public roadmap around some of the plans for Ubuntu 25.04. This next Ubuntu Linux (non-LTS) release that is due out in April is set to enjoy more performance optimizations and other exciting bits.

[30]AMDGPU LLVM Adding GFX 9/10/11 "Generic Targets" To Build Once & Run On Multiple GPUs

Code merged today to mainline LLVM is preparing for the notion of generic targets across the GFX9, GFX10, and GFX11 GPU families. With follow-on work these generic targets are aiming to allow compiling code once and then running across multiple GPUs in the given hardware family.

[31]LLVM Clang 19 Lands Support For C23's #embed

Merged today to LLVM Clang 19 Git is support for the #embed resource inclusion mechanism that is an approved C23 feature. This also makes Clang the first for supporting this pre-processor embed feature.



[1] https://www.phoronix.com/misc/llvm-eoy-2024/index.html

[2] https://www.phoronix.com/news/AMD-Standard-C-Code-GPUs

[3] https://www.phoronix.com/news/DOOM-ROCm-LLVM-Port

[4] https://www.phoronix.com/news/AMD-Peano-LLVM-Ryzen-AI

[5] https://www.phoronix.com/news/Apple-M4-Added-To-LLVM-Clang

[6] https://www.phoronix.com/news/LLVM-BOLT-Linux-Kernel-2024

[7] https://www.phoronix.com/news/Autocheck-LLVM-Safety-Critical

[8] https://www.phoronix.com/news/LLVM-Clang-Chimera-Linux-2024

[9] https://www.phoronix.com/news/LLVM-Might-Deprecate-Ofast

[10] https://www.phoronix.com/news/Codon-0.17-Python-Released

[11] https://www.phoronix.com/news/LLVM-Ampere1B

[12] https://www.phoronix.com/news/Mold-2.32-Released

[13] https://www.phoronix.com/news/LLVM-Ends-AMD-3DNow

[14] https://www.phoronix.com/news/LLVM-Clang-18.1-Released

[15] https://www.phoronix.com/news/Mold-Linker-2024-Performance

[16] https://www.phoronix.com/news/LLVM-Clang-19-std-C2Y

[17] https://www.phoronix.com/news/LLVM-BOLT-Faster-Pango

[18] https://www.phoronix.com/news/LLVM-BOLT-Security-Hardening

[19] https://www.phoronix.com/news/LLVM-19-MLIR-To-SPIR-V

[20] https://www.phoronix.com/news/LLVM-Slower-With-AMD-Opts

[21] https://www.phoronix.com/news/LLVM-18-Release-Schedule

[22] https://www.phoronix.com/news/LLVM-18.1-rc1-Released

[23] https://www.phoronix.com/news/LLVM-Clang-MMX-Intrinsics-SSE2

[24] https://www.phoronix.com/news/RFC-Safe-CXX-Using-ClangIR

[25] https://www.phoronix.com/news/FreeBSD-13.3-Released

[26] https://www.phoronix.com/news/LLVM-19.1-rc1-Released

[27] https://www.phoronix.com/news/LLVM-AMDGCN-Flavored-SPIR-V

[28] https://www.phoronix.com/news/LLVM-Lead-Maintainer-Popov

[29] https://www.phoronix.com/news/Ubuntu-25.04-Foundation-Roadmap

[30] https://www.phoronix.com/news/LLVM-AMDGPU-Generic-GFX

[31] https://www.phoronix.com/news/LLVM-Clang-19-C23-Embed



mrg666

geerge

edxposed

oleid

Gamer1227

Paranoids are people, too; they have their own problems. It's easy
to criticize, but if everybody hated you, you'd be paranoid too.
-- D. J. Hicks