Tutorial at the International Symposium on Code Generation and Optimization (CGO 2012)
Heiko Falk, Jan C. Kleinsorge
Timing constraints must be respected for safety-critical real-time applications. Traditionally, compilers are unable to use precise estimates of execution times for optimization, and timing properties of code are derived after compilation. A number of design iterations are required if timing constraints are not met. We propose to reconcile compilers and timing analysis and to create a worst-case execution time (WCET) aware compiler in this way. Such WCET-aware compilers can exploit precise WCET information during compilation. This way, they are able to improve the code quality. Also, they may help to avoid some of the design iterations and thereby save development time.
In this tutorial, we present the integration of a compiler and a WCET analyzer, yielding our WCET-aware compiler WCC. We are then considering compiler optimizations for their potential to reduce the WCET, assuming that the WCET is now used as the cost function. Considered optimizations include register allocation, scratchpad memory allocation, memory content selection and cache partitioning for multi-task systems. For large benchmark sets, average WCET reductions of up to 40% were achieved. Thus, this new area of research has the potential of achieving worthwhile execution time reductions for safety-critical real-time code.
Location: Hilton San Jose, Room "San Carlos 1"
Schedule: Saturday March 31, 2012
None. Attendees do not need to bring own laptops etc. in order to follow this tutorial.
Heiko Falk is full professor at the Institute of Embedded Systems/Real-Time Systems at Ulm University (Germany) since 2011. He received his Ph.D. in Computer Science from the University of Dortmund (Germany) in 2004. From 2004 on until 2011, he worked as assistant professor in the embedded systems group at Dortmund. During his Ph.D., he concentrated on high-level source code optimizations. In the last years, the focus of his work is on code generation and optimization for performance and predictability, which is also the subject of the EC FP7 project PREDATOR. The WCC compiler developed by the research team lead by Heiko is the currently only known compiler which is able to minimize the WCET of programs by tightly integrating static timing analyses into the code generation and optimization stage.
Jan C. Kleinsorge received his diploma degree in Computer Science from the University of Dortmund (Germany) in 2008. Since 2009, he is Ph.D. student in the Design Automation for Embedded Systems Group (DAES) of Prof. Marwedel at Dortmund. In his diploma thesis, he investigated WCET-aware allocation techniques in memory hierarchies. He is now actively concerned with the investigation of multitask models and applications thereof for WCET-aware code optimizations. As part of the WCC compiler development team, his work contributes to the substantial pool of WCC's WCET-directed optimizations.
The work on the WCC compiler and on this tutorial received funding by the European IST FP7 NoE ArtistDesign, by the European IST FP7 NoE HiPEAC under contract no. 217068, by the European FP7 Framework Programme under grant agreement no. 216008 (PREDATOR), and by Deutsche Forschungsgemeinschaft (DFG) under grant FA 1017/1-1.