Safe optimization for hard real-time programming
- 2 January 2003
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 436-445
- https://doi.org/10.1109/icsi.1992.217244
Abstract
Classical compiler optimizations are designed to reduce the expected execution time or memory use of programs. Optimizations for hard real time programs must meet more stringent constraints: all transformations applied to the program must be safe, in that they will never cause a deadline to be missed in any execution of the program. The authors show that optimization of hard real time programs cannot be separated from code generation, register allocation, and scheduling, even under a very simple model of program execution; it is therefore difficult. Optimization is also necessary, in that it may be needed to ensure that the program meets its deadlines. They examine the classical source code transformations for both sequential optimization and parallel programming (vectorization and concurrentization), presenting brief examples showing when each transformation may be unsafe. They classify each of these transformations in a system of five categories of safety, and describe what additional information (if any) is required to ensure that each transformation is safe.Keywords
This publication has 12 references indexed in Scilit:
- Interactive parallel programming using the ParaScope EditorIEEE Transactions on Parallel and Distributed Systems, 1991
- Register allocation via hierarchical graph coloringPublished by Association for Computing Machinery (ACM) ,1991
- Automatic generation of global optimizersPublished by Association for Computing Machinery (ACM) ,1991
- Constructing Predictable Real Time SystemsPublished by Springer Nature ,1991
- Comparative evaluation of high-level real-time programming languagesReal-Time Systems, 1990
- An improved replacement strategy for function cachingPublished by Association for Computing Machinery (ACM) ,1988
- Detecting sharing of partial applications in functional programsPublished by Springer Nature ,1987
- Real-Time Euclid: A language for reliable real-time systemsIEEE Transactions on Software Engineering, 1986
- A Proposal for Extensions of Pearl to Facilitate the Formulation of Hard Real-Time ApplicationsInformatik-Fachberichte, 1984
- Real-Time Behavior of ProgramsIEEE Transactions on Software Engineering, 1981