pith. sign in

arxiv: 1711.04422 · v2 · pith:AUWTGD5Lnew · submitted 2017-11-13 · 💻 cs.PL

Souper: A Synthesizing Superoptimizer

classification 💻 cs.PL
keywords soupercompilerllvmmightoptimizationssuperoptimizersynthesizingable
0
0 comments X
read the original abstract

If we can automatically derive compiler optimizations, we might be able to sidestep some of the substantial engineering challenges involved in creating and maintaining a high-quality compiler. We developed Souper, a synthesizing superoptimizer, to see how far these ideas might be pushed in the context of LLVM. Along the way, we discovered that Souper's intermediate representation was sufficiently similar to the one in Microsoft Visual C++ that we applied Souper to that compiler as well. Shipping, or about-to-ship, versions of both compilers contain optimizations suggested by Souper but implemented by hand. Alternately, when Souper is used as a fully automated optimization pass it compiles a Clang compiler binary that is about 3 MB (4.4%) smaller than the one compiled by LLVM.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.

Forward citations

Cited by 1 Pith paper

Reviewed papers in the Pith corpus that reference this work. Sorted by Pith novelty score.

  1. Understanding Agent-Based Patching of Compiler Missed Optimizations

    cs.SE 2026-07 unverdicted novelty 6.0

    A benchmark of real LLVM missed optimizations shows agent patches frequently have partial or incomplete scope overlap with developer patches, improved by retrieval and distillation of historical pull requests.