rat's register allocator
Summary
This article describes rat's register allocator, a small compiler backend with a greedy, priority-based register allocation strategy. It covers five steps (live ranges, fixed registers, coalescing, picking registers, spilling), details of coalescing, and provides examples and performance metrics showing improvements over the previous allocator. It's a deep, code-heavy write-up suited for developers interested in compiler design and optimization.