Everything about Superoptimization
Compiler optimization technique
Superoptimization is the process where a compiler automatically finds the optimal sequence for a loop-free sequence of instructions. Real-world compilers generally cannot produce genuinely optimal code, and while most standard compiler optimizations only improve code partly, a superoptimizer's goal is to find the optimal sequence, the canonical form. Superoptimizers can be used to improve conventional optimizers by highlighting missed opportunities so a human can write additional rules. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: SuperoptimizationA 5-minute orientation
- Skim a recent paper: Neural-guided superoptimization in ethereumInfluential work since 2022
- Pick up a classic book: Research in Public Policy Analysis and ManagementThe most-reprinted book on the subject
- Read the landmark paper: Stochastic superoptimizationCited 53 times
- Go sideways: Binary translationA closely related topic
- Go sideways: CraneliftA closely related topic
📖 Definitions
Noun A form of peephole optimization that typically uses an exhaustive brute-force search across all possible sequences of machine instructions.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Stochastic superoptimization
Stochastic superoptimization
Dataflow-based pruning for speeding up superoptimization
SuperStack: Superoptimization of Stack-Bytecode via Greedy, Constraint-Based, and SAT Techniques
Conditionally correct superoptimization
Scaling up Superoptimization
Sound Loop Superoptimization for Google Native Client
Scaling up Superoptimization
🆕 Influential since 2022
📚 Books worth reading
Research in Public Policy Analysis and ManagementStuart S. Nagel · 1986
Super-Optimizing ExamplesStuart S. Nagel · 1999
Super-optimizing examplesStuart S. Nagel · 1999
Legal scholarship, microcomputers, and super-optimizing decision-makingStuart S. Nagel · 1993
Handbook of win-win policy analysisStuart S. Nagel · 2001
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Binary translation In computing, binary translation is a form of binary recompilation in which sequences of instructions (machine code or bytecode) are translated from a…
- Cranelift Cranelift (formerly known as Cretonne) is an optimizing compiler backend that converts a target-independent intermediate representation into executable…
- Alexia Massalin Alexia Massalin (formerly Henry Massalin) is an American computer scientist and programmer. She pioneered the concept of superoptimization, and designed…
- Instruction selection In computer science, instruction selection is the stage of a compiler backend that transforms its middle-level intermediate representation (IR) into a…
- LLVM LLVM is a set of compiler and toolchain technologies that can be used to develop a frontend for any programming language and a backend for any instruction…
- Long double In C and related programming languages, long double refers to a floating-point data type that is often more precise than double precision though the language…
- Static single-assignment form In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a type of intermediate representation (IR) where each…
- Binary optimizer A binary optimizer, also known as an object code optimizer, takes a program's object code or machine code either from a linked executable binary file,…