vix.ing · top · new · best · stats · spec

Learning to Superoptimize Real-world Programs

2021/09/28 by Alex Shypula, Pengcheng Yin, Shypula, Alex +10 · 1 voice
Computer Science · #Advanced Neural Network Applications #Parallel Computing and Optimization Techniques #Software Engineering Research #cs.AI #cs.LG #cs.PL #cs.SE

paper · pdf · doi:10.48550/arxiv.2109.13498

openalex publication_date 2021/09/28 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28

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 our test set when compared with the gcc version 10.3 compiler's aggressive optimization level -O3. We also report that SILO's rate of superoptimization on our test set is over five times that of a standard policy gradient approach and a model pre-trained on compiler optimization demonstration.

Citations

Discussions

Related