Sciweavers

CC
2009
Springer

Register Spilling and Live-Range Splitting for SSA-Form Programs

14 years 5 months ago
Register Spilling and Live-Range Splitting for SSA-Form Programs
Register allocation decides which parts of a variable's live range are held in registers and which in memory. The compiler inserts spill code to move the values of variables between registers and memory. Since fetching data from memory is much slower than reading directly from a register, careful spill code insertion is critical for the performance of the compiled program. In this paper, we present a spilling algorithm for programs in SSA form. Our algorithm generalizes the well-known furthest-first algorithm, which is known to work well on straight-line code, to control-flow graphs. We evaluate our technique by counting the executed spilling instructions in the CINT2000 benchmark on an x86 machine. The number of executed
Matthias Braun, Sebastian Hack
Added 22 Nov 2009
Updated 22 Nov 2009
Type Conference
Year 2009
Where CC
Authors Matthias Braun, Sebastian Hack
Comments (0)