Hello,

my student project "Modernising register allocation in SBCL" has been one of the two accepted  by google. Thanks to Paul Khuong for his crucial feedback! 

Here is the preliminary plan/abstract:

This project aims to improve the compiler back end by enhancing the
 register allocation procedure.  To realize this goal, we propose to
 implement
+ a new heuristic optimization based on coloring the global
   interference graph,
+ live ranges and live range splitting,
+ spill code insertion.


The task of the register allocator is to assign an unconstrained
number of temporary names (TNs) in the intermediate representation
(IR) to a finite number of registers.  A naive approach yields too
many memory operations resulting in a reduced execution speed. The
currently implemented SBCL register allocator performs only graph
coloring, essentially treating spills by coloring with stack slots. In
order to improve the allocator, we propose to integrate a new
heuristic graph coloring method inspired by the concepts introduced by
Briggs et al. (1994) in the SBCL compiler.  According to Briggs'
results of the optimistic coloring, the proposed enhancements can be
expected to increase performance of produced code by up to 15%.

Greetings,
Alex