Improving the WCET computation time by IPET using control flow graph partitioning (original) (raw)

Improving WCET by applying worst-case path optimizations

Real-Time Systems, 2006

It is advantageous to perform compiler optimizations that attempt to lower the worst-case execution time (WCET) of an embedded application since tasks with lower WCETs are easier to schedule and more likely to meet their deadlines. Compiler writers in recent years have used profile information to detect the frequently executed paths in a program and there has been considerable effort to develop compiler optimizations to improve these paths in order to reduce the average-case execution time (ACET). In this paper, we describe an approach to reduce the WCET by adapting and applying optimizations designed for frequent paths to the worst-case (WC) paths in an application. Instead of profiling to find the frequent paths, our WCET path optimization uses feedback from a timing analyzer to detect the WC paths in a function. Since these path-based optimizations may increase code size, the subsequent effects on the WCET due to these optimizations is measured to ensure that the worst-case path optimizations actually improve the WCET before committing to a code size increase. We evaluate these WC path optimizations and present results showing the decrease in WCET versus the increase in code size.

Improving WCET by Optimizing Worst-Case Paths

11th IEEE Real Time and Embedded Technology and Applications Symposium, 2005

It is advantageous to perform compiler optimizations to lower the WCET of a task since tasks with lower WCETs aree asier to schedule and morel ikely to meet their deadlines. Compiler writersi nr ecent yearsh ave used profile information to detect the frequently executed paths in a programa nd thereh as been muche ffort to develop compiler optimizations to improvet hese paths in order to reduce average-case execution time.I nt his paper we describe our approacht or educe WCET by adapting and applying optimizations designed for frequent paths to the worst-case paths in an application. Our compiler uses feedbackf romo ur timing analyzer to detect the WCET paths through a function that will be subject to aggressive optimizations, reflect subsequent effects on the WCET of the paths due to these optimizations, and to also ensure that the worst-case path optimizations actually improve the WCET beforec ommitting to a code size increase.W e evaluate a number of WC path optimizations and present results showing the decrease in WCET versus the increase in code size.

Execution path pruning for WCET analysis

2006

WCET computation is one of the main challenges in the study of HRTS, since it is needed to guarantee the time requirements. Moreover, modern processors have hardware components with a variable latency not known at compilation time which makes the problem even harder. In particular, the WCET computation problem in presence of caches takes exponential complexity. In this work we propose two techniques targeted to compute WCET accurately in presence of both instruction and data caches. Both techniques reduce drastically the number of states to analyze by pruning all the paths located outside the time-critical path.

Automatic Derivation of Loop Bounds and Infeasible Paths for WCET Analysis Using Abstract Execution

2006 27th IEEE International Real-Time Systems Symposium (RTSS'06), 2006

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. A key component for statically deriving safe and tight WCET bounds is information on the possible program flow through the program. Such flow information can be provided manually by user annotations, or automatically by a flow analysis. To make WCET analysis as simple and safe as possible, it should preferably be automatically derived, with no or very limited user interaction.

Combining Worst-Case Timing Models, Loop Unrolling, and Static Loop Analysis for WCET Minimization

2009 21st Euromicro Conference on Real-Time Systems, 2009

Program loops are notorious for their optimization potential on modern high-performance architectures. Compilers aim at their aggressive transformation to achieve large improvements of the program performance. In particular, the optimization loop unrolling has shown in the past decades to be highly effective achieving significant increases of the average-case performance.

Accelerating WCET-driven optimizations by the invariant path paradigm

Proceedings of th 12th International Workshop on Software and Compilers for Embedded Systems - SCOPES '09, 2009

The worst-case execution time (WCET) being the upper bound of the maximum execution time corresponds to the longest path through the program's control flow graph. Its reduction is the objective of a WCET optimization. Unlike average-case execution time compiler optimizations which consider a static (most frequently executed) path, the longest path is variable since its optimization might result in another path becoming the effective longest path. To keep path information valid, WCET optimizations typically perform a time-consuming static WCET analysis after each code modification to ensure that subsequent optimization steps operate on the critical path. However, a code modification does not always lead to a path switch, making many WCET analyses superfluous. To cope with this problem, we propose a new paradigm called Invariant Path which eliminates the pessimism by indicating whether a path update is mandatory. To demonstrate the paradigm's practical use, we developed a novel optimization called WCET-driven Loop Unswitching which exploits the Invariant Path information. In a case study, our optimization reduced the WCET of real-world benchmarks by up to 18.3%, while exploiting the Invariant Path paradigm led to a reduction of the optimization time by 57.5% on average. COND THEN EXIT 15 5

WCET 2008--Report from the Tool Challenge 2008--8th Intl. Workshop on Worst-Case Execution Time (WCET) Analysis}

8th Intl. Workshop on Worst-Case Execution Time (WCET) Analysis}, 2008

Following the successful WCET Tool Challenge in 2006, the second event in this series was organized in 2008, again with support from the ARTIST2 Network of Excellence. The WCET Tool Challenge 2008 (WCC'08) provides benchmark programs and poses a number of "analysis problems" about the dynamic, runtime properties of these programs. The participants are challenged to solve these problems with their programanalysis tools. Two kinds of problems are defined: WCET problems, which ask for bounds on the execution time of chosen parts (sub programs) of the benchmarks, under given constraints on input data; and flowanalysis problems, which ask for bounds on the number of times certain parts of the benchmark can be executed, again under some constraints. We describe the organization of WCC'08, the benchmark programs, the participating tools, and the general results, successes, and failures. Most participants found WCC'08 to be a useful test of their tools. Unlike the 2006 Challenge, the WCC'08 participants include several tools for the same target (ARM7, LPC2138), and tools that combine measurements and static analysis, as well as pure staticanalysis tools.

Faster WCET flow analysis by program slicing

ACM SIGPLAN Notices, 2006

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.