A compiler includes a register allocator for allocating registers for
instructions in a program to be compiled, and a code generator for
generating object code based on the register allocation results performed
by the register allocator. The register allocator allocates logical
registers for instructions in the program to be compiled, register
allocation further allocates, to physical registers, the logical
registers that are allocated to the instructions of the program, so that
the physical registers that are live at a procedure call in the program
to be compiled are allocated from the bottom of the register stack.