Both GCC and LLVM/Clang made great strides in 2024 in rounding up their latest C and C++ support, enabling new hardware targets, and a variety of other features. Plus other open-source compilers targeting different features / languages, device types, and more also advanced a lot this calendar year. For those excited about turning code into binaries, here’s a look back at the most popular compiler articles on Phoronix.
For those enjoying the frequent news on Phoronix around open-source compilers and related tech, this 2024 recap is for you in case you had missed out on any of these significant milestones for the year. A lot of interesting work happened across the board to many different free software projects.
GCC 14 Boasts Nice ASCII Art For Visualizing Buffer Overflows
David Malcolm of Red Hat’s compiler team is out with his annual blog post summarizing the static analysis improvements to find with the upcoming GCC 14 stable compiler release.
Torvalds Has It With “-Wstringop-overflow” On GCC Due To Kernel Breakage
One of the new features for Linux 6.8 that was merged late was enabling the -Wstringop-overflow compiler option to warn about possible buffer overflows in cases where the compiler can detect such possible overflows at compile-time. While it’s nice in theory, issues on GCC has led Linus Torvalds to disabling this compiler option as of now Linux 6.8.
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.
X.Org Server Clears Out Remnants For Supporting Old Compilers
There are still no signs of a new X.Org Server feature release coming in the near-term with most of the major stakeholders divesting from the xorg-server besides the XWayland portion of the code-base. But for those interested in the past few days there have been some NetBSD/OpenBSD build fixes to the X.Org Server as well as clearing out some remnants of old compiler support.
Targeted Intel oneAPI DPC++ Compiler Optimization Rules Out 2k+ SPEC CPU Submissions
SPEC has effectively invalidated more than two thousand SPEC CPU 2017 benchmark submissions after it was discovered the Intel oneAPI DPC++ compiler was effectively “cheating” per their standards with a targeted optimization.
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.
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.
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.
AMD Zen 5 Compiler Support Posted For GCC – Confirms New AVX Features & More
Making for a very exciting Saturday morning, AMD just posted their initial enablement patch for plumbing Zen 5 processor support “znver5” into the GNU Compiler Collection! With GCC 14 due to be released as stable in March~April as usual for the annual compiler release, it’s been frustrating to see no Zen 5 support even while Intel has already been working on Clear Water Forest and Panther Lake support with already having upstreamed Sierra Forest, Granite Rapids, and other new CPU targets months ago… Well, Granite Rapids was added to GCC in late 2022. But squeezing in as what should now be merged in time is the initial AMD Zen 5 support!
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.
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.
GCC 14 Compiler Might Have AMD RDNA3 GPU Support “Working For Most Purposes”
Earlier this month the GCC 14 compiler landed initial support for AMD RDNA3 “GFX11” graphics processors as part of the GNU Compiler Collection’s OpenMP device offloading support for GPU compute. That initial support was rather basic but a follow-up patch has the possibility of making the RDNA3 (GFX11) support “working for most purposes” and will hopefully still be merged in time for the GCC 14.1 stable release.
GCC Compiler Adds Support For Device Offloading With AMD RDNA3 APUs (GFX1103)
While there is AOMP for OpenMP device offloading based on the LLVM/Clang compiler, less talked about and not as feature-rich is the AMDGCN back-end within the GNU Compiler Collection (GCC) that is also worked on for OpenMP device offloading capabilities to Radeon GPUs. Squeezing in for the upcoming GCC 14.1 stable release is GFX1103 support for AMD APUs with RDNA3 integrated graphics.
GCC Rust Compiler “gccrs” Sees ~900 New Patches Upstreamed For GCC 14
Merged this afternoon to GCC Git ahead of the upcoming GCC 14.1 stable release is a big update to the GCC Rust “gccrs” compiler front-end.
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.
GCC Preparing To Set C23 “GNU23” As Default C Language Version
The GNU Compiler Collection (GCC) support for the C23 programming language standard is now considered “essentially feature-complete” with GCC 15. As such they are preparing to enable the C23 language version (using the GNU23 dialect) by default for the C language version of GCC when not otherwise specified.
GCC 14 Compiler Adds AArch64 GNU/Hurd Support
While GNU Hurd continues having a tough time on x86 support and GNU Hurd x86_64 is being worked toward, the GCC 14 compiler has been working on compiler toolchain support for GNU Hurd AArch64.
LPython 0.21 Released For Alpha-Stage Python AOT Compiler
As the first new release since last September, LPython 0.21 has been released for this alpha-stage Python ahead-of-time compiler written in C++. LPython remains focused on providing “the best possible performance” especially for numerical use-cases, cross-platform compatibility, and hopes to be able to eventually transform Python code over to C++ and Fortran or other languages.
LPython 0.22 Released For Ahead-Of-Time Compiler For Python
LPython is an in-development open-source project aiming to be a very fast Python compiler with multiple back-ends. Released this week was LPython 0.22 as the latest step in this crusade.
AdaptiveCpp 24.06 Released As “The Fastest Heterogeneous C++ Compiler” – Beats CUDA
AdaptiveCpp as the open-source compiler formerly known as hypSYCL and Open SYCL is out with a new feature release for this C++ heterogeneous compiler supporting all major CPUs and GPUs.
GCC 15 Un-Deprecates Itanium IA-64 Linux Support
The GCC 14 compiler marked Itanium IA-64 support as obsolete with plans to remove that Intel architecture in GCC 15. But for now at least the Itanium Linux compiler support has seen some reprieve with it being un-deprecated.
LLVM Compiler Finally Ends Support For AMD’s 3DNow!
The open-source LLVM compiler today dropped support for AMD’s long forgotten 3DNow! instructions.
Vcc Announced As The Vulkan Clang Compiler
Coming out of Saarland University is Vcc, the Vulkan Clang Compiler. Vcc provides an “honest attempt to bring the entire C/C++ language family to Vulkan” as an interesting new compiler.
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.
Debian GNU/Hurd Adds Experimental 32-bit SMP Kernel & Rust Compiler
The GNU Hurd team has put out their Q2’2024 status update to outline recent activity around this micro-kernel platform.