Spill code minimization techniques for optimizing compliers

  • Authors:
  • D. Bernstein;M. Golumbic;y. Mansour;R. Pinter;D. Goldin;H. Krawczyk;I. Nahshon

  • Affiliations:
  • IBM Israel Science and Technology, Technion City, Haifa, Israel;IBM Israel Science and Technology, Technion City, Haifa, Israel;IBM Israel Science and Technology, Technion City, Haifa, Israel;IBM Israel Science and Technology, Technion City, Haifa, Israel;IBM Israel Science and Technology, Technion City, Haifa, Israel;IBM Israel Science and Technology, Technion City, Haifa, Israel;IBM Israel Science and Technology, Technion City, Haifa, Israel

  • Venue:
  • PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
  • Year:
  • 1989

Quantified Score

Hi-index 0.01

Visualization

Abstract

Global register allocation and spilling is commonly performed by solving a graph coloring problem. In this paper we present a new coherent set of heuristic methods for reducing the amount of spill code generated. This results in more efficient (and shorter) compiled code. Our approach has been compared to both standard and priority-based coloring algorithms, universally outperforming them.In our approach, we extend the capability of the existing algorithms in several ways. First, we use multiple heuristic functions to increase the likelihood that less spill code will be inserted. We have found three complementary heuristic functions which together appear to span a large proportion of good spill decisions. Second, we use a specially tuned greedy heuristic for determining the order of deleting (and hence coloring) the unconstrained vertices. Third, we have developed a “cleaning” technique which avoids some of the insertion of spill code in non-busy regions.