Please use this identifier to cite or link to this item:
https://doi.org/10.1002/spe.860
DC Field | Value | |
---|---|---|
dc.title | Fast, frequency-based, integrated register allocation and instruction scheduling | |
dc.contributor.author | Cutcutache, I. | |
dc.contributor.author | Wong, W.-F. | |
dc.date.accessioned | 2013-07-04T07:44:58Z | |
dc.date.available | 2013-07-04T07:44:58Z | |
dc.date.issued | 2008 | |
dc.identifier.citation | Cutcutache, I., Wong, W.-F. (2008). Fast, frequency-based, integrated register allocation and instruction scheduling. Software - Practice and Experience 38 (11) : 1105-1126. ScholarBank@NUS Repository. https://doi.org/10.1002/spe.860 | |
dc.identifier.issn | 00380644 | |
dc.identifier.uri | http://scholarbank.nus.edu.sg/handle/10635/39586 | |
dc.description.abstract | Instruction scheduling and register allocation are two of the most important optimization phases in modern compilers as they have a significant impact on the quality of the generated code. Unfortunately, the objectives of these two optimizations are in conflict with one another. The instruction scheduler attempts to exploit instruction-level parallelism and requires many operands to be available in registers. On the other hand, the register allocator wants register pressure to be kept low so that the amount of spill code can be minimized. Currently these two phases are done separately, typically in three passes: prepass scheduling, register allocation and postpass scheduling. But this separation can lead to poor results. Previous works attempted to solve the phase-ordering problem by combining the instruction scheduler with graph-coloring-based register allocators. The latter tend to be computationally expensive. Linear-scan register allocators, on the other hand, are simple, fast and efficient. In this paper, we describe our effort to integrate instruction scheduling with a linear-scan allocator. Furthermore, our integrated optimizer is able to take advantage of execution frequencies obtained through profiling. Our integrated register allocator and instruction scheduler achieved good code quality with significantly reduced compilation times. On the SPEC2000 benchmarks running on a 900 MHz Itanium II, compared with Open IMPACT, we halved the time spent in instruction scheduling and register allocation with negligible impact on execution times. Copyright © 2007 John Wiley & Sons, Ltd. | |
dc.description.uri | http://libproxy1.nus.edu.sg/login?url=http://dx.doi.org/10.1002/spe.860 | |
dc.source | Scopus | |
dc.subject | Code generation | |
dc.subject | Compilers | |
dc.subject | Instruction scheduling | |
dc.subject | Optimization | |
dc.subject | Register allocation | |
dc.type | Article | |
dc.contributor.department | COMPUTER SCIENCE | |
dc.description.doi | 10.1002/spe.860 | |
dc.description.sourcetitle | Software - Practice and Experience | |
dc.description.volume | 38 | |
dc.description.issue | 11 | |
dc.description.page | 1105-1126 | |
dc.description.coden | SPEXB | |
dc.identifier.isiut | 000260345500001 | |
Appears in Collections: | Staff Publications |
Show simple item record
Files in This Item:
There are no files associated with this item.
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.