Overview
News
Salaries
Products
People
Growth
Offices
Financials
News
Estimating branch probabilities
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 reimpleme
Read more
Report
Estimating branch probabilities
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.
Read more
Report
Irreducible loops
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 contai
Read more
Report
Optimizing LLVM's bump allocator
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 makeT object pools, TableGen records, and many other a
Read more
Report
A deep dive into SmallVector::push_back
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
Read more
Report
Recent LLVM hash table improvements
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::getE
Read more
Report
GitHub - MaskRay/ccls: C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting
C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting - MaskRay/ccls
Read more
Report
Fighting Hyrum's Law in LLVM
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 un
Read more
Report
Recent lld/ELF performance improvements
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
Read more
Report
Bit-field layout
The C and C++ standards leave nearly every detail to the implementation. C23 6.7.3.2: An implementation may allocate any addressable storage unit large enough to hold a bit-field. If enough space remains, a bit-field that immediately follows another bit-f
Read more
Report
Show more news
