Abstract
The current practice to design software for real-time systems is tedious. There is almost no tool support that assists the designer in automatically deriving safe bounds of the worst-case execution time (WCET) of a system during code generation and in systematically optimizing code to reduce WCET.
This article presents concepts and infrastructures for WCET-aware code generation and optimization techniques for WCET reduction. All together, they help to obtain code explicitly optimized for its worst-case timing, to automate large parts of the real-time software design flow, and to reduce costs of a real-time system by allowing to use tailored hardware.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
Change history
28 June 2019
The article A compiler framework for the reduction of worst-case execution times, written by Heiko Falk and Paul Lokuciejewski, was originally published electronically on the publisher���s internet portal (currently SpringerLink) on 22 July 2010 without open access.
28 June 2019
The article A compiler framework for the reduction of worst-case execution times, written by Heiko Falk and Paul Lokuciejewski, was originally published electronically on the publisher���s internet portal (currently SpringerLink) on 22 July 2010 without open access.
28 June 2019
The article A compiler framework for the reduction of worst-case execution times, written by Heiko Falk and Paul Lokuciejewski, was originally published electronically on the publisher���s internet portal (currently SpringerLink) on 22 July 2010 without open access.
References
AbsInt Angewandte Informatik GmbH (2010) aiT: worst-case execution time analyzers. http://www.absint.com/ait
Andersen LO (1994) Program analysis and specialization for the C programming language. PhD thesis, University of Copenhagen, Copenhagen
Azevedo R, Rigo S, Bartholomeu M et al. (2005) The ArchC architecture description language and tools. Int J Parallel Program 33(5):453–484
Börjesson H (1996) Incorporating worst case execution time in a commercial C-compiler. Master’s thesis, Uppsala University, Department of Computer Systems, Uppsala, Sweden
Campoy AM, Puaut I, Ivars AP et al (2005) Cache contents selection for statically-locked instruction caches: an algorithm comparison. In: Proceedings of ECRTS, Palma de Mallorca, Spain
Chaitin GJ, Auslander MA et al (1981) Register allocation via coloring. Comput Lang 6
Colin A, Puaut I (2001) A modular and retargetable framework for tree-based WCET analysis. In: Proceedings of ECRTS, Delft, Netherlands
Cousot P, Cousot R (1977) Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proceedings of POPL, Los Angeles, USA
Cullmann C, Martin F (2007) Data-flow based detection of loop bounds. In: Proceedings of WCET, Pisa, Italy
Deverge J-F, Puaut I (2007) WCET-directed dynamic scratchpad memory allocation of data. In: Proceedings of ECRTS, Pisa, Italy
Engblom J (1997) Worst-case execution time analysis for optimized code. Master’s thesis, Uppsala University, Department of Computer Systems, Uppsala, Sweden
Engblom J (1999) Static properties of commercial embedded real-time programs, and their implication for worst-case execution time analysis. In: Proceedings of RTAS, Vancouver, Canada
Engblom J, Ermedahl A (2000) Modeling complex flows for worst-case execution time analysis. In: Proceedings of RTSS, Orlando, USA
Engblom J, Ermedahl A, Sjödin M et al (1999) Towards industry strength worst-case execution time analysis. In: Proceedings of SNART, Linköping, Sweden
Ermedahl A, Gustafsson J (1997) Deriving annotations for tight calculation of execution time. In: Proceedings of Euro-Par, Passau, Germany
Ermedahl A, Sandberg C, Gustafsson J et al (2007) Loop bound analysis based on a combination of program slicing, abstract interpretation, and invariant analysis. In: Proceedings of WCET, Pisa, Italy
Falk H, Marwedel P (2003) Control flow driven splitting of loop nests at the source code level. In: Proceedings of DATE, Munich, Germany
Falk H, Lokuciejewski P, Theiling H (2006) Design of a WCET-aware C compiler. In: Proceedings of ESTIMedia, Seoul, Korea
Falk H, Plazar S, Theiling H (2007) Compile time decided instruction cache locking using worst-case execution paths. In: Proceedings of CODES+ISSS, Salzburg, Austria
Ferdinand C, Heckmann R, Langenbach M et al (2001) Reliable and precise WCET determination for a real-life processor. In: Proceedings of EMSOFT, Tahoe City, USA
Gustafsson J, Ermedahl A, Sandberg C et al (2006) Automatic derivation of loop bounds and infeasible paths for WCET analysis using abstract execution. In: Proceedings of RTSS, Rio de Janeiro, Brazil
Healy C, Sjödin M, Rustagi V et al (1998) Bounding loop iterations for timing analysis. In: Proceedings of RTAS, Denver, USA
Heckmann R, Ferdinand C (2004) Worst-case execution time prediction by static program analysis. In: Proceedings of IPDPS, Santa Fe, USA
Hoffmann A, Kogel T, Nohl A et al (2001) A novel methodology for the design of application specific integrated processors (ASIP) using a machine description language. IEEE TCAD 20(11)
Holsti N, Gustafsson J, Bernat G et al (2008) WCET tool challenge 2008: report. In: Proceedings of WCET, Prague, Czech Republic
Horwitz S, Reps T, Binkley D (1988) Interprocedural slicing using dependence graphs. In: Proceedings of PLDI, Atlanta, USA
Hwu W-mW, Chang PP (1989) Achieving high instruction cache performance with an optimizing compiler. In: Proceedings of ISCA, Jerusalem, Israel
Informatik Centrum Dortmund e. V. (2010a) ICD-LLIR low-level intermediate representation. http://www.icd.de/es/icd-llir
Informatik Centrum Dortmund e. V. (2010b) ICD-C compiler framework. http://www.icd.de/es/icd-c
Kästner D (2003) TDL: a hardware description language for retargetable postpass optimizations and analyses. In: Proceedings of GPCE, Erfurt, Germany
Kirner R (2000) Integration of static runtime analysis and program compilation. Master’s thesis, Technische Universität Wien, Vienna, Austria
Kirner R (2001) The programming language wcetC. Technical report, Technische Universität Wien, Vienna, Austria
Kirner R (2003) Extending optimising compilation to support worst-case execution time analysis. PhD thesis, Technische Universität Wien, Vienna, Austria
Kirner M (2006) Automatic loop bound analysis of programs written in C. Master’s thesis, Technische Universität Wien, Vienna, Austria
Kirner R, Puschner P (2001) Transformation of path information for WCET analysis during compilation. In: Proceedings of ECRTS, Delft, Netherlands
Lebeck AR, Wood DA (1994) Cache profiling and the SPEC benchmarks: a case study. IEEE Comput 27(10)
Lee EA (2005) Absolutely positive on time: what would it take? IEEE Comput
Li Y-TS, Malik S (1995) Performance analysis of embedded software using implicit path enumeration. In: Proceedings of DAC, San Francisco, USA
Lokuciejewski P, Falk H, Schwarzer M, Marwedel P, Theiling H (2007) Influence of procedure cloning on WCET prediction. In: Proceedings of CODES+ISSS, Salzburg, Austria
Lokuciejewski P, Falk H, Marwedel P (2008) WCET-driven cache-based procedure positioning optimizations. In: Proceedings of ECRTS, Prague, Czech Republic
Lokuciejewski P, Cordes D, Falk H et al (2009) A fast and precise static loop analysis based on abstract interpretation, program slicing and polytope models. In: Proceedings of CGO, Seattle, USA
Mendlson A, Pinter SS, Shtokhamer R (1994) Compile time instruction cache optimizations. ACM SIGARCH Comput Arch News 22(1)
Nystrom EM, Kim H-S, Hwu W-mW (2004) Bottom-up and top-down context-sensitive summary-based pointer analysis. In: Proceedings of SAS, Verona, Italy
Prantl A, Schordan M, Knoop J (2008) TuBound—a conceptually new tool for worst-case execution time analysis. In: Proceedings of WCET, Prague, Czech Republic
Puaut I (2006) WCET-centric software-controlled instruction caches for hard real-time systems. In: Proceedings of ECRTS, Dresden, Germany
Puschner P, Burns A (2000) A review of worst-case execution-time analysis. Real-Time Syst 18(2/3)
Sandberg C, Ermedahl A, Gustafsson J et al (2006) Faster WCET flow analysis by program slicing. ACM SIGPLAN Not 41(7)
Suhendra V, Mitra T, Roychoudhury A et al (2005) WCET centric data allocation to scratchpad memory. In: Proceedings of RTSS, Miami, USA
Tomiyama H, Yasuura H (1997) Code placement techniques for cache miss rate reduction. ACM TODAES 2(4)
Verdoolaege S, Seghir R, Beyls K et al (2004) Analytical computation of Ehrhart polynomials: enabling more compiler analyses and optimizations. In: Proceedings of CASES, Washington, USA
Verma M, Marwedel P (2007) Advanced memory optimization techniques for low-power embedded processors. Springer, Berlin
WCET-aware Compilation (2010) http://ls12-www.cs.tu-dortmund.de/research/activities/wcc
Wehmeyer L, Marwedel P (2005) Influence of memory hierarchies on predictability for time constrained embedded software. In: Proceedings of DATE, Munich, Germany
Wehmeyer L, Marwedel P (2006) Fast, efficient and predictable memory accesses—optimization algorithms for memory architecture aware compilation. Springer, Berlin
Weiser MD (1979) Program slices: formal, psychological, and practical investigations of an automatic program abstraction method. PhD thesis, University of Michigan, Ann Arbor, USA
Zhao W, Kulkarni P, Whalley D et al (2004) Tuning the WCET of embedded applications. In: Proceedings of RTAS, Toronto, Canada
Zhao W, Kreahling W, Whalley D et al (2005) Improving WCET by optimizing worst-case paths. In: Proceedings of RTAS, San Francisco, California
Author information
Authors and Affiliations
Corresponding author
Additional information
The research leading to these results has received funding from the European Community’s ArtistDesign Network of Excellence and from the European Community’s Seventh Framework Programme FP7/2007-2013 under grant agreement No. 216008.
Rights and permissions
This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
About this article
Cite this article
Falk, H., Lokuciejewski, P. A compiler framework for the reduction of worst-case execution times. Real-Time Syst 46, 251–300 (2010). https://doi.org/10.1007/s11241-010-9101-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11241-010-9101-x