Everything you care about in one place

Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.

Get Feeder

maskray.me

Get the latest updates from directly as they happen.

Follow now 124 followers

Latest posts

Last updated 9 days ago

Irreducible loops

9 days ago

The dominator tree letsus identify natural loops:a back edge T->H whose head...

Optimizing LLVM's bump allocator

23 days ago

BumpPtrAllocator is LLVM's bump allocator (arenaallocator): each allocation bumps a pointer within...

A deep dive into SmallVector::push_back

24 days ago

SmallVector is LLVM's most-used container, andpush_back its hot operation. For the trivially-copyablespecialization...

Recent LLVM hash table improvements

about 1 month ago

LLVM had several hash tables using quadratic probing with in-bandsentinel keys (empty...

Fighting Hyrum's Law in LLVM

2 months ago

With a sufficient number of users of an API, it does not...

Recent lld/ELF performance improvements

3 months ago

Since the LLVM 22 branch was cut, I've landed a series of...

Bit-field layout

5 months ago

The C and C++ standards leave nearly every detail to theimplementation. C23...

Call relocation types

5 months ago

Most architectures encode branch/call instructions with a PC-relativedisplacement. Some architectures use two...

lld 22 ELF changes

6 months ago

LLVM 22.1 will be released soon. As usual, I maintain lld/ELF andhave...

lld 22 ELF changes

6 months ago

LLVM 22 will be released. As usual, I maintain lld/ELF and have...

Long branches in compilers, assemblers, and linkers

6 months ago

Branch instructions on most architectures use PC-relative addressingwith a limited range. When...

Handling long branches

6 months ago

Branch instructions on most architectures use PC-relative addressingwith a limited range. When...