# LLVM

Published articles for LLVM.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Bringing Correctly Rounded Math to Production with LLVM-libc

DevFeed: [Bringing Correctly Rounded Math to Production with LLVM-libc](<https://devfeed.tech/articles/bringing-correctly-rounded-math-to-production-with-llvm-libc-31548.md>)

Original publisher: [Read original article](<https://devblogs.microsoft.com/cppblog/bringing-correctly-rounded-math-to-production-with-llvm-libc/>)

Author: Cody Miller, Tue Ly, Michael Jones

Published: 2026-09-16T22:09:50Z

Content type: article

Language: en

Sources: [C++ Team Blog](<https://devfeed.tech/sources/c-team-blog.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Support](<https://devfeed.tech/topics/support.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [msvc](<https://devfeed.tech/tags/msvc.md>)

### AI overview

This guest post explains LLVM-libc's design philosophy of portability and modularity, and discusses its math functions, including their use by MSVC for compile-time evaluation and runtime execution when /Zc:cmath is enabled.

### Source excerpt

As we mentioned in the last cmath blog post, MSVC is using LLVM-libc for compile-time evaluation and runtime execution of math functions when /Zc:cmath is enabled. I invited LLVM-libc contributors Michael Jones and Tue Ly to write a guest blog post about how they've achieved what they've achieved. This is that blog post! I hope [...] The post Bringing Correctly Rounded Math to Production with LLVM-libc appeared first on C++ Team Blog.

## How fast is C++23's std::flat\_map?

DevFeed: [How fast is C++23's std::flat\_map?](<https://devfeed.tech/articles/how-fast-is-c-23-s-std-flat-map-31465.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/09/16/how-fast-is-c23s-stdflat_map/>)

Author: Daniel Lemire

Published: 2026-09-16T20:26:36Z

Content type: article

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Library](<https://devfeed.tech/topics/library.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [clang](<https://devfeed.tech/topics/clang.md>)

Tags: [array](<https://devfeed.tech/tags/array.md>), [arrays](<https://devfeed.tech/tags/arrays.md>), [clang](<https://devfeed.tech/tags/clang.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [overhead](<https://devfeed.tech/tags/overhead.md>), [speed](<https://devfeed.tech/tags/speed.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>)

### AI overview

This article benchmarks C++23's std::flat_map, a sorted container backed by parallel arrays of keys and values. It explains serialization and loading considerations, then compares insertion and lookup performance with std::map. Random-order insertion becomes quadratic as the container grows, while increasing-order or bulk insertion is much faster; random lookups can also be faster for large maps because std::flat_map uses less memory.

### Source excerpt

C++23 added a new type to the standard library: std::flat_map. There is also a std::flat_set and other variants, but let me focus on std::flat_map. A flat map is a sorted vector of keys next to a vector of values. A query is a binary search over the sorted keys. You need a recent standard library: ... Continue reading How fast is C++23's std::flat_map?

## Debian 13.7 Released With Many Bug Fixes

DevFeed: [Debian 13.7 Released With Many Bug Fixes](<https://devfeed.tech/articles/debian-13-7-released-with-many-bug-fixes-12399.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/Debian-13.7-Released>)

Author: Michael Larabel

Published: 2026-09-12T17:06:53Z

Content type: news

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [Debian](<https://devfeed.tech/topics/debian.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Security](<https://devfeed.tech/topics/security.md>), [Chromium](<https://devfeed.tech/topics/chromium.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [PHP](<https://devfeed.tech/topics/php.md>)

Tags: [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [chromium](<https://devfeed.tech/tags/chromium.md>), [debian](<https://devfeed.tech/tags/debian.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [php](<https://devfeed.tech/tags/php.md>), [release](<https://devfeed.tech/tags/release.md>), [security](<https://devfeed.tech/tags/security.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

Debian 13.7 has been released with numerous security fixes and bug fixes across the distribution, including updates to the Linux kernel, Chromium, PHP, LLVM, Cinnamon, and other packages.

### Source excerpt

For those wanting the freshest Debian 13 "Trixie" install media, Debian 13.7 is out today in bundling up all the latest bug and security fixes...

## lld 23 ELF changes

DevFeed: [lld 23 ELF changes](<https://devfeed.tech/articles/lld-23-elf-changes-31132.md>)

Original publisher: [Read original article](<https://maskray.me/blog/lld-23-elf-changes>)

Published: 2026-09-12T07:00:00Z

Content type: release

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Git](<https://devfeed.tech/topics/git.md>), [Claude Code](<https://devfeed.tech/topics/claude-code.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [compression](<https://devfeed.tech/tags/compression.md>), [linker](<https://devfeed.tech/tags/linker.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

This release article summarizes changes in lld/ELF for LLVM 23.1. It reports 141 commits during the development cycle, with substantial performance work including parallelized input-file loading and mark processing, along with linker behavior and compatibility updates.

### Source excerpt

LLVM 23.1 has been released. As usual, I maintain lld/ELF and as volunteer work have added some notes to https://github.com/llvm/llvm-project/blob/release/23.x/lld/docs/ReleaseNotes.rst. Like last time, I used Claude Code to summarize git log llvmorg-23-init..origin/release/23.x -- lld/ELF, excluding changes cherry-picked into 22.x (git rev-list llvmorg-23-init..llvmorg-22.1.8 -- lld), and then edited the draft. This was a busy cycle: 141 commits landed in lld/ELF between the branch point (2026-01-13) and 23.1.0-rc1 (2026-07-16), compared with 72 in the 22 cycle. Much of the increase is performance work, which I described in Recent lld/ELF performance improvements. lld 23 is the first release that ships all of it.

## Advancing Embedded Go: Recoverable Panics, UEFI, Radio and Hardware Dev Kit

DevFeed: [Advancing Embedded Go: Recoverable Panics, UEFI, Radio and Hardware Dev Kit](<https://devfeed.tech/articles/advancing-embedded-go-recoverable-panics-uefi-radio-and-hardware-dev-kit-8460.md>)

Original publisher: [Read original article](<https://www.infoq.com/news/2026/09/tinygo-devkit/>)

Author: Olimpiu Pop

Published: 2026-09-11T05:05:00Z

Content type: news

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [networking](<https://devfeed.tech/topics/networking.md>)

Tags: [development](<https://devfeed.tech/tags/development.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-software-dev](<https://devfeed.tech/tags/embedded-software-dev.md>), [errors](<https://devfeed.tech/tags/errors.md>), [go](<https://devfeed.tech/tags/go.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [networking](<https://devfeed.tech/tags/networking.md>), [news](<https://devfeed.tech/tags/news.md>), [release](<https://devfeed.tech/tags/release.md>), [tiny-go](<https://devfeed.tech/tags/tiny-go.md>), [tinygo-devkit](<https://devfeed.tech/tags/tinygo-devkit.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

TinyGo 0.42 adds recoverable runtime panics, Go 1.27 and LLVM 22 support, and a UEFI target. The article also covers prior wireless and board support, WebAssembly and WASI compilation, and the TinyGo Starter Kit with Seeed Studio XIAO.

### Source excerpt

TinyGo version 0.42 introduces significant updates, including recoverable panics and support for Go 1.27 and LLVM 22, improving error handling and enabling Go code to run as UEFI applications. The TinyGo Starter Kit with Seeed Studio XIAO facilitates hardware use for developers, featuring an ESP32-C3 board and modular sensors. These features enhance its functionality for embedded systems and Wasm. By Olimpiu Pop

## MSVC C++23: constexpr cmath with LLVM Libc

DevFeed: [MSVC C++23: constexpr cmath with LLVM Libc](<https://devfeed.tech/articles/msvc-c-23-constexpr-cmath-with-llvm-libc-2960.md>)

Original publisher: [Read original article](<https://devblogs.microsoft.com/cppblog/msvc-c23-constexpr-cmath-with-llvm-libc/>)

Author: Cody Miller

Published: 2026-09-10T21:19:59Z

Content type: article

Language: en

Sources: [C++ Team Blog](<https://devfeed.tech/sources/c-team-blog.md>)

Topics: [MSVC](<https://devfeed.tech/topics/msvc.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [math](<https://devfeed.tech/topics/math.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [feature](<https://devfeed.tech/tags/feature.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [math](<https://devfeed.tech/tags/math.md>), [msvc](<https://devfeed.tech/tags/msvc.md>), [os](<https://devfeed.tech/tags/os.md>), [performance](<https://devfeed.tech/tags/performance.md>), [tools](<https://devfeed.tech/tags/tools.md>), [visual-studio](<https://devfeed.tech/tags/visual-studio.md>)

### AI overview

MSVC is preparing an experimental C++23 implementation of compile-time-evaluable standard math functions, powered by a new math library. The article explains the existing UCRT math-function arrangement and concerns about accuracy, compatibility, performance, and OS-dependent behavior.

### Source excerpt

Proposal P0533R9 made numerous math functions in the standard library compile-time evaluable in C++23. Implementing the feature required a good bit of time and effort, but MSVC is preparing its experimental implementation for the 14.52 build tools (compiler version 19.52)! We are still refining the feature, so expect the dust to settle only when this [...] The post MSVC C++23: constexpr cmath with LLVM Libc appeared first on C++ Team Blog.

## TinyGo 0.42 adds support for 87 Puya PY32 MCU variants and two EmbedFire boards

DevFeed: [TinyGo 0.42 adds support for 87 Puya PY32 MCU variants and two EmbedFire boards](<https://devfeed.tech/articles/tinygo-0-42-adds-support-for-87-puya-py32-mcu-variants-and-two-embedfire-boards-14028.md>)

Original publisher: [Read original article](<https://www.cnx-software.com/2026/09/04/tinygo-0-42-adds-support-for-87-puya-py32-mcu-variants-and-two-embedfire-boards/>)

Author: Jean-Luc Aufranc (CNXSoft)

Published: 2026-09-04T04:33:53Z

Content type: news

Language: en

Sources: [CNX Software - Embedded Systems News](<https://devfeed.tech/sources/cnx-software-embedded-systems-news.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [Microcontroller](<https://devfeed.tech/topics/microcontroller.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Arm](<https://devfeed.tech/topics/arm.md>), [Internet of things](<https://devfeed.tech/topics/iot.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>)

Tags: [arm](<https://devfeed.tech/tags/arm.md>), [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [development](<https://devfeed.tech/tags/development.md>), [development-board](<https://devfeed.tech/tags/development-board.md>), [devices](<https://devfeed.tech/tags/devices.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [go](<https://devfeed.tech/tags/go.md>), [gpio](<https://devfeed.tech/tags/gpio.md>), [guest-post](<https://devfeed.tech/tags/guest-post.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [iot](<https://devfeed.tech/tags/iot.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [mcu](<https://devfeed.tech/tags/mcu.md>), [microcontrollers](<https://devfeed.tech/tags/microcontrollers.md>), [news](<https://devfeed.tech/tags/news.md>), [programming](<https://devfeed.tech/tags/programming.md>), [puya](<https://devfeed.tech/tags/puya.md>), [software-management](<https://devfeed.tech/tags/software-management.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

TinyGo 0.42 adds support for the Puya PY32 family of 32-bit Arm microcontrollers, covering 87 MCU configurations and two EmbedFire development boards. The port includes startup code, linker scripts, GPIO, UART, and generated device-register definitions.

### Source excerpt

CNXSoft: This is a guest post by Pavel Burgr, who recently added Puya PY32 MCU support to TinyGo 0.42, the latest version of the Go compiler for microcontrollers. We first covered TinyGo in 2019, and the project is still going strong with 17.7k stars, 1.1k forks, and 243 contributors. I just made a few edits and added illustrations and a few links to the article. TinyGo 0.42 adds support for the Puya PY32 family of 32-bit Arm microcontrollers. The new port includes startup code, generated device-register definitions, linker scripts, GPIO and UART support, and targets for 87 individual MCU configurations. It also includes board definitions for two inexpensive EmbedFire development boards available from AliExpress. The port was contributed by Pavel Burgr and merged through TinyGo pull request #5106. One motivation was to establish a solid, easy-to-use firmware platform for small IoT devices built around the Registry service and the BleRiot [...] The post TinyGo 0.42 adds support for 87 Puya PY32 MCU variants and two EmbedFire boards appeared first on CNX Software - Embedded Systems News.

## Block frequency

DevFeed: [Block frequency](<https://devfeed.tech/articles/block-frequency-31125.md>)

Original publisher: [Read original article](<https://maskray.me/blog/block-frequency>)

Published: 2026-08-23T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [graph](<https://devfeed.tech/tags/graph.md>), [llvm](<https://devfeed.tech/tags/llvm.md>)

### AI overview

This article explains how LLVM turns branch probabilities into per-block frequencies through linear-time propagation over loop-structured regions. It also notes that irreducible control flow reduces accuracy.

### Source excerpt

Estimating branch probabilities says how one branch splits. BlockFrequencyInfo turns those local numbers into per-block frequencies, which nearly every profitability decision in LLVM ends up reading. The core is a linear-time propagation over loop-packaged regions. Where no such structure exists -- irreducible control flow -- the accuracy goes with it.

## Estimating branch probabilities

DevFeed: [Estimating branch probabilities](<https://devfeed.tech/articles/estimating-branch-probabilities-31127.md>)

Original publisher: [Read original article](<https://maskray.me/blog/estimating-branch-probabilities>)

Published: 2026-08-09T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [functions](<https://devfeed.tech/tags/functions.md>), [graph](<https://devfeed.tech/tags/graph.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

This post explains how LLVM estimates branch probabilities when profile data is unavailable. It examines the heuristic that classifies control-flow blocks and successor paths using unreachable, cold, unwinding, and loop information, and presents a standalone reimplementation.

### Source excerpt

LLVM's BranchProbabilityInfo assigns every multi-successor terminator a probability distribution over its successors. This post describes the estimation used when no profile is available and reimplements it as a standalone program.

## LLVM Analysis of the Differences Between AMD GFX1250 and GFX1251

DevFeed: [LLVM Analysis of the Differences Between AMD GFX1250 and GFX1251](<https://devfeed.tech/articles/llvm-divination-of-gfx1251-s-differences-14000.md>)

Original publisher: [Read original article](<https://chipsandcheese.com/p/llvm-divination-of-gfx1251s-differences>)

Author: George Cozma

Published: 2026-07-20T09:23:59Z

Content type: article

Language: en

Sources: [Chips and Cheese](<https://devfeed.tech/sources/chips-and-cheese.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [math](<https://devfeed.tech/tags/math.md>), [memory](<https://devfeed.tech/tags/memory.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

The article examines LLVM target descriptions for AMD GFX1250 and GFX1251, identifying their shared GFX12.5 features and differences. It focuses on GFX1251's improved 64-bit execution, packed FP64 and U64 instructions, and the compiler cost model's support for those operations.

### Source excerpt

Hello you fine Internet folks, this article is a sequel to the Scrying the AMD GFX1250 LLVM Tea Leaves article where we are going to look at the differences between GFX1250 and GFX1251.

## Running unmodified Doom in the SQLite bytecode language

DevFeed: [Running unmodified Doom in the SQLite bytecode language](<https://devfeed.tech/articles/running-unmodified-doom-in-the-sqlite-bytecode-language-6029.md>)

Original publisher: [Read original article](<https://turso.tech/blog/running-unmodified-doom-in-the-sqlite-bytecode-language>)

Author: Glauber Costa

Published: 2026-07-17T00:00:00Z

Content type: article

Language: en

Sources: [Turso Blog](<https://devfeed.tech/sources/turso-blog.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [.NET](<https://devfeed.tech/topics/net.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [c](<https://devfeed.tech/tags/c.md>), [doom](<https://devfeed.tech/tags/doom.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rust](<https://devfeed.tech/tags/rust.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [turso](<https://devfeed.tech/tags/turso.md>)

### AI overview

Turso ports unmodified Doom to SQLite's VDBE bytecode VM and runs it in the browser. The article explains Turso's database-bytecode ambitions and its C-to-VDBE compiler.

### Source excerpt

We made Turso into the LLVM of databases: it now runs Doom

## Announcing Rust 1.97.1

DevFeed: [Announcing Rust 1.97.1](<https://devfeed.tech/articles/announcing-rust-1-97-1-2346.md>)

Original publisher: [Read original article](<https://blog.rust-lang.org/2026/07/16/Rust-1.97.1/>)

Author: The Rust Release Team

Published: 2026-07-16T00:00:00Z

Content type: release

Language: en

Sources: [Rust Blog](<https://devfeed.tech/sources/rust-blog.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [releases](<https://devfeed.tech/topics/releases.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Beta channel](<https://devfeed.tech/topics/beta-channel.md>), [ci](<https://devfeed.tech/topics/ci.md>)

Tags: [beta-channel](<https://devfeed.tech/tags/beta-channel.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [ci](<https://devfeed.tech/tags/ci.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [rust](<https://devfeed.tech/tags/rust.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

Rust 1.97.1 is a point release that fixes a miscompilation related to an LLVM optimization. The release backports an LLVM fix and disables the underlying change in Rust 1.97.0 that increased the likelihood of the issue.

### Source excerpt

The Rust team has published a new point release of Rust, 1.97.1. Rust is a programming language that is empowering everyone to build reliable and efficient software. If you have a previous version of Rust installed via rustup, getting Rust 1.97.1 is as easy as: rustup update stable If you don't have it already, you can get rustup from the appropriate page on our website. What's in 1.97.1 Rust 1.97.1 fixes a miscompilation in an LLVM optimization. We have backported both an LLVM fix and a disable of the underlying change in Rust 1.97.0 of Rust's generated IR that increased the likelihood of this happening. However, note that the underlying miscompilation has been present since at least Rust 1.87. If you'd like to help us out by testing future releases, you might consider running your code's CI or locally using the beta channel (rustup default beta) or the nightly channel (rustup default nightly). Please report any bugs you might come across! Contributors to 1.97.1 Many people came together to create Rust 1.97.1. We couldn't have done it without all of you. Thanks!

## We're building Postgres in Rust. Using the LLVM of databases

DevFeed: [We're building Postgres in Rust. Using the LLVM of databases](<https://devfeed.tech/articles/we-re-building-postgres-in-rust-using-the-llvm-of-databases-5877.md>)

Original publisher: [Read original article](<https://turso.tech/blog/a-new-modern-version-of-postgres-in-rust>)

Author: Glauber Costa

Published: 2026-07-16T00:00:00Z

Content type: article

Language: en

Sources: [Turso Blog](<https://devfeed.tech/sources/turso-blog.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [browser](<https://devfeed.tech/tags/browser.md>), [building](<https://devfeed.tech/tags/building.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [processes](<https://devfeed.tech/tags/processes.md>), [rust](<https://devfeed.tech/tags/rust.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [turso](<https://devfeed.tech/tags/turso.md>)

### AI overview

Turso announces work on a modern, from-scratch Postgres-compatible database in Rust. The article outlines Turso's architecture and existing capabilities, including SQLite file compatibility, concurrent writes, asynchronous operation, and self-updating materialized views.

### Source excerpt

We are writing a modern, from-scratch version of Postgres in Rust, on top of Turso. Here is the architecture, what works today, and where we are headed.

## Irreducible loops

DevFeed: [Irreducible loops](<https://devfeed.tech/articles/irreducible-loops-31129.md>)

Original publisher: [Read original article](<https://maskray.me/blog/irreducible-loops>)

Published: 2026-07-12T07:00:00Z

Content type: tutorial

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Code](<https://devfeed.tech/topics/code.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [code](<https://devfeed.tech/tags/code.md>), [entries](<https://devfeed.tech/tags/entries.md>), [flow](<https://devfeed.tech/tags/flow.md>), [graph](<https://devfeed.tech/tags/graph.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [loops](<https://devfeed.tech/tags/loops.md>), [static](<https://devfeed.tech/tags/static.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

This technical post explains why dominator-based natural-loop detection fails for irreducible control-flow graphs, which can have multiple entries. It describes reducibility, the irreducible three-node pattern, and a DFS-based loop-nesting forest using Havlak's convention.

### Source excerpt

The dominator tree lets us identify natural loops: a back edge T->H whose head H dominates its tail T defines a loop with the single entry H. This works only for reducible control flow graphs. Optimized machine code and decompiler output routinely contain irreducible loops, which have more than one entry and thus no dominating header, so the dominator-based method cannot see them. This post builds a loop-nesting forest for an arbitrary CFG with the single-pass depth-first search of 韦韬、毛剑、邹维、陈宇(Tao Wei, Jian Mao, Wei Zou & Yu Chen) A New Algorithm for Identifying Loops in Decompilation, SAS 2007 (The 14th International Static Analysis Symposium).

## Optimizing LLVM's bump allocator

DevFeed: [Optimizing LLVM's bump allocator](<https://devfeed.tech/articles/optimizing-llvm-s-bump-allocator-31134.md>)

Original publisher: [Read original article](<https://maskray.me/blog/optimizing-llvm-bump-allocator>)

Published: 2026-06-28T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [clang](<https://devfeed.tech/topics/clang.md>)

Tags: [changes](<https://devfeed.tech/tags/changes.md>), [clang](<https://devfeed.tech/tags/clang.md>), [codegen](<https://devfeed.tech/tags/codegen.md>), [debug](<https://devfeed.tech/tags/debug.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [memory](<https://devfeed.tech/tags/memory.md>), [optimizing](<https://devfeed.tech/tags/optimizing.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This article explains three recent changes that optimize LLVM's BumpPtrAllocator: avoiding unnecessary realignment, using a sentinel to eliminate a null check, and removing per-allocation accounting from the hot path. It also discusses alignment, typed allocation, incomplete types, and ABI considerations.

### Source excerpt

BumpPtrAllocator is LLVM's bump allocator (arena allocator): each allocation bumps a pointer within a slab, and everything is freed at once when the allocator dies. It backs Clang's ASTContext, lld's make<T> object pools, TableGen records, and many other arenas. Here is the fast path before three recent changes: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 __attribute__((returns_nonnull)) void *Allocate(size_t Size, Align Alignment) { BytesAllocated += Size; // (3) accounting RMW uintptr_t AlignedPtr = alignAddr(CurPtr, Alignment); // (1) always realign size_t SizeToAllocate = Size; #if LLVM_ADDRESS_SANITIZER_BUILD SizeToAllocate += RedZoneSize; #endif uintptr_t AllocEndPtr = AlignedPtr + SizeToAllocate; if (LLVM_LIKELY(AllocEndPtr <= uintptr_t(End) && CurPtr != nullptr)) { // (2) bound + null check CurPtr = reinterpret_cast<char *>(AllocEndPtr); ... return reinterpret_cast<char *>(AlignedPtr); } return AllocateSlow(Size, SizeToAllocate, Alignment); }

## A deep dive into SmallVector::push\_back

DevFeed: [A deep dive into SmallVector::push\_back](<https://devfeed.tech/articles/a-deep-dive-into-smallvector-push-back-31123.md>)

Original publisher: [Read original article](<https://maskray.me/blog/a-deep-dive-into-smallvector-push-back>)

Published: 2026-06-27T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [clang](<https://devfeed.tech/topics/clang.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [clang](<https://devfeed.tech/tags/clang.md>), [codegen](<https://devfeed.tech/tags/codegen.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This article examines an LLVM SmallVector::push_back optimization for approximately trivially copyable element types. It explains how tail-calling the slow growth path reduces the fast path from 14 to 7 instructions and avoids callee-saved registers, while noting tradeoffs for out-of-line calls and overall build size.

### Source excerpt

tl;dr This blog post describes a recent SmallVector::push_back optimization for approximately trivially copyable element types. SmallVector is LLVM's most-used container, and push_back its hot operation. For the trivially-copyable specialization the fast path should be fast. 1 2 3 #include <llvm/ADT/SmallVector.h> void f(llvm::SmallVectorImpl<int> &v, int x) { v.push_back(x); } clang -S --target=x86_64 -O2 -DNDEBUG a.cc generates: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 push rbp # callee-saved spills + a stack realignment, push rbx # all on the fast path push rax mov eax, [rdi + 8] # size cmp eax, [rdi + 12] # vs capacity jae .Lgrow .Lstore: # reached from the fast path AND from .Lgrow mov rcx, [rdi] mov [rcx + rax*4], esi inc dword ptr [rdi + 8] add rsp, 8 pop rbx pop rbp ret .Lgrow: mov rbx, rdi # keep `this`/`x` alive across the call mov ebp, esi call SmallVectorBase<unsigned>::grow_pod ... jmp .Lstore

## LLVM and How It Changed the Way We Write and Compile Code

DevFeed: [LLVM and How It Changed the Way We Write and Compile Code](<https://devfeed.tech/articles/llvm-the-tool-that-shaped-modern-programming-and-no-one-talks-about-39187.md>)

Original publisher: [Read original article](<https://kt.academy/article/LLVM>)

Published: 2026-06-22T00:00:00Z

Content type: article

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [programming](<https://devfeed.tech/tags/programming.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

The article explains what LLVM is and how it changed the way developers write and compile code.

### Source excerpt

What is LLVM and how it revolutionized the way we write and compile code.

## Recent LLVM hash table improvements

DevFeed: [Recent LLVM hash table improvements](<https://devfeed.tech/articles/recent-llvm-hash-table-improvements-31122.md>)

Original publisher: [Read original article](<https://maskray.me/blog/2026-06-07-recent-llvm-hash-table-improvements>)

Published: 2026-06-07T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [hash](<https://devfeed.tech/topics/hash.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [hash](<https://devfeed.tech/tags/hash.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

The article reviews recent improvements to LLVM hash tables, including replacing quadratic probing and tombstone or empty-key sentinels with linear probing, Algorithm R deletion, and bit-array occupancy. It also discusses pointer and iterator invalidation behavior and reports performance improvements in DenseMap.

### Source excerpt

LLVM has several hash tables. They used quadratic probing with in-band sentinel keys (empty, tombstone); recent work has been replacing that with linear probing with tombstone key removed. DenseMap (replacement for std::unordered_map): DenseMapInfo::getEmptyKey() / getTombstoneKey(). DenseSet: implemented using DenseMap compiler-rt/lib/sanitizer_common/sanitizer_dense_map.h ports the implementation for sanitizers. SmallPtrSet (replacement for std::unordered_set<T *>): hard-coded -1 (empty) and -2 (tombstone). StringMap (replacement for std::unordered_map<std::string, V>) StringSet: implemented using StringMap FoldingSet (uniquing/hash-consing container, not a general map) For the open-addressed DenseMap and SmallPtrSet, pointers, references, and iterators are invalidated by insert. StringMap is different: each entry lives in a heap-allocated StringMapEntry<V> node, so entry pointers survive grow. std::unordered_map, being node-based, keeps surviving-element pointers valid across both insert and erase and only invalidates the erased element's own iterator. LLVM code rarely needs that stronger contract -- callers do not hold long-lived references into the container across mutation -- and that gap is what gives pass to relocating erase and bit-array occupancy. Recently, Tombstones have been removed from DenseMap and SmallPtrSet. erase() also invalidates pointers. DenseMap has also retired its empty-key sentinel, leading to significant performance improvements. DenseMap with integer keys (int/unsigned/size_t) had -1/-2 reserved -- a footgun, now fixed. StringMap got Algorithm R deletion too. Its entries are separately heap-allocated, so erase keeps entry pointers valid but invalidates iterators; erase-while-iterating moved to remove_if. FoldingSet dropped chaining for linear probing plus Algorithm R; the intrusive next-in-bucket pointer became a cached 32-bit hash.

## NixOS 26.05 released

DevFeed: [NixOS 26.05 released](<https://devfeed.tech/articles/nixos-26-05-released-38878.md>)

Original publisher: [Read original article](<https://nixos.org/blog/announcements/2026/nixos-2605/>)

Author: NixOS

Published: 2026-05-30T07:00:00Z

Content type: release

Language: en

Sources: [NixOS Announcements](<https://devfeed.tech/sources/nixos-announcements.md>)

Topics: [Nix](<https://devfeed.tech/topics/nix.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [systemd](<https://devfeed.tech/topics/systemd.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [modules](<https://devfeed.tech/topics/modules.md>), [deprecated](<https://devfeed.tech/topics/deprecated.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [accessibility](<https://devfeed.tech/tags/accessibility.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [end-of-life](<https://devfeed.tech/tags/end-of-life.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [linux](<https://devfeed.tech/tags/linux.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [macos](<https://devfeed.tech/tags/macos.md>), [modules](<https://devfeed.tech/tags/modules.md>), [nix](<https://devfeed.tech/tags/nix.md>), [nixos](<https://devfeed.tech/tags/nixos.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [systemd](<https://devfeed.tech/tags/systemd.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>)

### AI overview

NixOS 26.05, named "Yarara," is publicly available as a new Linux distribution release. The announcement covers package, module, configuration, systemd initrd, platform-support, GNOME, and compiler changes, along with support timelines for NixOS 26.05 and the previous 25.11 release.

### Source excerpt

Hey everyone, we are yayayayaka and jopejoe1, the release managers of the newest release of NixOS. We are very proud to announce the public availability of NixOS 26.05 "Yarara". NixOS is a Linux distribution. Its underlying package repository Nixpkgs can also be used on other Linux systems and macOS with the Nix package manager. This release will receive bugfixes and security updates for seven months (up until 2026-12-31). The old release 25.11 "Xantusia" is now officially deprecated and will reach its end-of-life and stop receiving security updates after 2026-06-30. NixOS Release Notes Highlights New Modules Backward Incompatibilities Other Notable Changes Nixpkgs Release Notes Highlights Backward Incompatibilities Other Notable Changes Nixpkgs Library Upgrade Instructions ISO Image Downloads The 26.05 release was made possible due to the efforts of 2842 contributors, who authored 59703 commits since the previous release. Highlights Our vast and routinely maintained set of packages has also been updated. This release of Nixpkgs Added 20442 new packages Updated 20641 existing packages Removed 17532 outdated packages, in an effort to keep the package set maintainable and secure. In addition to packages from Nixpkgs, the NixOS Linux distribution also features composable configuration modules and integration tests for distributed systems. This release of NixOS Added 85 new modules and 1547 configuration options Removed 25 outdated modules and 355 configuration options. systemd stage 1 Stage 1 (a.k.a. initrd) is now based on systemd by default, and the old scripted implementation is deprecated and scheduled for removal in 26.11. Deprecation of x86_64-darwin This will be the last release of Nixpkgs to support x86_64-darwin. Platform support will be maintained and binaries built until Nixpkgs 26.05 goes out of support at the end of 2026. For 26.11, due to Apple's deprecation of the platform and limited build infrastructure and developer time, we will no longer build packa

## Fighting Hyrum's Law in LLVM

DevFeed: [Fighting Hyrum's Law in LLVM](<https://devfeed.tech/articles/fighting-hyrum-s-law-in-llvm-31128.md>)

Original publisher: [Read original article](<https://maskray.me/blog/fighting-hyrums-law-in-llvm>)

Published: 2026-05-10T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [reproducible builds](<https://devfeed.tech/topics/reproducible-builds.md>), [hash](<https://devfeed.tech/topics/hash.md>)

Tags: [clang](<https://devfeed.tech/tags/clang.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [hash](<https://devfeed.tech/tags/hash.md>), [lld](<https://devfeed.tech/tags/lld.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [reproducible-builds](<https://devfeed.tech/tags/reproducible-builds.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

This article examines how LLVM can develop dependencies on unspecified or incidental behavior under Hyrum's Law, causing output variation that harms reproducible builds, bisection, and bug reports. It describes hash-seed perturbation, reverse container iteration, and iterator invalidation checks as mechanisms for exposing such dependencies.

### Source excerpt

With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody. -- Hyrum's Law In a compiler, the most common form of Hyrum's Law is dependence on unspecified behavior -- hash bucket order, the order of equal elements after std::sort, padding offsets. The same framing covers a few cases that are technically undefined behavior (use of an invalidated iterator) or plain incidental properties (ABI struct layout, ELF section offsets). When the compiler itself harbors such a dependency, the symptom is usually output that varies build-to-build: an unstable sort that lands differently after the standard library changes, a hash map whose iteration order shifts when the hash function does. Occasionally the variation is run-to-run within a single build -- DenseMap<void *, X> keys with an ASLR-derived seed reorder buckets each invocation. Either way, reproducible builds, bisection, and bug reports all assume same input -> same output, and a stealth Hyrum dependency breaks that. This post surveys some mechanisms that perturb the contract's blind spots so dependencies cannot quietly form.

## OpenCL Cooperative Matrix Extensions Are Here

DevFeed: [OpenCL Cooperative Matrix Extensions Are Here](<https://devfeed.tech/articles/opencl-cooperative-matrix-extensions-are-here-15116.md>)

Original publisher: [Read original article](<https://www.khronos.org/blog/opencl-cooperative-matrix-extensions-are-here>)

Author: jphilips (jeff@khronosgroup.org)

Published: 2026-04-29T13:00:00Z

Content type: release

Language: en

Sources: [Blogs Khronos Blog](<https://devfeed.tech/sources/blogs-khronos-blog.md>)

Topics: [AI Inference](<https://devfeed.tech/topics/ai-inference.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [C](<https://devfeed.tech/topics/c.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [arm](<https://devfeed.tech/tags/arm.md>), [blog-opencl-spirv-machinelearning-llv](<https://devfeed.tech/tags/blog-opencl-spirv-machinelearning-llv.md>), [c](<https://devfeed.tech/tags/c.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [intel](<https://devfeed.tech/tags/intel.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [opencl](<https://devfeed.tech/tags/opencl.md>), [qualcomm](<https://devfeed.tech/tags/qualcomm.md>), [spir](<https://devfeed.tech/tags/spir.md>), [vulkan](<https://devfeed.tech/tags/vulkan.md>)

### AI overview

The OpenCL Working Group has published a working draft of the cl_khr_cooperative_matrix extension, developed with Arm, Intel, and Qualcomm. The extension brings cooperative matrix operations for ML inference to OpenCL, while a companion OpenCL C extension is also being developed. Community feedback is requested before the standards are finalized.

### Source excerpt

The OpenCL Working Group has published a draft extension (cl_khr_cooperative_matrix) that brings cooperative matrix operations--a key technology for accelerating ML inference--to OpenCL, developed in collaboration with Arm, Intel, and Qualcomm. A companion extension to expose these capabilities directly in the OpenCL C language is also in progress, and the community is invited to review both drafts and provide feedback before they are finalized.

## Extending Ruzzy with LibAFL

DevFeed: [Extending Ruzzy with LibAFL](<https://devfeed.tech/articles/extending-ruzzy-with-libafl-7648.md>)

Original publisher: [Read original article](<https://blog.trailofbits.com/2026/04/29/extending-ruzzy-with-libafl/>)

Author: "Matt Schwager"

Published: 2026-04-29T11:00:00Z

Content type: article

Language: en

Sources: [The Trail of Bits Blog](<https://devfeed.tech/sources/the-trail-of-bits-blog.md>), [The Trail of Bits Blog](<https://devfeed.tech/sources/the-trail-of-bits-blog-2.md>)

Topics: [Fuzzing/Fuzz testing](<https://devfeed.tech/topics/fuzzing.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [Dockerfile](<https://devfeed.tech/topics/dockerfile.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [application-security](<https://devfeed.tech/tags/application-security.md>), [complex-systems](<https://devfeed.tech/tags/complex-systems.md>), [developers](<https://devfeed.tech/tags/developers.md>), [fuzzing](<https://devfeed.tech/tags/fuzzing.md>), [linux](<https://devfeed.tech/tags/linux.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [rust](<https://devfeed.tech/tags/rust.md>), [tool-release](<https://devfeed.tech/tags/tool-release.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

The article describes adding LibAFL support to Ruzzy, a coverage-guided fuzzer for pure Ruby code and Ruby C extensions. It covers building LibAFL as a standalone library, integrating it through a Dockerfile, and investigating ELF and linker issues encountered during the integration.

### Source excerpt

LibAFL is all the rage in the fuzzing community these days, especially with LLVM's libFuzzer being placed in maintenance mode. Written in Rust, LibAFL claims improved performance, modularity, state-of-the-art fuzzing techniques, and libFuzzer compatibility. For these reasons, I set out to add LibAFL support to Ruzzy, our coverage-guided fuzzer for pure Ruby code and Ruby C extensions. This gives Ruby developers and security researchers access to a more advanced and actively maintained fuzzing engine without changing how they write their fuzzing harnesses. Ruzzy was originally built on top of LLVM's libFuzzer, so using LibAFL's compatibility layer should be easy enough. However, digging around in the internals of complex systems is never quite as simple as it seems. In this post, I will investigate some of the deep plumbing inside these fuzzing engines, take a detour into executable and linkable format (ELF) files, and ultimately add LibAFL support to Ruzzy. Building with libafl_libfuzzer Ruzzy currently supports Linux, so I use a Dockerfile for development and for production fuzzing campaigns. To that end, using a similar Dockerfile for LibAFL support is the simplest integration point. LibAFL provides excellent documentation and build scripts to use it as a standalone library. We need to build LibAFL as a standalone library because Ruzzy uses libFuzzer as a library. Following along with the standalone libafl_libfuzzer documentation, and with the build.sh script in hand, we can build libFuzzer.a. This is the archive that will ultimately be linked into Ruzzy's C extension and used to fuzz our target. Here are the relevant lines from our new Dockerfile: # Install Rust nightly via rustup RUN wget -qO- https://sh.rustup.rs | sh -s -- \ -y \ --default-toolchain nightly \ --component llvm-tools ENV PATH="/root/.cargo/bin:${PATH}" # Clone LibAFL RUN git clone --depth 1 https://github.com/AFLplusplus/LibAFL /libafl # Build libFuzzer.a from LibAFL's libfuzzer runtime WORKDIR

## Recent lld/ELF performance improvements

DevFeed: [Recent lld/ELF performance improvements](<https://devfeed.tech/articles/recent-lld-elf-performance-improvements-31121.md>)

Original publisher: [Read original article](<https://maskray.me/blog/2026-04-12-recent-lld-elf-performance-improvements>)

Published: 2026-04-12T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [clang](<https://devfeed.tech/topics/clang.md>), [Chromium](<https://devfeed.tech/topics/chromium.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [chromium](<https://devfeed.tech/tags/chromium.md>), [clang](<https://devfeed.tech/tags/clang.md>), [gc](<https://devfeed.tech/tags/gc.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [linker](<https://devfeed.tech/tags/linker.md>), [lld](<https://devfeed.tech/tags/lld.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [macos](<https://devfeed.tech/tags/macos.md>), [overhead](<https://devfeed.tech/tags/overhead.md>), [patches](<https://devfeed.tech/tags/patches.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This article reports LLVM lld/ELF linker performance improvements from parallelizing link phases and reducing task-runtime overhead. Benchmarks show a 1.34x speedup over lld 22.1 for a Release+Asserts clang link and a 1.09x speedup for a Chromium debug link, while mold and wild remain faster in the comparisons described.

### Source excerpt

Updated in 2026-05. Since the LLVM 22 branch was cut, I've landed patches that parallelize more link phases and cut task-runtime overhead. This post compares current main against lld 22.1, mold, and wild. Headline: a Release+Asserts clang --gc-sections link is 1.34x as fast as lld 22.1; Chromium debug with --gdb-index is 1.09x as fast. mold and wild are still ahead -- the last section explains why.

## ClickHouse at FOSDEM 2026

DevFeed: [ClickHouse at FOSDEM 2026](<https://devfeed.tech/articles/clickhouse-at-fosdem-2026-5073.md>)

Original publisher: [Read original article](<https://clickhouse.com/blog/clickhouse-at-fosdem-2026>)

Author: Tyler Hannan

Published: 2026-04-08T18:00:47Z

Content type: article

Language: en

Sources: [ClickHouse Blog](<https://devfeed.tech/sources/clickhouse-blog.md>)

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [log management](<https://devfeed.tech/topics/log-management.md>), [Shell](<https://devfeed.tech/topics/shell.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [community](<https://devfeed.tech/tags/community.md>), [conference](<https://devfeed.tech/tags/conference.md>), [data](<https://devfeed.tech/tags/data.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [logging](<https://devfeed.tech/tags/logging.md>), [performance](<https://devfeed.tech/tags/performance.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [sql](<https://devfeed.tech/tags/sql.md>), [visualization](<https://devfeed.tech/tags/visualization.md>)

### AI overview

ClickHouse at FOSDEM 2026 recaps the ClickHouse community dinner and technical talks on real-time visualization, production hotpatching with LLVM XRay, and inverted database indexes.

### Source excerpt

FOSDEM 2026 took place on 31 January and 1 February in Brussels, and it was a great weekend for the ClickHouse community, both inside the conference rooms and out.

[Next page](<https://devfeed.tech/tags/llvm.md?cursor=WyIyMDI2LTA0LTA4VDE4OjAwOjQ3KzAwOjAwIiwgIjU2YWYyMmE3LTNkMTItNDA3ZS05ZGI4LWE4N2VhMWM5MWIxYSJd>)