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 126 followers

Latest posts

Last updated 7 days ago

lld 23 ELF changes

7 days ago

LLVM 23.1 has been released. As usual, I maintain lld/ELF and asvolunteer...

Remarks on SFrame

12 months ago

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

Stack walking: space and time trade-offs

11 months ago

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

Call relocation types

7 months ago

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

Bit-field layout

7 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

3 months ago

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

Optimizing LLVM's bump allocator

3 months ago

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

Block frequency

27 days ago

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

Estimating branch probabilities

about 1 month ago

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

lld 21 ELF changes

about 1 year ago

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

Long branches in compilers, assemblers, and linkers

8 months ago

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