Superoptimization
From Wikipedia, the free encyclopedia
Superoptimization is the task of finding the optimal code sequence for a single, loop-free sequence of instructions. While garden-variety compiler optimizations really just improve code (and it is an accident if it produces genuinely optimal code), a superoptimizer's goal is to find the optimal sequence at the outset.
The term superoptimization was first coined by Henry Massalin in his 1987 paper and then later developed for integration within the GNU Compiler Collection (GSO 1992). Recent work has further developed and extended this idea: (2001, 2006, 2006).
Typically, superoptimization is performed via exhaustive search in the space of valid instruction sequences. While this is an expensive technique, it has been shown to be useful in optimizing performance-critical inner loops. Recent work has used superoptimization to automatically generate general-purpose peephole optimizers.
[edit] External links
[edit] Publicly available superoptimizers:
- GNU Superoptimizer (GSO) (1992)
- TOAST Superoptimiser (2006)
- The Aha! (A Hacker's Assistant) Superoptimizer (2006)
- Stanford's Superoptimizer (2006)