Source-Level Support for Timing Analysis
نویسندگان
چکیده
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. 1 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.comp lang.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/alltimes/. 2 The author is now at Lawrence Livermore National Laboratory, P.O. Box 808, 94551 Livermore, CA.
منابع مشابه
Compiler Support for WCET Analysis: a Wish List
Static timing analysis of a computer program needs both high-level information from the source code of the program, and low-level information from the compiled object code. Compilers and linkers could support such analysis by providing more and better information about the structure and behaviour of the source and object code and about the relationship between source and object code. Moreover, ...
متن کاملSATIrE within ALL-TIMES: Improving Timing Technology with Source Code Analysis
We present the SATIrE source-to-source analysis framework within the context of ALL-TIMES, a European research and development project aimed at improving and integrating existing tools in the area of timing analysis. Within the project, SATIrE contributes by performing source-level static analysis on C programs and exporting its results for other tools to use. This work gives an overview of SAT...
متن کاملHigh-Level Synthesis of In-Circuit Assertions for Verification, Debugging, and Timing Analysis
Despite significant performance and power advantages compared to microprocessors, widespread usage of FPGAs has been limited by increased design complexity. High-level synthesis (HLS) tools have reduced design complexity but provide limited support for verification, debugging, and timing analysis. Such tools generally rely on inaccurate software simulation or lengthy registertransfer-level simu...
متن کاملCompiler Support for Measurement-based Timing Analysis
Measurement-based timing analysis (MBTA) techniques have been developed as a complimentary to static WCET analysis, in order to exploit worst-case execution time (WCET) analysis at early stages of system development. The direct advantage of MBTA is that, in contrast to static WCET analysis, no timing model of the hardware platform has to be developed. Instead the timing model is generated autom...
متن کاملAutomatic Generation of Timing Models for Timing Analysis of High-Level Code
Traditional timing analysis is applied only in the late stages of embedded system software development, when the hardware is available and the code is compiled and linked. However, preliminary timing estimates are often needed already in early stages of system development, both for hard and soft real-time systems. If the hardware is not yet fully accessible, or the code is not yet ready to comp...
متن کامل