News

Optimization-Space Exploration

Optimization-Space Exploration (OSE) is a novel compiler organization method. Unlike traditional compilers, which use a uniform optimization sequence for all codes, an OSE compiler tries multiple optimization paths on each code segment. The OSE compiler then determines the best optimized version of the code, and incorporates it in the final executable.

Multiple-trial optimization approaches, generally known as iterative compilation, have been proposed in the past. However, existing iterative compilation methods either require very long compile times, or are strictly domain-specific. On the contrary, OSE makes no assumption on the application or architecture domain, and uses several key ideas in order to keep compile time in check. This makes OSE the first general-purpose iterative compilation method.

In order to experiment with OSE, the Liberty Research Group retrofitted Electron, Intel's reference compiler for IA-64, to implement some limited form of OSE. Despite its many limitations, this OSE implementation yielded promising results. A full-fledged OSE implementation is planned for the future.

OSE's status to date is fully described in this journal paper, published in the Journal of Instruction-level Parallelism, vol. 7. An earlier conference publication. won the Best Paper Award at the 2003 CGO symposium. An OSE annotated slideshow can be found here.