paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Validating JVM Compilers via Maximizing Optimization Interactions

通过最大化优化交互来验证 JVM 编译器
ASPLOS Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 42024匹配度 2/10 · 论文聚焦 JVM 编译器的模糊测试与差分测试,属于编译器测试/优化缺陷发现,与用户画像中的静态分析、LLM/Agent 辅助分析、浮点程序分析和贝叶斯程序分析均无直接交叉。虽然工业落地强且问题驱动,但研究主题不匹配核心方向。引用 7 inbox
Zifan Xie, Ming Wen, Shiyu Qiu, Hai Jin
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 MopFuzzer,通过最大化 JVM 编译器优化阶段间的交互并进行差分测试,发现 59 个生产 JVM 缺陷。

现代编译器中的内联、循环展开和死代码消除等优化阶段并非一次性顺序完成,而是相互交织;处理某一优化时若破坏其他优化结果,可能导致编译器崩溃或不可预期行为。为验证 JVM 编译器能否正确处理跨阶段优化,作者提出 MopFuzzer:在模糊测试中最大化运行时优化交互。它实现 13 个 mutator,迭代作用于同一程序点以触发特定优化,并利用记录编译器优化行为的 profile 数据引导测试,生成能最大化优化行为及其交互的变异体,再通过差分测试校验优化代码正确性。评估向 OpenJDK 与 OpenJ9 提交了 59 个缺陷报告。

问题
如何验证 JVM 编译器在多优化阶段交互下仍能正确优化,避免因阶段结果被破坏而崩溃或产生不可预期行为。
方法
提出 MopFuzzer,通过 13 个 mutator 迭代变异同一程序点,并用记录优化行为的 profile 数据引导模糊测试以最大化优化交互,结合差分测试检查优化后代码。
评估
在广泛使用的生产 JVM OpenJDK 和 OpenJ9 上评估,最终提交了 59 个缺陷报告。
原文摘要(Abstract)

This paper introduces the concept of optimization interaction, which refers to the practice in modern compilers where multiple optimization phases, such as inlining, loop unrolling, and dead code elimination, are not completed in a one-off sequential order while being interacted instead. Therefore, while optimizing a certain phase, the compiler needs to ensure that the results of other optimization phases will not be disrupted, as this could lead to compiler crashes or unpredictable results. To verify whether compilers can correctly handle the optimization process across various phases, we propose MopFuzzer, which aims at maximizing runtime optimization interactions during fuzzing. Specifically, it encourages the JVM to perform multi-stage optimizations and verifies the correctness of the compiler's optimized code through differential testing. Currently, MopFuzzer has implemented 13 mutators, and each is intended to trigger a certain optimization behavior. Such mutators are applied iteratively to the same program point, aiming to maximize optimization interactions. Subsequently, the testing process is guided by a novel method based on profile data, which records the optimization behaviors performed by the compiler. The guidance enables MopFuzzer to generate mutants that are able to maximize optimization behaviors and their interactions. Our evaluation has led to 59 bug reports for widely used production JVMs, OpenJDK and OpenJ9.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{Xie0Q024,
  title = {Validating JVM Compilers via Maximizing Optimization Interactions},
  author = {Zifan Xie and Ming Wen and Shiyu Qiu and Hai Jin},
  booktitle = {ASPLOS},
  year = {2024},
  doi = {10.1145/3622781.3674188}
}