Abstract
Timing analysis is an important prerequisite for the design of embedded real-time systems. In order to get tight and safe bounds for the timing of a program, precise information about its control flow and data flow is needed. While actual timings can only be derived from the machine code, many of the supporting analyses (deriving timing-relevant data such as points-to and loop bound information) operate much more effectively on the source code level. At this level, they can use high-level information that would otherwise be lost during the compilation to machine code.
During the optimization stage, compilers often apply transformations, such as loop unrolling, that modify the program’s control flow. Such transformations can invalidate information derived from the source code. In our approach, we therefore apply such optimizations already at the source-code level and transform the analyzed information accordingly. This way, we can marry the goals of precise timing analysis and optimizing compilation.
In this article we present our implementation of this concept within the SATIrE source-to-source analysis and transformation framework. SATIrE forms the basis for the TuBound timing analyzer. In the ALL-TIMES EU FP7 project we extended SATIrE to exchange timing-relevant analysis data with other European timing analysis tools. In this context, we explain how timing-relevant information from the source code level can be communicated to a wide variety of tools that apply various forms of static and dynamic analysis on different levels.
This work was supported by the Austrian Science Fund (Fonds zur Förderung der wissenschaftlichen Forschung) under contracts P18925-N13, Compiler Support for Timing Analysis (CoSTA), http://costa.tuwien.ac.at/ and P21842, Optimal Code Generation for Explicitly Parallel Processors, http://www.complang.tuwien.ac.at/epicopt/ , and the Commission of the European Union within the 7th EU R&D Framework Programme under contract 215068, Integrating European Timing Analysis Technology (ALL-TIMES), http://www.mrtc.mdh.se/projects/all-times/
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Barany, G.: SATIrE within ALL-TIMES: Improving timing technology with source code analysis. In: Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS 2009), ch. 15, Maria Taferl, Austria, p. 230 (October 2009)
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL 1977: Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 238–252. ACM, New York (1977)
Engblom, J., Ermedahl, A., Altenbernd, P.: Facilitating worst-case execution time analysis for optimized code. In: Proc. 10th Euromicro Real-Time Workshop, Berlin, Germany (June 1998)
Gustafsson, J., Ermedahl, A., Lisper, B., Sandberg, C., Källberg, L.: ALF – a language for WCET flow analysis. In: Proceedings of the 9th International Workshop on Worst-Case Execution Time Analysis (WCET 2009) (June 2009)
Gustafsson, J., Ermedahl, A., Sandberg, C., Lisper, B.: Automatic derivation of loop bounds and infeasible paths for wcet analysis using abstract execution. In: The 27th IEEE Real-Time Systems Symposium, RTSS 2006 (December 2006)
Gustafsson, J., Lisper, B., Schordan, M., Ferdinand, C., Jersak, M., Bernat, G.: ALL-TIMES - a European project on integrating timing technology. In: Proc. Third International Symposium on Leveraging Applications of Formal Methods (ISOLA 2008), October 2008, pp. 445–459. Springer, Heidelberg (2008)
Herrmann, C.A., Bonenfant, A., Hammond, K., Jost, S., Loidl, H.-W., Pointon, R.: Automatic amortised worst-case execution time analysis. In: Proceedings of the 7th International Workshop on Worst-Case Execution Time (WCET) Analysis (2007)
Kirner, R.: User’s Manual – WCET-Analysis Framework based on wcetC. Vienna University of Technology, Vienna, Austria, 0.0.3 edition (July 2001), http://www.vmars.tuwien.ac.at/~raimund/calc_wcet/
Kirner, R., Puschner, P., Prantl, A.: Transforming flow information during code optimization for timing analysis. Real-Time Systems 45(1-2), 72–105 (2010)
Lattner, C., Lenharth, A., Adve, V.: Making context-sensitive points-to analysis with heap cloning practical for the real world. In: PLDI 2007: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, pp. 278–289. ACM, New York (2007)
Lokuciejewski, P., Marwedel, P.: Combining Worst-Case Timing Models, Loop Unrolling, and Static Loop Analysis for WCET Minimization. In: The 21st Euromicro Conference on Real-Time Systems (ECRTS), Dublin, Ireland, pp. 35–44. IEEE Computer Society, Los Alamitos (July 2009)
Prantl, A., Knoop, J., Kirner, R., Kadlec, A., Schordan, M.: From trusted annotations to verified knowledge. In: Proceedings of the 9th International Workshop on Worst-Case Execution Time Analysis (WCET 2009), Dublin, Ireland, Österreichische Computer Gesellschaft, pp. 39–49 (June 2009) ISBN: 978-3-85403-252-6
Prantl, A., Knoop, J., Schordan, M., Triska, M.: Constraint solving for high-level WCET analysis. In: The 18th Workshop on Logic-based methods in Programming Environments (WLPE 2008), Udine, Italy, pp. 77–89 (December 2008)
Prantl, A.: High-level compiler support for timing analysis. PhD thesis, Vienna University of Technology (2010)
Prantl, A., Schordan, M., Knoop, J.: TuBound – A Conceptually New Tool for Worst-Case Execution Time Analysis. In: 8th International Workshop on Worst-Case Execution Time Analysis (WCET 2008), pp. 141–148, Prague, Czech Republic, Österreichische Computer Gesellschaft (2008) ISBN: 978-3-85403-237-3.
Schulte, D.: Modellierung und Transformation von Flow Facts in einem WCET-optimierenden Compiler. Master’s thesis, Universität Dortmund (2007)
Schordan, M.: Source-to-source analysis with SATIrE - an example revisited. In: Scalable Program Analysis, Dagstuhl, Germany, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany. Dagstuhl Seminar Proceedings, vol. 08161 (2008)
Steensgaard, B.: Points-to analysis in almost linear time. In: POPL 1996: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 32–41. ACM, New York (1996)
Tarjan, R.E.: Efficiency of a good but not linear set union algorithm. J. ACM 22(2), 215–225 (1975)
Wilhelm, R., Engblom, J., Ermedahl, A., Holsti, N., Thesing, S., Whalley, D., Bernat, G., Ferdinand, C., Heckmann, R., Mitra, T., Mueller, F., Puaut, I., Puschner, P., Staschulat, J., Stenström, P.: The worst-case execution-time problem—overview of methods and survey of tools. ACM Trans. Embed. Comput. Syst. 7(3), 1–53 (2008)
Živojnović, V., Velarde, J.M., Schläger, C., Meyr, H.: DSPstone: A DSP-Oriented Benchmarking Methodology. In: Proceedings of the International Conference on Signal Processing and Technology (ICSPAT), Dallas (October 1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Barany, G., Prantl, A. (2010). Source-Level Support for Timing Analysis. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification, and Validation. ISoLA 2010. Lecture Notes in Computer Science, vol 6416. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16561-0_40
Download citation
DOI: https://doi.org/10.1007/978-3-642-16561-0_40
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-16560-3
Online ISBN: 978-3-642-16561-0
eBook Packages: Computer ScienceComputer Science (R0)