Sciweavers

VEE
2005
ACM

Optimized interval splitting in a linear scan register allocator

13 years 9 months ago
Optimized interval splitting in a linear scan register allocator
We present an optimized implementation of the linear scan register allocation algorithm for Sun Microsystems’ Java HotSpotTM client compiler. Linear scan register allocation is especially suitable for just-in-time compilers because it is faster than the common graph-coloring approach and yields results of nearly the same quality. Our allocator improves the basic linear scan algorithm by adding more advanced optimizations: It makes use of lifetime holes, splits intervals if the register pressure is too high, and models register constraints of the target architecture with fixed intervals. Three additional optimizations move split positions out of loops, remove register-to-register moves and eliminate unnecessary spill stores. Interval splitting is based on use positions, which also capture the kind of use and whether an operand is needed in a register or not. This avoids the reservation of a scratch register. Benchmark results prove the efficiency of the linear scan algorithm: While ...
Christian Wimmer, Hanspeter Mössenböck
Added 26 Jun 2010
Updated 26 Jun 2010
Type Conference
Year 2005
Where VEE
Authors Christian Wimmer, Hanspeter Mössenböck
Comments (0)