Rat's Register Allocator

57 points by mpweiher a day ago on hackernews | 3 comments

tonfa | 10 hours ago

> The best assignment is NP-hard to find, so all practical allocators use heuristics.

That said if you do the register allocation while the program is still in SSA form, it becomes polynomial (interference graph is a chordal graph).

https://compilers.cs.uni-saarland.de/projects/ssara/

zarakshR | 9 hours ago

Not quite, SSA form makes only the colouring pass polynomial time, optimal choice of spilling and coalescing is still NP-complete. cf. https://hal-lara.archives-ouvertes.fr/hal-02102286v1/documen...

ndesaulniers | 3 hours ago

This is a great high level overview of some the techniques and problems encountered with developing a register allocator!

LLVM 's FastRegAlloc also uses linear scan.