Complete and practical universal instruction selection
2017 (English)In: ACM Transactions on Embedded Computing Systems, ISSN 1539-9087, E-ISSN 1558-3465, Vol. 16, no 5s, article id 119Article in journal (Refereed) Published
Abstract [en]
In code generation, instruction selection chooses processor instructions to implement a program under compilation where code quality crucially depends on the choice of instructions. Using methods from combinatorial optimization, this paper proposes an expressive model that integrates global instruction selection with global code motion. The model introduces (1) handling of memory computations and function calls, (2) a method for inserting additional jump instructions where necessary, (3) a dependency-based technique to ensure correct combinations of instructions, (4) value reuse to improve code quality, and (5) an objective function that reduces compilation time and increases scalability by exploiting bounding techniques. The approach is demonstrated to be complete and practical, competitive with LLVM, and potentially optimal (w.r.t. the model) for medium-sized functions. The results show that combinatorial optimization for instruction selection is well-suited to exploit the potential of modern processors in embedded systems.
Place, publisher, year, edition, pages
2017. Vol. 16, no 5s, article id 119
Keywords [en]
Code generation, Combinatorial optimization, Constraint programming, Instruction selection, Computer programming, Constraint theory, Embedded systems, Program processors, Bounding techniques, Function calls, Memory computations, Modern processors, Objective functions, Codes (symbols)
National Category
Natural Sciences
Identifiers
URN: urn:nbn:se:ri:diva-33198DOI: 10.1145/3126528Scopus ID: 2-s2.0-85030692980OAI: oai:DiVA.org:ri-33198DiVA, id: diva2:1179241
2018-01-312018-01-312025-09-23Bibliographically approved