It is critical that compilers are correct! Finding bugs is one aspect of testing the correctness of compilers in wide use today. A compiler is correct if every compiled program behaves as allowed by the semantics of its source code - else there is a bug. Memory consistency models define the semantics of concurrent programs. We focus on how to detect concurrency bugs introduced by compilers, as identified using memory models. We seek a testing technique that automatically covers concurrency bugs up to fixed bounds on program sizes and that scales to find bugs in compiled programs with many lines of code. Otherwise, a testing technique can miss bugs. Unfortunately, the state-of-the-art techniques are yet to satisfy all of these properties. We present the T\'el\'echat compiler testing tool for concurrent programs. T\'el\'echat finds a concurrency bug when the behaviour of a compiled program, as allowed by its architecture memory model, is not a behaviour of the source program under its source model. We make three claims: T\'el\'echat improves the state-of-the-art at finding bugs in code generation for multi-threaded execution, it is the first public description of a compiler testing tool for concurrency that is deployed in industry, and it is the first tool that takes a significant step towards the desired properties. We provide experimental evidence suggesting T\'el\'echat finds bugs missed by other state-of-the-art techniques, case studies indicating that T\'el\'echat satisfies the properties, and reports of our experience deploying T\'el\'echat in industry.


翻译:编译器的正确性至关重要!发现缺陷是测试当前广泛使用编译器的正确性的重要方面。若每个编译后程序的行为均遵循其源代码语义所允许的范围,则编译器正确——反之则存在缺陷。内存一致性模型定义了并发程序的语义。本文聚焦于如何检测由编译器引入的并发缺陷(通过内存模型识别)。我们寻求一种测试技术,该技术能自动覆盖程序规模有界范围内的并发缺陷,并可扩展至发现数千行代码的编译后程序中的缺陷——否则测试技术可能遗漏缺陷。然而,现有最先进技术尚未完全满足这些特性。我们提出面向并发程序的Télécahat编译器测试工具。当编译后程序的行为(由其架构内存模型所允许)不属于源程序在其源模型下的行为时,Télécahat即发现并发缺陷。我们提出三项主张:Télécahat提升了多线程执行代码生成缺陷检测的现有技术水平;这是业界首次公开描述已部署使用的并发编译器测试工具;该工具是首个向理想特性迈出重大步伐的测试工具。我们通过实验证据表明Télécahat能发现被其他现有最优技术遗漏的缺陷,通过案例研究证实其满足相关特性,并分享在业界部署Télécahat的应用经验。

0
下载
关闭预览

相关内容

编译器(Compiler),是一种计算机程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。
Linux导论,Introduction to Linux,96页ppt
专知会员服务
82+阅读 · 2020年7月26日
FlowQA: Grasping Flow in History for Conversational Machine Comprehension
专知会员服务
34+阅读 · 2019年10月18日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
60+阅读 · 2019年10月17日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
32+阅读 · 2019年10月17日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
164+阅读 · 2019年10月12日
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
STRCF for Visual Object Tracking
统计学习与视觉计算组
15+阅读 · 2018年5月29日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
Focal Loss for Dense Object Detection
统计学习与视觉计算组
12+阅读 · 2018年3月15日
可解释的CNN
CreateAMind
18+阅读 · 2017年10月5日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
国家自然科学基金
13+阅读 · 2017年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
47+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
Arxiv
1+阅读 · 2023年12月4日
Arxiv
0+阅读 · 2023年12月4日
Arxiv
0+阅读 · 2023年12月4日
Arxiv
0+阅读 · 2023年12月3日
Arxiv
12+阅读 · 2023年5月22日
Arxiv
12+阅读 · 2020年12月10日
The Matrix Calculus You Need For Deep Learning
Arxiv
12+阅读 · 2018年7月2日
Arxiv
14+阅读 · 2018年5月15日
VIP会员
最新内容
《多域战场上反制小型无人机系统》150页
专知会员服务
14+阅读 · 今天7:47
战场人工智能:增强陆地作战能力的发现与要求
专知会员服务
3+阅读 · 今天7:37
以人工智能为中心的指挥控制
专知会员服务
3+阅读 · 今天7:14
《基于深度强化学习的反无人机技术研究》178页
专知会员服务
13+阅读 · 6月10日
“史诗怒火”行动与“AI中心战”模式的浮现
专知会员服务
14+阅读 · 6月10日
【CVPR2026教程】扩散模型的解析理解
专知会员服务
5+阅读 · 6月10日
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
STRCF for Visual Object Tracking
统计学习与视觉计算组
15+阅读 · 2018年5月29日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
Focal Loss for Dense Object Detection
统计学习与视觉计算组
12+阅读 · 2018年3月15日
可解释的CNN
CreateAMind
18+阅读 · 2017年10月5日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
相关论文
Arxiv
1+阅读 · 2023年12月4日
Arxiv
0+阅读 · 2023年12月4日
Arxiv
0+阅读 · 2023年12月4日
Arxiv
0+阅读 · 2023年12月3日
Arxiv
12+阅读 · 2023年5月22日
Arxiv
12+阅读 · 2020年12月10日
The Matrix Calculus You Need For Deep Learning
Arxiv
12+阅读 · 2018年7月2日
Arxiv
14+阅读 · 2018年5月15日
相关基金
国家自然科学基金
13+阅读 · 2017年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
47+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员