A method is described comprising inserting an allocation instruction within a
routine
if a function call instruction is found within the routine. Another method is described
comprising inserting multiple allocation instructions within a routine by searching
for one or more functional characteristics within the routine and inserting an
allocation instruction within the routine if a functional characteristic is discovered.
Another method is described comprising performing a first allocation for a first
amount of register space at the entry block of a routine and then performing a
second allocation for a second amount of register space for the live information
within the routine at the time of the second allocation. Then, performing a function
call to a second routine and performing a third allocation for a third amount of
register space at the entry block of the second routine, the third amount of register
space and the first amount register space having a common register.