llvm-apr-benchmark
收藏Hugging Face2025-02-14 更新2025-02-15 收录
下载链接:
https://huggingface.co/datasets/dtcxzyw/llvm-apr-benchmark
下载链接
链接失效反馈官方服务:
资源简介:
LLVM APR Benchmark是一个大规模的自动化程序修复基准测试,专注于真实世界中的LLVM中端错误。该数据集包含从GitHub问题中收集的已修复LLVM中端错误,涵盖崩溃、误编译和挂起三种类型的错误。每个问题都包括问题描述、测试用例、参考补丁和一些提示信息。数据集的目的是评估大型语言模型和自动程序修复技术在修复大规模、真实世界的C/C++项目中的错误方面的有效性。
创建时间:
2025-02-02
搜集汇总
数据集介绍

构建方式
该数据集通过收集自2024年1月1日以来GitHub上修复的LLVM中间件bug,每种类型的bug(崩溃、误编译、卡死)均通过特定的测试命令和一个小的LLVM文本IR来触发,构建出了一个大规模的自动化程序修复基准数据集。
特点
数据集特点在于聚焦于真实的LLVM中间件bug,涵盖了多种bug类型,提供了详细的bug定位提示和修复补丁,以及针对每个bug的最小可重现测试用例。此外,数据集还提供了丰富的元数据,如bug类型、组件、文件和函数级别的位置信息等。
使用方法
用户需先设置好相关环境变量,安装必要的依赖,然后可以使用提供的helper模块与LLVM及数据集进行交互。通过reset、build、check_fast和check_full等函数,用户可以构建测试循环来自动化修复过程,并使用LLM和APR技术进行bug修复的实验和研究。
背景与挑战
背景概述
LLVM APR Benchmark 是一个大规模的自动化程序修复基准,专注于现实世界中LLVM中间端的错误。该数据集由Yingwei Zheng创建于2025年,旨在利用大型语言模型和自动化程序修复技术自动修复LLVM编译器中的真实错误。LLVM作为学术界和工业界广泛使用的编译器基础设施,其内在复杂性导致了众多边缘情况下的问题。此基准的构建,不仅为软件工程研究人员提供了研究LLVM中自动修复技术的新途径,也为LLVM社区贡献了理解和修复大型C/C++项目错误的宝贵资源。
当前挑战
该数据集在构建和研究中面临的挑战包括:1) 自动化修复LLVM编译器中的错误,其难度超出了现有的自动化程序修复基准,因为LLVM具有庞大的代码库、复杂的逻辑、悠久的历史,以及需要领域特定知识;2) 在保证修复质量的同时,如何有效地利用大型语言模型和自动化技术进行错误定位和修复,以及如何处理在构建过程中遇到的技术难题,如代码的复杂性、测试的全面性以及修复的准确性等。
常用场景
经典使用场景
该数据集的典型应用场景在于自动化程序修复(APR)领域,特别是针对大型且复杂的编译器项目,如LLVM。研究人员可以利用此数据集对APR技术进行训练和评估,以自动识别并修复编译器中存在的错误,包括崩溃、误编译和卡死等问题。
解决学术问题
该数据集解决了传统手动程序修复过程中耗时且枯燥的问题,通过自动化技术,显著减轻了维护者的工作负担。同时,它为学术研究提供了一个大规模、现实世界的C/C++项目上的APR技术验证平台,有助于推动编译器测试与修复技术的发展。
衍生相关工作
基于该数据集,已经衍生出一些经典的工作,如使用深度学习模型来自动化修复编译器错误的研究。这些工作不仅进一步证明了数据集的价值,也为后续的编译器错误自动修复研究提供了坚实的基础。
以上内容由遇见数据集搜集并总结生成



