paperbot · PL 论文追踪

全部论文 待读 收藏

P2 C4: the C compiler concurrency checker

C4:C 编译器并发检查器
ISSTA Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis2021匹配度 2/10 · 论文聚焦于 C 编译器的原子并发行为测试,通过 litmus 测试、模糊测试等发现编译器并发 bug,属于 PL/编译器与并发测试方向;但用户核心兴趣是 LLM/Agent 与静态分析、浮点程序分析、贝叶斯程序分析的交叉,本文不涉及 AI/LLM,也不属于静态分析或浮点/贝叶斯程序分析。引用 9 inbox
Matt Windsor, Alastair F. Donaldson, John Wickerson
crossref: 2026-09-12

AI 速览

一句话:提出 C4,一个通过生成、模糊测试与执行 litmus 测试来检验真实 C 编译器原子并发编译行为的工具。

多核处理器普及使得原子动作并发的正确编译至关重要,但现有自动化编译器测试工作很少能检验真实世界编译器如何处理原子动作代码的编译。本文演示 C4,一个用于探索 GCC、LLVM 等真实 C 编译器并发行为的工具。C4 自动化了一条基于 litmus 测试的生成、模糊测试与执行的工作流。到目前为止,C4 已在 GCC 和 IBM XL 中发现两个新的控制流 bug,并复现了 GCC 4 中两个历史性的并发 bug,表明该工具能够有效暴露真实编译器在原子并发代码编译中的缺陷。

问题
如何自动测试真实世界 C 编译器对原子动作并发代码的编译正确性,现有自动化编译器测试工具对此支持不足。
方法
C4 自动化 litmus 测试的生成、模糊测试与执行流程,对 GCC、LLVM 等真实 C 编译器进行并发行为探索。
评估
通过对真实编译器运行 C4,发现 GCC 与 IBM XL 中两个新的控制流 bug,并复现 GCC 4 的两个历史并发 bug。
原文摘要(Abstract)

The correct compilation of atomic-action concurrency is vital now that multicore processors are ubiquitous. Despite much recent work on automated compiler testing, little existing tooling can test how real-world compilers handle compilation of atomic-action code. We demonstrate C4, a tool for exploring the concurrency behaviour of real-world C compilers such as GCC and LLVM. C4 automates a workflow based on generating, fuzzing, and executing litmus tests. So far, C4 has found two new control-flow bugs in GCC and IBM XL, and reproduced two historic concurrency bugs in GCC 4.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6671,
  title = {C4: the C compiler concurrency checker},
  author = {Matt Windsor and Alastair F. Donaldson and John Wickerson},
  booktitle = {ISSTA},
  year = {2021},
  doi = {10.1145/3460319.3469079}
}