Abstract
This paper introduces a constraint model and solving techniques for code generation in a compiler back-end. It contributes a new model for global register allocation that combines several advanced aspects: multiple register banks (subsuming spilling to memory), coalescing, and packing. The model is extended to include instruction scheduling and bundling. The paper introduces a decomposition scheme exploiting the underlying program structure and exhibiting robust behavior for functions with thousands of instructions. Evaluation shows that code quality is on par with LLVM, a state-of-the-art compiler infrastructure.
Original language | English |
---|---|
Title of host publication | Principles and Practice of Constraint Programming |
Editors | Michela Milano |
Place of Publication | Berlin, Heidelberg |
Publisher | Springer |
Pages | 750-766 |
Number of pages | 17 |
ISBN (Electronic) | 978-3-642-33558-7 |
ISBN (Print) | 978-3-642-33557-0 |
DOIs | |
Publication status | Published - 31 Dec 2012 |
Event | 18th International Conference on Principles and Practice of Constraint Programming - Québec City, Canada Duration: 8 Oct 2012 → 12 Oct 2012 Conference number: 18 https://archive.a4cp.org/cp2012/index.php |
Publication series
Name | Lecture Notes in Computer Science (LNCS) |
---|---|
Publisher | Springer, Berlin, Heidelberg |
Volume | 7514 |
ISSN (Print) | 0302-9743 |
ISSN (Electronic) | 1611-3349 |
Conference
Conference | 18th International Conference on Principles and Practice of Constraint Programming |
---|---|
Abbreviated title | CP 2012 |
Country/Territory | Canada |
City | Québec City |
Period | 8/10/12 → 12/10/12 |
Internet address |
Keywords / Materials (for Non-textual outputs)
- Constraint Programming
- Constraint Model
- Register Allocation
- Code Quality
- Instruction Schedule