Isolating Compiler Faults Through Differentiated Compilation Configurations

IF 5.6 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING
Yibiao Yang;Qingyang Li;Maolin Sun;Jing Yang;Jiangchang Wu;Yuming Zhou
{"title":"Isolating Compiler Faults Through Differentiated Compilation Configurations","authors":"Yibiao Yang;Qingyang Li;Maolin Sun;Jing Yang;Jiangchang Wu;Yuming Zhou","doi":"10.1109/TSE.2025.3569530","DOIUrl":null,"url":null,"abstract":"Compilation optimization bugs are prevalent and can significantly affect the correctness of software products, posing serious challenges to software development. Identifying and localizing these bugs are critical tasks for compiler developers. However, the intricate nature and extensive scale of modern compilers make it difficult to pinpointing the root causes of such bugs. Previous research has introduced innovative techniques that generate <italic>witness test programs</i>–tests that pass–by mutating bug-triggering test cases, highlighting the importance of this problem and demonstrating the effectiveness of such approaches. Nevertheless, existing techniques based on witness test programs generation suffer from inherent limitations. Specifically, they do not guarantee the successful creation of witness test programs via mutation and are often time-consuming, typically requiring extensive iterations to produce a valid witness test program. In this study, we present <sc>Odfl</small>, a simple yet effective approach for automatically isolating compiler optimization faults by introducing the concept of <italic>differentiated compilation configurations</i>. The core insight behind <sc>Odfl</small> is that modifying compilation settings such as disabling fine-grained compilation flags in GCC or reducing the number of fine-grained compilation passes in LLVM, can suppress the manifestation of compiler bugs triggered by the same test program. Through adjusting these settings, <sc>Odfl</small> creates differentiated compilation configuration that produce multiple compiler executions with distinct pass/fail outcomes. We utilize these differentiated configurations to collect both passing and failing compiler coverage, and then apply <italic>Spectrum-Based Fault Localization (SBFL)</i> techniques to rank compiler source files based on their suspiciousness. Our evaluation of 60 GCC and 50 LLVM compiler bugs demonstrates that <sc>Odfl</small> substantially outperforms state-of-the-art compiler fault localization techniques in terms of both effectiveness and efficiency. Notably, <sc>Odfl</small> achieves over 90% improvement in accurately ranking the top-1 faulty source files compared to three existing techniques–DiWi, RecBi, and LLM4CBI–and reduces fault localization time by more than 99% on average.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"51 6","pages":"1838-1853"},"PeriodicalIF":5.6000,"publicationDate":"2025-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE Transactions on Software Engineering","FirstCategoryId":"94","ListUrlMain":"https://ieeexplore.ieee.org/document/11002719/","RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0

Abstract

Compilation optimization bugs are prevalent and can significantly affect the correctness of software products, posing serious challenges to software development. Identifying and localizing these bugs are critical tasks for compiler developers. However, the intricate nature and extensive scale of modern compilers make it difficult to pinpointing the root causes of such bugs. Previous research has introduced innovative techniques that generate witness test programs–tests that pass–by mutating bug-triggering test cases, highlighting the importance of this problem and demonstrating the effectiveness of such approaches. Nevertheless, existing techniques based on witness test programs generation suffer from inherent limitations. Specifically, they do not guarantee the successful creation of witness test programs via mutation and are often time-consuming, typically requiring extensive iterations to produce a valid witness test program. In this study, we present Odfl, a simple yet effective approach for automatically isolating compiler optimization faults by introducing the concept of differentiated compilation configurations. The core insight behind Odfl is that modifying compilation settings such as disabling fine-grained compilation flags in GCC or reducing the number of fine-grained compilation passes in LLVM, can suppress the manifestation of compiler bugs triggered by the same test program. Through adjusting these settings, Odfl creates differentiated compilation configuration that produce multiple compiler executions with distinct pass/fail outcomes. We utilize these differentiated configurations to collect both passing and failing compiler coverage, and then apply Spectrum-Based Fault Localization (SBFL) techniques to rank compiler source files based on their suspiciousness. Our evaluation of 60 GCC and 50 LLVM compiler bugs demonstrates that Odfl substantially outperforms state-of-the-art compiler fault localization techniques in terms of both effectiveness and efficiency. Notably, Odfl achieves over 90% improvement in accurately ranking the top-1 faulty source files compared to three existing techniques–DiWi, RecBi, and LLM4CBI–and reduces fault localization time by more than 99% on average.
通过差异化编译配置隔离编译器故障
编译优化bug非常普遍,严重影响软件产品的正确性,给软件开发带来了严峻的挑战。识别和定位这些bug是编译器开发人员的关键任务。然而,现代编译器复杂的性质和广泛的规模使得很难确定这些错误的根本原因。之前的研究已经引入了一些创新技术来生成见证测试程序——通过变异bug触发测试用例的测试,强调了这个问题的重要性,并证明了这种方法的有效性。然而,现有的基于见证测试程序生成的技术存在固有的局限性。具体来说,它们不能保证通过突变成功地创建见证测试程序,并且通常很耗时,通常需要大量的迭代来生成有效的见证测试程序。在本研究中,我们介绍了Odfl,这是一种简单而有效的方法,通过引入差异化编译配置的概念来自动隔离编译器优化错误。Odfl背后的核心观点是,修改编译设置,比如在GCC中禁用细粒度编译标志,或者减少LLVM中细粒度编译通过的次数,可以抑制由同一个测试程序触发的编译器错误的表现。通过调整这些设置,Odfl创建不同的编译配置,从而产生具有不同通过/失败结果的多个编译器执行。我们利用这些不同的配置来收集通过和失败的编译器覆盖率,然后应用基于频谱的故障定位(SBFL)技术根据编译器源文件的可疑程度对其进行排名。我们对60个GCC和50个LLVM编译器错误的评估表明,Odfl在有效性和效率方面都大大优于最先进的编译器错误定位技术。值得注意的是,与现有的三种技术(diwi、RecBi和llm4cbi)相比,Odfl在准确排序前1位错误源文件方面提高了90%以上,并且平均减少了99%以上的故障定位时间。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering 工程技术-工程:电子与电气
CiteScore
9.70
自引率
10.80%
发文量
724
审稿时长
6 months
期刊介绍: IEEE Transactions on Software Engineering seeks contributions comprising well-defined theoretical results and empirical studies with potential impacts on software construction, analysis, or management. The scope of this Transactions extends from fundamental mechanisms to the development of principles and their application in specific environments. Specific topic areas include: a) Development and maintenance methods and models: Techniques and principles for specifying, designing, and implementing software systems, encompassing notations and process models. b) Assessment methods: Software tests, validation, reliability models, test and diagnosis procedures, software redundancy, design for error control, and measurements and evaluation of process and product aspects. c) Software project management: Productivity factors, cost models, schedule and organizational issues, and standards. d) Tools and environments: Specific tools, integrated tool environments, associated architectures, databases, and parallel and distributed processing issues. e) System issues: Hardware-software trade-offs. f) State-of-the-art surveys: Syntheses and comprehensive reviews of the historical development within specific areas of interest.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信