Transforming flow information during code optimization for timing analysis

Raimund Kirner, Peter Puschner, Adrian Prantl

Research output: Contribution to journalArticlepeer-review

18 Citations (Scopus)
80 Downloads (Pure)


The steadily growing embedded-systems market comprises many application domains in which real-time constraints must be satisfied. To guarantee that these constraints are met, the analysis of the worst-case execution time (WCET) of software components is mandatory. In general WCET analysis needs additional control-flow information, which may be provided manually by the user or calculated automatically by program analysis. For flexibility and simplicity reasons it is desirable to specify the flow information at the same level at which the program is developed, i.e., at the source level. In contrast, to obtain precise WCET bounds the WCET analysis has to be performed at machine-code level. Mapping and transforming the flow information from the source-level down to the machine code, where flow information is used in the WCET analysis, is challenging, even more so if the compiler generates highly optimized code.

In this article we present a method for transforming flow information from source code to machine code. To obtain a mapping that is safe and accurate, flow information is transformed in parallel to code transformations performed by an optimizing compiler. This mapping is not only useful for transforming manual code annotations but also if platform-independent flow information is automatically calculated at the source level.

We show that our method can be applied to every type of semantics-preserving code transformation. The precision of this flow-information transformation allows its users to calculate tight WCET bounds.

Original languageEnglish
Pages (from-to)72-105
Number of pages34
JournalReal-Time systems
Issue number1-2
Publication statusPublished - Jun 2010


  • Worst-case execution time analysis
  • Real-time languages
  • Compiler optimizations
  • Code transformation
  • Abstract interpretation
  • Graph transformation


Dive into the research topics of 'Transforming flow information during code optimization for timing analysis'. Together they form a unique fingerprint.

Cite this