Title :
WCET-aware Register Allocation Based on Integer-Linear Programming
Author :
Falk, Heiko ; Schmitz, Norman ; Schmoll, Florian
Author_Institution :
Comput. Sci. l2, Tech. Univ. Dortmund, Dortmund, Germany
Abstract :
Current compilers lack precise timing models guiding their built-in optimizations. Hence, compilers apply ad-hoc heuristics during optimization to improve code quality. One of the most important optimizations is register allocation. Many compilers heuristically decide when and where to spill a register to memory, without having a clear understanding of the impact of such spill code on a program´s runtime. This paper presents an integer-linear programming (ILP) based register allocator that uses precise worst-case execution time (WCET) models. Using this WCET timing data, the compiler avoids spill code generation along the critical path defining a program´s WCET. To the best of our knowledge, this paper is the first one to present a WCET-aware ILP-based register allocator. Our results underline the effectiveness of the proposed techniques. For a total of 55 realistic benchmarks, we reduced WCETs by 20.2% on average and ACETs by 14%, compared to a standard graph coloring allocator. Furthermore, our ILP-based register allocator outperforms a WCET-aware graph coloring allocator by more than a factor of two for the considered benchmarks, while requiring less runtime.
Keywords :
computational complexity; graph colouring; integer programming; linear programming; optimising compilers; WCET-aware ILP-based register allocator; graph coloring allocator; integer-linear programming; program compilers; spill code generation; worst-case execution time models; Mathematical model; Optimization; Pipelines; Program processors; Registers; Resource management; Timing; Integer-Linear Programming; Pipeline; Register Allocation; WCET;
Conference_Titel :
Real-Time Systems (ECRTS), 2011 23rd Euromicro Conference on
Conference_Location :
Porto
Print_ISBN :
978-1-4577-0643-1
DOI :
10.1109/ECRTS.2011.10