register allocation
The compiler step that decides which real register holds each value, and what to keep in memory when there are too few.
Register allocation assigns the unbounded virtual registers of the selected code to the target's physical registers, honouring the calling convention, and inserts spill code where simultaneously live values exceed the registers available.