Optimal register assignment to loops for embedded code generation

  • Authors:
  • David J. Kolson;Alexandru Nicolau;Nikil Dutt;Ken Kennedy

  • Affiliations:
  • Dept. of Information and Computer Science, University of California, Irvine, Irvine, CA;Dept. of Information and Computer Science, University of California, Irvine, Irvine, CA;Dept. of Information and Computer Science, University of California, Irvine, Irvine, CA;Dept. of Computer Science, Rice University, Houston, TX

  • Venue:
  • ISSS '95 Proceedings of the 8th international symposium on System synthesis
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

Abstract: One of the challenging tasks in code generation for embedded systems is register assignment. When more live variables than registers exist, some variables are necessarily accessed from data memory. Because loops are typically executed many times and are often time-critical, good register assignment in loops is exceedingly important, since accessing data memory can degrade performance. The issue of finding an optimal register assignment to loops, one which minimizes the number of spills between registers and memory, has been open for some time. In this paper, we address this issue and present an optimal, but exponential, algorithm which assigns registers to loop bodies such that the resulting spill code is minimal. We also show that a heuristic modification performs as well as the exponential approach on typical loops from scientific code.