Eizinger, B. (2015). On the impact of classical program optimization on the WCET-behaviour [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2015.25342
In real time systems every program has a time bound in which the execution has to be finished and therefore the worst case execution time (WCET) of such a program is a safety critical, non functional requirement as it obviously has to be below the time bound. To be sure of not violating the time bound usually a processor more powerful than necessary is employed. This is obviously a waste of resources and as such it is desirable to reduce the WCET. There is a vast array of available compiler program optimizations in modern compilers and it would be beneficial to harness their optimization potential. Those optimizations are usually developed with improvement of the average case execution time in mind and their effect on the WCET has not been studied yet in detail. This work aims to shed some light on the effects of classical compiler optimizations on the WCET of a selection of benchmark programs. To examine the effect of optimizations on the WCET of programs 33 different benchmarks have been selected from the well established Mälardalen Benchmark Suite and the WCET Tool Challenge 2014 Benchmark Suite. The WCET of the unoptimized programs have been compared to the WCET of the optimized cases. A safe optimization is one that guarantees to not degrade the WCET. The main results are: firstly, code motion in general is not safe, secondly, by replacing simple subexpressions (i.e. incrementing an index variable by one and constant expressions) the WCET usually cannot be improved and thirdly, function inlining appears to be a safe optimization as it never resulted in a degradation of the WCET.