University of Texas at Arlington
Embedded systems typically consist of a composition of a set of hardware and software IP modules. Each module is heavily optimized by itself. However, when these modules are composed together, significant additional opportunities for optimizations are introduced because only a subset of the entire functionality is actually used. The authors propose COSE - a technique to jointly optimize such designs. They use symbolic execution to compute invariants in each component of the design. They propagate these invariants as constraints to other modules using global flow analysis of the composition of the design.