同步行为检查:一种发现编译器优化遗漏的方法

《Proceedings of the ACM on Programming Languages》:Synchronized Behavior Checking: A Method for Finding Missed Compiler Optimizations

【字体: 时间:2025年11月07日 来源:Proceedings of the ACM on Programming Languages

编辑推荐:

  编译器优化中遗漏优化的检测方法SBC通过协调验证多个优化的行为实现,利用共现和互补语义约束关系在LLVM和GCC上检测到大量遗漏优化,并提交了101个问题,其中84个已被确认。

  

摘要

编译器是有史以来开发的最基础性的软件之一。编译器的关键组成部分是其优化阶段,该阶段能够提升生成代码的效率。鉴于现代编译器的庞大规模和复杂性,开发自动化技术以改进其优化功能已成为一个重要的研究领域。本文重点关注一类特定问题,即“遗漏的优化”——即编译器未能应用本可以提升代码效率的优化措施。
为了检测这些遗漏的优化,我们提出了一种名为“同步行为检查”(Synchronized Behavior Checking,简称< />)的新方法,该方法通过利用多种优化的协同行为来进行交叉验证。SBC的核心思想在于:一种优化的结果可以验证另一种优化所需的条件是否满足。
在实现时,我们基于两种关系(共现关系和互补关系)同时交叉验证两种优化。在共现关系中,如果根据输入程序中的某个语义约束应用了某种优化,那么同样依赖于该语义约束的另一种优化也应被应用;而在互补关系中,如果两种优化都由不同的语义约束支持,那么应仅应用其中之一。当根据任一关系都应该应用某种优化但实际上并未应用时,我们就将其视为遗漏的优化。
我们对两种先进的商业编译器LLVM和GCC进行了广泛的评估。SBC成功检测到了这两种编译器中大量遗漏的优化问题,这些问题源于多种不同的编译器分析机制。根据评估结果,我们向LLVM和GCC报告了101个问题,其中84个问题得到了确认,39个问题已经得到修复或安排了修复计划。
SBC为发现编译器中的遗漏优化开辟了一个新的、令人兴奋的方向。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普
  • 急聘职位
  • 高薪职位

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号