Reducing the Impact of Spill Code

Date
1998-07-24
Journal Title
Journal ISSN
Volume Title
Publisher
Description
This work was also published as a Rice University thesis/dissertation: http://hdl.handle.net/1911/17173
Abstract

All graph-coloring register allocators rely on heuristics to arrive at a "good" answer to the NP-complete problem of register allocation, resulting in suboptimal code due to spill code. We look at a post-pass to the allocator that removes unnecessary spill code by finding places where the availability of an unused register allows us to "promote a spill to a register. We explain and correct an error in Briggs' spill-code insertion algorithm that sometimes inserts an unnecessary number of spill instructions. This fix has an insignificant impact on the runtime of the compiler and never causes a degradation in runtime of the code produced. We suggest minimizing the impact of the spill code with a small separate memory dedicated to spills and under the exclusive control of the compiler. We show an algorithm and experimental results which suggest that this hardware construct would significantly decrease the runtime of the code.

Description
This work was also published as a Rice University thesis/dissertation: http://hdl.handle.net/1911/17173
Advisor
Degree
Type
Technical report
Keywords
Citation

Harvey, Timothy J.. "Reducing the Impact of Spill Code." (1998) https://hdl.handle.net/1911/96495.

Has part(s)
Forms part of
Published Version
Rights
You are granted permission for the noncommercial reproduction, distribution, display, and performance of this technical report in any format, but this permission is only for a period of forty-five (45) days from the most recent time that you verified that this technical report is still available from the Computer Science Department of Rice University under terms that include this permission. All other rights are reserved by the author(s).
Link to license
Citable link to this page