Here are some links to papers with relevance to the implementation of the graph coloring register allocator in C2. The first couple are overviews and generally describe the algorithm in use, which would a Chaitin-Briggs style allocator with optimistic coloring.

Register allocation & spilling via graph coloring

Coloring heuristics for register allocation

Improvements to Graph Coloring Register Allocation

These two papers describe some improvement to spill placement that might be an interesting future addition to the allocator.

Live Range Splitting in a Graph Coloring Register Allocator

Improved Passive Splitting

  • No labels