一句话:提出ReFuzzer,用本地LLM反馈循环修正生成程序,将编译器模糊测试程序有效率提升至约97%并提高覆盖率。
现有基于LLM的编译器模糊测试器常生成语法或语义无效的测试程序,限制了其测试编译器优化和后端组件的能力。ReFuzzer通过本地LLM构建反馈循环,在程序执行前系统检测并修正编译期与运行期违规(如除零、数组越界访问),过滤错误程序,从而生成多样且有效的测试程序。作者在LLVM/Clang上针对黑盒、灰盒和白盒模糊测试进行评估。结果显示,测试程序有效率从47.0–49.4%提升至96.6–97.3%,每个测试程序平均处理时间为2.9–3.5秒(双GPU机器)。此外,重模糊显著提高了关键优化和IR生成组件的代码覆盖率,例如向量化覆盖率在黑盒、灰盒和白盒模糊测试中分别获得9.2%、2.3%和7.1%的绝对提升。
Existing LLM-based compiler fuzzers often produce syntactically or semantically invalid test programs, limiting their effectiveness in exercising compiler optimisations and backend components. We introduce ReFuzzer, a framework for refining LLM-generated test programs by systematically detecting and correcting compilation and runtime violations (e.g. division by zero or array out-of-bounds accesses). ReFuzzeremploys a feedback loop with a local LLM to validate and filter erroneous programs before execution, improving fuzzing effectiveness beyond crash detection and enabling the generation of diverse yet valid test programs.We evaluated ReFuzzer’s effectiveness across black-, grey-and white-box fuzzing approaches targeting LLVM/Clang. ReFuzzerimproved test programs’ validity from 47.0–49.4% to 96.6–97.3%, with an average processing time of 2.9–3.5 s per test program on a dual-GPU machine. Further, refuzzing significantly increased code coverage in critical optimisation and IR generation components. For example, vectorization coverage had an absolute of 9.2%, 2.3%, and 7.1% improvement in black-, grey-, and white-box fuzzing, enhancing testing effectiveness.
DOI 原文 ·
@inproceedings{paperbot9380,
title = {ReFuzzer: Feedback-Driven Approach to Enhance Validity of LLM-Generated Test Programs},
author = {Iti Shree and Karine Even-Mendoza and Tomasz Radzik},
booktitle = {ASE},
year = {2025},
doi = {10.1109/ase63991.2025.00364}
}