Learning to Superoptimize Real-World Programs

Download: Paper.

“Learning to Superoptimize Real-World Programs” by Alexander G. Shypula, Pengcheng Yin, Jeremy Lacomis, Claire Le Goues, and Edward Schwartz an Graham Neubig. In Deep Learning for Code Workshop at the International Conference on Learning Representations, 2022.

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.

Download: Paper.

BibTeX entry:

@inproceedings{shypula:2022,
   author = {Alexander G. Shypula and Pengcheng Yin and Jeremy Lacomis and
	Claire Le Goues and an Graham Neubig, Edward Schwartz},
   title = {Learning to Superoptimize Real-World Programs},
   booktitle = {Deep Learning for Code Workshop at the International
	Conference on Learning Representations},
   year = {2022}
}

(This webpage was created with bibtex2web.)

Back to publications.