论文
了解编译器错过的优化的基于代理的修补
Understanding Agent-Based Patching of Compiler Missed Optimizations
摘要
编译器错过优化是指编译器未能优化某些代码的情况。需要许多编译器开发人员的努力来实现或修补此类错过的优化。在本文中,我们对代理补丁编译器错过优化的程度进行了系统研究。我们发现一个重大挑战,即修补错过的优化不仅需要修复报告的案例,还需要推广到类似的案例。我们构建了现实世界中 LLVM 错过优化问题的基准,并将代理生成的补丁与开发人员的补丁在优化范围方面进行比较。我们的结果表明,编码智能体 通常会优化给定的示例,但许多生成的补丁要么仅覆盖开发人员预期范围的一部分,要么与其部分重叠;在某些情况下,它们会进一步推广到参考补丁之外。我们进一步介绍了历史知识增强技术,该技术通过检索和 蒸馏 来利用先前的 LLVM 优化拉取请求,表明它们可以提高与开发人员一致的泛化能力,并在应用于现实世界的 IR 时产生实际效益。