Advanced compiler design and implementation
Advanced compiler design and implementation
Bounding Pipeline and Instruction Cache Performance
IEEE Transactions on Computers
Fast and Precise WCET Prediction by Separated Cache andPath Analyses
Real-Time Systems - Special issue on worst-case execution-time analysis
Bounding Loop Iterations for Timing Analysis
RTAS '98 Proceedings of the Fourth IEEE Real-Time Technology and Applications Symposium
Tighter Timing Predictions by Automatic Detection and Exploitation of Value-Dependent Constraints
RTAS '99 Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium
Bounding the execution time of real-time tasks on modern processors
RTCSA '00 Proceedings of the Seventh International Conference on Real-Time Systems and Applications
Combining Abstract Interpretation and ILP for Microarchitecture Modelling and Program Path Analysis
RTSS '98 Proceedings of the IEEE Real-Time Systems Symposium
An Interactive Environment for Real-Time Software Development
TOOLS '00 Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 33)
Decompiling Java using staged encapsulation
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Java Virtual-Machine Support for Portable Worst-Case Execution-Time Analysis
ISORC '02 Proceedings of the Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
A Prototype Tool for Flow Analysis of Object-Oriented Programs
ISORC '02 Proceedings of the Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
Worst-case execution times for a purely functional language
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
A study of irreducibility in C programs
Software—Practice & Experience
Hi-index | 0.00 |
We present a technique to approximate the worst-case execution time that combines structural analysis with a loop-bounding algorithm based on local induction variable analysis. Structural analysis is an attractive foundation for several reasons: it delivers better bounds on the number of executions for each basic block than previous approaches, its complexity is well understood, and it allows the compiler to easily work on Java bytecode without requiring access to the original program source. There are two major steps. We first compute (min, max) bounds on the number of iterations for each loop. Then we use precise structural information to propagate these bounds to the whole control-flow graph and compute a bound for each basic block. Such a fine-grained result eases the identification of infeasible paths and improves the approximation of the worst-case execution time of a function or method. This analysis was successfully implemented in an ahead-of-time Java bytecode to native compiler and produces input for a worst-case execution time estimator. We describe the effectiveness in reducing the worst-case execution time for a number of programs from small kernels and soft-real-time applications.