register allocation definition compiler, algorithm
The phase of a compiler
that determines which values will be placed in registers
. Register allocation may be combined with register assignment
This problem can be shown to be isomorphic to graph colouring
by relating values to nodes in the graph and registers to colours. Values (nodes) which must be valid simultaneously are linked by edges and cannot be stored in the same register (coloured the same).
See also register dancing
and register spilling
[Preston Briggs, PhD thesis, Rice University, April 1992 "Register Allocation via Graph Coloring" (ftp://ftp.cs.rice.edu/public/preston/thesis.ps.gz)].