Souper
A superoptimizer for LLVM IR
Souper is a superoptimizer for LLVM IR designed to automatically discover missed optimization opportunities within LLVM’s mid-end optimizers. By leveraging SMT (Satisfiability Modulo Theories) solvers, Souper symbolically analyzes LLVM Intermediate Representation (IR) to synthesize equivalent, more efficient expressions. It identifies peephole optimizations—small instruction-level improvements—that LLVM’s optimizer may overlook, thereby improving compiled code quality. Souper can operate...