Souper:一个合成超级优化器
Souper: A Synthesizing Superoptimizer
摘要:
如果我们可以自动地导出编译器优化,我们就可以避开创建和维护高质量编译器所涉及的一些重大工程挑战。我们开发了Souper,一个合成超优化器,看看这些想法在LLVM的上下文中可能会被推进多远。在此过程中,我们发现Souper的中间表示与Microsoft Visual C++中的中间表示非常相似,因此我们也将Souper应用于该编译器。这两个编译器的发布或即将发布的版本都包含了Souper建议的优化,但都是手工实现的。或者,当Souper用作全自动优化通道时,它编译的Clang编译器二进制文件比LLVM编译的小约3 MB(4.4%)。
英文摘要:
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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。