Constraint-based register allocation and instruction scheduling
2012 (English)In: Lecture Notes in Computer Science, 2012, Vol. 7514, p. 750-766Conference paper, Published paper (Refereed)
Abstract [en]
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. The paper makes important contributions to the applicability of constraint programming as well as compiler construction: essential concepts are unified in a high-level model that can be solved by readily available modern solvers. This is a significant step towards basing code generation entirely on a high-level model and by this facilitates the construction of correct, simple, flexible, robust, and high-quality code generators.
Place, publisher, year, edition, pages
2012. Vol. 7514, p. 750-766
Keywords [en]
Code Generation, Code generators, Code quality, Compiler construction, Constraint model, Constraint programming, Constraint-based, Decomposition scheme, High quality, High-level models, Instruction scheduling, Program structures, Register allocation, Register bank, Robust behavior, Computer programming, Constraint theory, Flocculation, Network components, Program compilers
National Category
Engineering and Technology
Identifiers
URN: urn:nbn:se:ri:diva-51170DOI: 10.1007/978-3-642-33558-7_54Scopus ID: 2-s2.0-84868266938ISBN: 9783642335570 (print)OAI: oai:DiVA.org:ri-51170DiVA, id: diva2:1514153
Conference
8 October 2012 through 12 October 2012, Quebec City, QC
2021-01-042021-01-042023-05-16Bibliographically approved