International audienceRecent developments in register allocation, mostly linked tostatic single assignment (SSA) form, have shown that it ispossible to decouple the problem in two successive phases: afirst spilling phase places load and store instructions so thatthe register pressure at all program points is small enough, asecond assignment and coalescing phase maps the remainingvariables to physical registers and reduces the number ofmove instructions among registers. This paper focuses onthe first phase, for which many open questions remain: inparticular, we study the notion of optimal spilling (what canbe expressed?) and the impact of SSA form (does it help?).To identify the important features for optimal spilling onload-store architectures, we develop a new integer linear pro-gramming formulation, more accurate and expressive thanprevious approaches. Among other features, we can expressSSA -functions, memory-to-memory copies, and the factthat a value can be stored simultaneously in a register andin memory. Based on this formulation, we present a thor-ough analysis of the results obtained for the SPECINT 2000and EEMBC 1.1 benchmarks, from which we draw, amongothers, the following conclusions: a) rematerialization is ex-tremely important, b) SSA complicates the formulation ofoptimal spilling, especially because of memory coalescingwhen the code is not in CSSA, c) micro-architectural fea-tures are significant and thus have to be accounted for, d)significant savings can be obtained in terms of static spillcosts, cache miss rates, and dynamic instruction counts