This patch implements a register migration in reload. Reload pass
when it needs a hard register for a reload expells living
pseudo-register from the hard register. Then it tries to reassing a
free hard register to the pseudo-register (function
retry_global_alloc). Usually it fails especially when the processor
has few registers or there is a high register pressure in function. So
finaly the pseudo-register is placed in memory.
Sometimes it is more profitable to use another hard register instead
of memory for the pseudo-register. It might be possible by expelling
another rarely used pseudo-registers from their hard registers. In
own turn the expelled pseudo-registers can also migrate.