ACM Home Page
Please provide us with feedback. Feedback
Demystifying on-the-fly spill code
Full text PdfPdf (192 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation table of contents
Chicago, IL, USA
SESSION: Register allocation table of contents
Pages: 180 - 189  
Year of Publication: 2005
ISBN:1-59593-056-6
Also published in ...
Authors
Alex Aletà  UPC, Barcelona
Josep M. Codina  UPC - Intel Labs, Barcelona
Antonio Gonzàlez  UPC - Intel Labs, Barcelona
David Kaeli  NEU, Boston, MA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 50,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1065010.1065032
What is a DOI?

ABSTRACT

Modulo scheduling is an effective code generation technique that exploits the parallelism in program loops by overlapping iterations. One drawback of this optimization is that register requirements increase significantly because values across different loop iterations can be live concurrently. One possible solution to reduce register pressure is to insert spill code to release registers. Spill code stores values to memory between the producer and consumer instructions.Spilling heuristics can be divided into two classes: 1) a posteriori approaches (spill code is inserted after scheduling the loop) or 2) on-the-fly approaches (spill code is inserted during loop scheduling). Recent studies have reported obtaining better results for spilling on-the-fly. In this work, we study both approaches and propose two new techniques, one for each approach. Our new algorithms try to address the drawbacks observed in previous proposals. We show that the new algorithms outperform previous techniques and, at the same time, reduce compilation time. We also show that, much to our surprise, a posteriori spilling can be in fact slitghtly more effective than on-the-fly spilling.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
 
3
4
 
5
6
7
 
8
 
9
P. Glaskowsky. Map1000 unfolds at equator. Microprocessor report, 12(16), December 1998.
 
10
R. Ju, S. Chan, T.-F. Ngai, C. Wu, Y. Lu, and J. Zhang. Open research compiler (orc) 2.0 and tuning performance on itanium. Presented at the 35th International Symposium on Microarchitecture, December 2002.
 
11
 
12
 
13
G. G. Pechanek and S. Vassiliadis. The manarray embedded processor architecture. In Proceedings of the 26th Euromicro Conference: Informatics: inventing the future, September 2000.
14
15
16
 
17
TexasInstrumentsInc. TMS320C62x/67x CPU and instruction set reference guide, 1998.
18
19
 
20
J. Zalamea, J. Llosa, E. Ayguadé, and M. Valero. Mirs: Modulo scheduling with integrated register spilling. In Proceedings of the 14th workshop on languages and compilers for parallel computing, august 2001.

Collaborative Colleagues:
Alex Aletà: colleagues
Josep M. Codina: colleagues
Antonio Gonzàlez: colleagues
David Kaeli: colleagues