Tag
This post explains MLIR as a compiler infrastructure framework that provides a flexible dialect stack, describing how it is used across modern ML compilers like XLA, Triton, and Mojo to progressively lower tensor operations to machine code.
Fil-C is a fully memory-safe implementation of C/C++. It bundles pointer values with boundary information using invisicaps at the LLVM IR stage, achieving high compatibility with a performance penalty of about 4x.
A detailed analysis of Rust's std::simd::swizzle_dyn implementation, exposing performance shortcomings and proposing optimizations to better leverage hardware shuffle instructions.
The author built a joke programming language called bet that compiles via LLVM, uses arena-based memory management, and successfully runs the full DOOM game (56,000 lines) without code review, relying only on tests.
This blog post explores a technique to make legacy Fortran simulation code differentiable using LFortran, Enzyme, and Tesseract, allowing automatic differentiation and integration with JAX for use in machine learning pipelines.
This article explains how implementing a Dense Arena Interner can drastically improve compiler performance by converting strings and structures into dense integers, enabling O(1) comparisons after an upfront hashing cost during lexing.
LLVM is a collection of modular and reusable compiler and toolchain technologies used for developing compiler front ends and back ends.
This blog post explores an optimization for LLVM's SmallVector::push_back by tail-calling the grow-and-push path, which eliminates callee-saved register spills and improves the fast path performance.
This blog post details three recent optimizations to LLVM's BumpPtrAllocator, reducing fast-path overhead by removing redundant alignment, null pointer checks, and per-allocation accounting, resulting in improved performance for Clang, lld, and other LLVM components.
Gossamer is a new programming language inspired by Rust that features real goroutines, pause-free deterministic memory management with reference counting and arenas, and a bytecode VM with LLVM compilation. It aims to provide expressive syntax without a borrow checker or garbage collector pauses.
CS 6120 is a PhD-level online self-guided course on advanced compilers, covering intermediate representations, data flow, optimizations, and including paper readings and implementation tasks using LLVM and Bril.
Apple's dsymutil tool, which links DWARF debug info into self-contained bundles, is adopting a parallel DWARF linker to address the single-threaded bottleneck in type deduplication, despite challenges in qualification due to non-binary-identical output.
Ü is a statically-typed compiled programming language designed for reliability and speed, with safe/unsafe code separation, RAII, and LLVM backend. It aims to be superior to C++ and easier than Rust.
Reify is an open-source random C program generator based on semantic reification that produces undefined-behavior-free code for compiler testing. It has already uncovered 59 bugs in GCC and LLVM, plus additional bugs in OpenJ9 and Linux's eBPF runtime.
Perry compiles TypeScript directly to native executables using SWC and LLVM, producing small binaries with no runtime dependencies, supporting all major platforms and native UI widgets.
A technical blog post demonstrating how Profile-Guided Optimization (PGO) with LLVM can significantly improve binary performance beyond standard -O3 and LTO, using SQLite as a benchmark.
The LLVM Foundation has released a statement advocating for open access to standards documents, aiming to increase transparency and community involvement.
Nibble is a C-like systems programming language implemented in 3000 lines of C that generates LLVM IR without external dependencies or heap allocations. It supports defer, recursion, various types, structs, pointers, and includes graphical demos.
This article surveys mechanisms within the LLVM compiler infrastructure designed to prevent dependencies on unspecified behavior, known as Hyrum's Law, to ensure build reproducibility.
Blaise is a modern, self-hosting Object Pascal compiler designed to eliminate legacy baggage by offering a single language mode, unified memory model, and native code generation via QBE.