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 about 6 hours ago

Remarks on SFrame

11 months ago

SFrame is a new stack walkingformat for userspace profiling, inspired by Linux's...

Stack walking: space and time trade-offs

10 months ago

On most Linux platforms (except AArch32, which uses.ARM.exidx), DWARF .eh_frame is required...

Call relocation types

6 months ago

Most architectures encode direct branch/call instructions with aPC-relative displacement. This post discusses...

Bit-field layout

6 months ago

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

Fighting Hyrum's Law in LLVM

4 months ago

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

A deep dive into SmallVector::push_back

about 2 months ago

tl;dr This blog post describes a recentSmallVector::push_back optimization for approximatelytrivially copyable element...

Optimizing LLVM's bump allocator

about 2 months ago

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

Block frequency

about 20 hours ago

Estimating branchprobabilities says how one branch splits.BlockFrequencyInfo turns those local numbers into...

Estimating branch probabilities

15 days ago

LLVM's BranchProbabilityInfo assigns everymulti-successor terminator a probability distribution over itssuccessors. This post...

lld 21 ELF changes

12 months ago

LLVM 21.1 have been released. As usual, I maintain lld/ELF and haveadded...

Long branches in compilers, assemblers, and linkers

7 months ago

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

lld 22 ELF changes

7 months ago

For those unfamiliar, lld is theLLVM linker, supporting PE/COFF, ELF, Mach-O, and...