Learning to Superoptimize Real-world Programs
Alex Shypula, Pengcheng Yin, Jeremy Lacomis, Claire Le Goues, Edward, Schwartz, Graham Neubig

TL;DR
This paper introduces a neural network-based framework called SILO for superoptimizing real-world programs, demonstrating its effectiveness on a large dataset of assembly functions and outperforming standard methods.
Contribution
The paper presents SILO, a novel self-imitation learning approach for superoptimizing real-world programs using neural sequence models, with a large dataset and improved performance.
Findings
SILO superoptimizes 5.9% of test programs compared to gcc -O3.
SILO's superoptimization rate is over five times higher than standard policy gradient methods.
The approach outperforms models pre-trained on compiler optimization demonstrations.
Abstract
Program optimization is the process of modifying software to execute more efficiently. Superoptimizers attempt to find the optimal program by employing significantly more expensive search and constraint solving techniques. Generally, these methods do not scale well to programs in real development scenarios, and as a result, superoptimization has largely been confined to small-scale, domain-specific, and/or synthetic program benchmarks. In this paper, we propose a framework to learn to superoptimize real-world programs by using neural sequence-to-sequence models. We created a dataset consisting of over 25K real-world x86-64 assembly functions mined from open-source projects and propose an approach, Self Imitation Learning for Optimization (SILO) that is easy to implement and outperforms a standard policy gradient learning approach on our dataset. Our method, SILO, superoptimizes 5.9% of…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Software Engineering Research · Advanced Neural Network Applications
MethodsTest
