A new Register Allocator for ZJIT

We recently landed a new register allocator in ZJIT. Learn about lifetimes, interference graphs, and linear scan — and why a global allocator unlocks features like method inlining.

Rails at Scale
@tekknolagi @tenderlove long live linear scan! Great job!

@tekknolagi @tenderlove Neat!

So, sounds like yjit didn't have the ability to "katamari" basic blocks into something larger/more-complete where this lifetime analysis was possible. Is that correct?

Is it a limitation of basic block (core) concept or an implementation artifact?