.:: WCET project / SWEET ::.

SWEET (SWEdish Execution Time tool)

SWEET is a research prototype tool for flow analysis and BCET/WCET calculation. BCET/WCET stands for Best resp. Worst Case Execution Time Analysis. SWEET has been developed by a research team in Västerås, Sweden since 2001. The name "SWEET" stands for SWEdish Execution Time Analysis tool.

The main function of SWEET is flow analysis. The result of flow analysis is flow facts (5)*, i.e., information about loop bounds and infeasible paths in the program. Flow facts are necessary for finding a safe and tight WCET for the analysed program.

SWEET analyses programs in ALF format (3). ALF stands for Artist Flow Analysis language; it is a general intermediate program language format, especially developed for flow analysis. ALF code can be generated from different sources, like C code and assembler code, and a number of translators are available (1 -> 2). The C translators can generate mapping between C and ALF code so the generated flow facts (4) can relate to the C code (5). These flow facts are used by the low level analysis tool "low-sweet" (see below), or can be exported to the WCET calculation tool aiT and RapiTime (10). For binary code, the flow facts relate to the ALF code constructs (6).

SWEET picture

The goal of SWEET's flow analysis is to calculate flow information as automatically as possible. SWEET offers powerful loop bound analysis, since upper bounds on the number of loop iterations must be known in order to derive WCET estimates. The flow analysis of SWEET can also identify infeasible paths, i.e., paths which are executable according to the control flow graph structure, but not feasible when considering the semantics of the program and possible input data values. In contrast to loop bounds, infeasible path information is not required to find a WCET estimate, but may tighten the resulting WCET estimate (7).

We have integrated time estimation in our AE method for calculating program flow constraints. This method is in principle a very detailed value analysis. As it computes intervals bounding variable values, it bounds both the BCET and the WCET (8). In addition, it derives the explicit execution paths through the program which correspond to the calculated BCET and WCET bounds. The BCET/WCET calculation can be based on both basic blocks and program constructs.

Previously, we developed a low-level analysis tool, "low-sweet" (9) with WCET calculation (7) for the NECV850E and ARM9 processors. The tool uses three different calculation methods: a fast path-based method, a global IPET method, and a hybrid clustered method. The development of this tool is currently inactive, and the tool is not available for download.

The SWEET source code is available to download for free as a zip archive.

For more information on SWEET, we refer to the SWEET manual, which is available in two formats:

  • The HTML format. All examples are available using links on the pages.
  • The PDF format, which gives you the whole manual as one document, suitable for printing.
*/ Numbers in parentheses refers to numbers in the figure.

Responsible for the information on this page: jan.gustafsson@mdh.se. Latest change: 2013-10-22