Title
Combinatorial spill code optimization and ultimate coalescing
Abstract
This paper presents a novel combinatorial model that integrates global register allocation based on ultimate coalescing, spill code optimization, register packing, and multiple register banks with instruction scheduling (including VLIW). The model exploits alternative temporaries that hold the same value as a new concept for ultimate coalescing and spill code optimization. The paper presents Unison as a code generator based on the model and advanced solving techniques using constraint programming. Thorough experiments using MediaBench and a processor (Hexagon) that are typical for embedded systems demonstrate that Unison: is robust and scalable; generates faster code than LLVM (up to 41% with a mean improvement of 7%); possibly generates optimal code (for 29% of the experiments); effortlessly supports different optimization criteria (code size on par with LLVM). Unison is significant as it addresses the same aspects as traditional code generation algorithms, yet is based on a simple integrated model and robustly can generate optimal code.
Year
DOI
Venue
2014
10.1145/2597809.2597815
LCTES
Keywords
Field
DocType
instruction scheduling,combinatorial optimization,code generation,spill code optimization,register allocation,constraint and logic languages,compilers,optimization,ultimate coalescing
Program optimization,Unreachable code,Register allocation,Instruction scheduling,Very long instruction word,Computer science,Parallel computing,Combinatorial optimization,Theoretical computer science,Real-time computing,Code generation,Dead code
Conference
Volume
Issue
ISSN
49
5
0362-1340
Citations 
PageRank 
References 
5
0.41
14
Authors
4
Name
Order
Citations
PageRank
Roberto Castañeda Lozano1223.45
Mats Carlsson297579.24
Gabriel Hjort Blindell3102.51
Christian Schulte438733.89