Cinderella Project

The Cinderella Project is an effort to automate the determination of worst-case execution time for software running on a single processor. It is estimated by static analysis assuming uninterrupted execution using path analysis and microarchitectural modeling. Since Cinderella uses the C language, the problem is undecidable. They make it decidable by restricting the constructs in C: Cinderella prunes logically infeasible paths to obtain tighter bounds, and supports programmer annotations:

Initial Formulation

Formulate the problem as an integer linear programming (ILP) problem. Each set of functionality constraints is combined with structural constraints and passed to an ILP solver. C code is analyzed into a code flow graph of one instruction per node.

Advanced Formulation

Modify cost function to include instruction cache hits and misses. The analysis then simulates the program using the control flow graph. CPU pipelining, i.e. hit cost and load instruction cost, is also included.


Updated 05/02/99.