Section: New Results
Studying Optimal Spilling in the Light of SSA
Participants : Florian Brandner [ENSTA ParisTech, previously Compsys] , Quentin Colombet [Apple, previously Compsys] , Alain Darte.
Recent developments in register allocation, mostly linked to static single assignment (SSA) form, have shown the benefits of decoupling the problem in two phases: a first spilling phase places load and store instructions so that the register pressure at all program points is small enough, and a second assignment and coalescing phase maps the variables to physical registers and reduces the number of move instructions among registers. We focused on the first phase, for which many open questions remain: in particular, we studied the notion of optimal spilling (what can be expressed?) and the impact of SSA form (does it help?).
To identify the important features for optimal spilling on load-store
architectures, we developed a new integer linear programming
formulation, more accurate and expressive than previous
approaches. Among other features, we can express SSA
Parts of this work were published at CASES 2011 [18] . The journal publication [1] contains more detailed discussions, more examples illustrating new concepts and existing approaches, and additional experiments covering the observed worst-case behavior, a new post-latency heuristic, and empiric evidence showing why static spill costs are a poor metric. Three configurations were added: Appel and George under SSA, Koes and Goldstein, and the heuristic of Braun and Hack.