Jump to content

Superoptimization

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Mmilenko (talk | contribs) at 19:01, 21 May 2008 (Updated link to stanford superoptimizer). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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.

Publicly available superoptimizers: