Superoptimization

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 (real-world compilers generally cannot produce genuinely optimal code), a superoptimizer's goal is to find the optimal sequence.

The term superoptimization was first coined by Alexia Massalin in her 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, and therefore impractical for general-purpose compilers, 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.

External links

Publicly available superoptimizers

This article is issued from Wikipedia - version of the Wednesday, January 20, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.