Register allocation and spilling using the expected distance heuristic. (7th February 2016)