Abstract
Static Worst-Case Execution Time (WCET) analysis is a technique to derive upper bounds for the execution times of programs. Such bounds are crucial when designing and verifying real-time systems. WCET analysis needs a program flow analysis to derive constraints on the possible execution paths of the analysed program, like iteration bounds for loops and dependences between conditionals.Current WCET analysis tools typically obtain flow information through manual annotations. Better support for automatic flow analysis would eliminate much of the need for this laborious work. However, to automatically derive high-quality flow information is hard, and solution techniques with large time and space complexity are often required.In this paper we describe how to use program slicing to reduce the computational need of flow analysis methods. The slicing identifes statements and variables which are guaranteed not to influence the program flow. When these are removed, the calculation time of our different flow analyses decreases, in some cases considerably.We also show how program slicing can be used to identify the input variables and globals that control the outcome of a particular loop or conditional. This should be valuable aid when performing WCET analysis and systematic testing of large and complex real-time programs.
- H. Agrawal. Dominators, Super Blocks, and Program Coverage. In Conference Record of POPL '94: 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Oregon, 1994. Google Scholar
Digital Library
- ASTEC homepage, 2005. www.astec.uu.se.Google Scholar
- I. Bate and R. Reutemann. Worst-case execution time analysis for dynamic branch predictors. In Proc. 16th Euromicro Conference of Real-Time Systems, (ECRTS'04), June 2004. Google Scholar
Digital Library
- B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, and X. Rival. The Essence of Computation: Complexity, Analysis, Transformation. LNCS 2566. Springer-Verlag, 2002.Google Scholar
- Bound-T tool homepage, 2006. www.tidorum.fi/bound-t/.Google Scholar
- S. Byhlin, A. Ermedahl, J.n Gustafsson, and B. Lisper. Applying static WCET analysis to automotive communication software. In Proc. 17th Euromicro Conference of Real-Time Systems, (ECRTS'05), pages 249--258, July 2005. Google Scholar
Digital Library
- P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Proc. 4th ACM Symposium on Principles of Programming Languages, Los Angeles, January 1977. Google Scholar
Digital Library
- P. Cousot and R. Cousot. Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation. In Proc. 4th International Symposium on Programming Languages, Implementations, Logics, and Programs, Lecture Notes in Computer Science (LNCS) 631, pages 269--295. Springer-Verlag, August 1992. Google Scholar
Digital Library
- J. Engblom. Processor Pipelines and Static Worst-Case Execution Time Analysis. PhD thesis, Uppsala University, April 2002. ISBN 91-554-5228-0.Google Scholar
- J. Engblom and A. Ermedahl. Pipeline Timing Analysis Using a Trace-Driven Simulator. In Proc. 6th International Conference on Real-Time Computing Systems and Applications (RTCSA'99). IEEE Computer Society Press, Dec 1999. Google Scholar
Digital Library
- J. Engblom and A. Ermedahl. Modeling Complex Flows for Worst-Case Execution Time Analysis. In Proc. 21th IEEE Real-Time Systems Symposium (RTSS'00), Nov 2000. Google Scholar
Digital Library
- A. Ermedahl. A Modular Tool Architecture for Worst-Case Execution Time Analysis. PhD thesis, Uppsala University, June 2003.Google Scholar
- A. Ermedahl, J. Gustafsson, and B. Lisper. Experiences from industrial WCET analysis case studies. In Reinhard Wilhelm, editor, Proc. 5th International Workshop on Worst-Case Execution Time Analysis, (WCET'2005), pages 19--22, Palma de Mallorca, July 2005.Google Scholar
- A. Ermedahl, F. Stappert, and J. Engblom. Clustered Calculation of Worst-Case Execution Times. In Proc. 6th International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, (CASES'03), Oct 2003. Google Scholar
Digital Library
- J. Ferrante, K. J. Ottenstein, and J. D. Warren. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems, 9(3):319--349, July 1987. Google Scholar
Digital Library
- C. Fraser and D. Hanson. A Retargetable C Compiler: Design and Implementation. Addison-Wesley, 1990. Google Scholar
Digital Library
- J. Ganssle. Really real-time systems. In Proc. Embedded Systems Conference San Francisco 2001, April 2001.Google Scholar
- P. Granger. Static Analysis of Arithmetical Congruences. International Journal of Computer Mathematics, pages 165--199, 1989.Google Scholar
Cross Ref
- R. Gupta. Generalized Dominators and Post-Dominators. In POPL '92: Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, NY, USA, 1992. ACM Press. Google Scholar
Digital Library
- J. Gustafsson. Analyzing Execution-Time of Object-Oriented Programs Using Abstract Interpretation. PhD thesis, May 2000.Google Scholar
- J. Gustafsson, A. Ermedahl, and B. Lisper. Towards a flow analysis for embedded system C programs. In Proc. 10th IEEE International Workshop on Object-oriented Real-time Dependable Systems (WORDS 2005), Sedona, USA, February 2005. Google Scholar
Digital Library
- J. Gustafsson, B. Lisper, C. Sandberg, and N. Bermudo. A tool for automatic flow analysis of C-programs for WCET calculation. In Bob Werner, editor, Proc. 8th IEEE International Workshop on Object-oriented Real-time Dependable Systems (WORDS 2003), Guadalajara, Mexico, 2003. IEEE.Google Scholar
Cross Ref
- C. Healy, M. Sjödin, V. Rustagi, and David Whalley. Bounding Loop Iterations for Timing Analysis. In Proc. 4th IEEE Real-Time Technology and Applications Symposium (RTAS'98), June 1998. Google Scholar
Digital Library
- C. Healy and D. Whalley. Tighter Timing Predictions by Automatic Detection and Exploitation of Value-Dependent Constraints. In Proc. 5th IEEE Real-Time Technology and Applications Symposium (RTAS'99), June 1999. Google Scholar
Digital Library
- N. Holsti, T. Långbacka, and S. Saarinen. Worst-Case Execution-Time Analysis for Digital Signal Processors. In Proc. EUSIPCO 2000 Conference (X European Signal Processing Conference), 2000.Google Scholar
- S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst., 12(1), 1990. Google Scholar
Digital Library
- T. Lundqvist and P. Stenström. Integrating Path and Timing Analysis using Instruction-Level Simulation Techniques. In Proc. ACM SIGPLAN Workshop on Languages, Compilers and Tools for Embedded Systems (LCTES'98), June 1998. Google Scholar
Digital Library
- Thomas Lundqvist. A WCET Analysis Method for Pipelined Microprocessors with Cache Memories. PhD thesis, Chalmers University of Technology, Göteborg, Sweden, June 2002.Google Scholar
- Mälardalen University WCET project homepage, 2006. www.mrtc.mdh.se/projects/wcet.Google Scholar
- S. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, 1997. ISBN: 1-55860-320-4. Google Scholar
Digital Library
- F. Nielson, H. R. Nielson, and C. Hankin. Principles of Program Analysis, 2nd edition. Springer, 2005. ISBN 3-540-65410-0. Google Scholar
Digital Library
- K. J. Ottenstein and L. M. Ottenstein. The Program Dependence Graph in a Software Development Environment. In Proc. ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177--184, 1984. Google Scholar
Digital Library
- M. Rodriguez, N. Silva, J. Esteves, L. Henriques, D. Costa, N. Holsti, and K. Hjortnaes. Challenges in Calculating the WCET of a Complex On-board Satellite Application. In Proc. 3rd International Workshop on Worst-Case Execution Time Analysis, (WCET'2003), 2003.Google Scholar
- J. Runeson and S. Nyström. Retargetable Graph-coloring Register Allocation for Irregular Architectures. In Proc. 7th International Workshop on Software and Compilers for Embedded Systems (SCOPES 03), 2003.Google Scholar
Cross Ref
- C. Sandberg. Inspection of Industrial Code for Syntactical Loop Analysis. In Proc. 3rd International Workshop on Worst-Case Execution Time Analysis, (WCET'2003), June 2003.Google Scholar
- F. Stappert and P. Altenbernd. Complete worst-case execution time analysis of straight-line hard real-time programs. Journal of Systems Architecture, 46(4):339--355, 2000. Google Scholar
Digital Library
- F. Stappert, A. Ermedahl, and J. Engblom. Efficient longest executable path search for programs with complex flows and pipeline effects. In Proc. 4th International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, November 2001. Google Scholar
Digital Library
- B. Steensgaard. Points-to Analysis in Almost Linear Time. Proc. in 23rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Jan 1996. Google Scholar
Digital Library
- S. Thesing. Safe and Precise WCET Determination by Abstract Interpretation of Pipeline Models. PhD thesis, Saarland University, 2004.Google Scholar
- Vinnova homepage, 2006. www.vinnova.se.Google Scholar
- M. Weiser. Program Slicing. IEEE Transactions on Software Engineering, SE-10(4):352--357, July 1984.Google Scholar
Digital Library
- B. Xu, J. Qian, X. Zhang, Z. Wu, and L. Chen. A Brief Survey of Program Slicing. SIGSOFT Softw. Eng. Notes, 30(2):1--36, 2005. Google Scholar
Digital Library
Index Terms
Faster WCET flow analysis by program slicing
Recommendations
Classification of WCET Analysis Techniques
ISORC '05: Proceedings of the Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed ComputingWorst-case execution time (WCET) analysis has become an active research area over the last decade. Various techniques have been developed to improve the WCET calculation methods for numerous features of the hardware. In parallel, attention has been paid ...
Low-level analysis of a portable Java byte code WCET analysis framework
RTCSA '00: Proceedings of the Seventh International Conference on Real-Time Systems and ApplicationsTo support portability, worst-case execution time (WCET) analysis of Java byte code is performed at two levels - machine-independent program flow analysis at a higher level and machine-dependent timing analysis of individual program constructs at a ...
Transforming flow information during code optimization for timing analysis
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 ...






Comments