|Title: WCET-Driven, Code-Size Critical Procedure Cloning. <em>In Proceedings of the 11th International Workshop on Software & Compilers for Embedded Systems (SCOPES)</em>|
|Written by: Paul Lokuciejewski, Heiko Falk, Peter Marwedel and Henrik Theiling|
|in: March (2008).|
|on pages: 21-30|
|Address: Munich / Germany|
|how published: 08-95 LFMT08 SCOPES|
Note: hfalk, ESD, WCC
Abstract: In the domain of the worst-case execution time (WCET) analysis, loops are an inherent source of unpredictability and loss of precision since the determination of tight and safe information on the number of loop iterations is a difficult task. In particular, data-dependent loops whose iteration counts depend on function parameters can not be precisely handled by a timing analysis. Procedure Cloning can be exploited to make these loops explicit within the source code allowing a highly precise WCET analysis.<br /> In this paper we extend the standard Procedure Cloning optimization by WCET-aware concepts with the objective to improve the tightness of the WCET estimation. Our novel approach is driven by WCET information which successively eliminates code structures leading to overestimated timing results, thus making the code more suitable for the analysis. In addition, the code size increase during the optimization is monitored and large increases are avoided.<br /> The effectiveness of our optimization is shown by tests on real-world benchmarks. After performing our optimization, the estimated WCET is reduced by up to 64.2% while the employed code transformations yield an additional code size increase of 22.6% on average. In contrast, the average-case performance being the original objective of Procedure Cloning showed a slight decrease.