Spill Placement Optimization Using Edge Block Register Allocation for Compilers
Original Publication Date: 1980-May-01
Included in the Prior Art Database: 2005-Feb-13
A register allocation process of a compiler is described wherein there is determined, for each program point, which variables are to reside in registers. A spill process is defined during register allocation when the register space overflows, and excess variables are moved to main storage by inserting store instructions. In the subject process, edge blocks are used, i.e., basic blocks inserted into every edge of the flow graph, whereby the global processes of spill code generation and its optimization become separable and can be implemented locally to basic blocks.