On the Complexity of Spill Everywhere under SSA Form
Florent Bouchez (LIP), Alain Darte (LIP), Fabrice Rastello (LIP)

TL;DR
This paper investigates the computational complexity of the spill everywhere problem in SSA form, revealing NP-completeness in many cases and providing insights for designing efficient register allocators for embedded systems.
Contribution
It offers an exhaustive complexity analysis of spill everywhere in SSA form, highlighting NP-completeness and identifying some polynomial cases to guide allocator design.
Findings
Many spill everywhere problems are NP-complete.
Some polynomial cases are identified but impractical for JIT.
Insights can inform the design of memory-efficient register allocators.
Abstract
Compilation for embedded processors can be either aggressive (time consuming cross-compilation) or just in time (embedded and usually dynamic). The heuristics used in dynamic compilation are highly constrained by limited resources, time and memory in particular. Recent results on the SSA form open promising directions for the design of new register allocation heuristics for embedded systems and especially for embedded compilation. In particular, heuristics based on tree scan with two separated phases -- one for spilling, then one for coloring/coalescing -- seem good candidates for designing memory-friendly, fast, and competitive register allocators. Still, also because of the side effect on power consumption, the minimization of loads and stores overhead (spilling problem) is an important issue. This paper provides an exhaustive study of the complexity of the ``spill everywhere''…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
