five

llvm-ml/ComPile

收藏
Hugging Face2024-04-03 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/llvm-ml/ComPile
下载链接
链接失效反馈
官方服务:
资源简介:
ComPile数据集包含超过2.7TB的LLVM中间表示(IR)代码,涵盖了C/C++、Rust、Swift和Julia等编程语言。该数据集是通过LLVM代码生成工具从生产级程序中提取的,并以bitcode格式分发。数据集的使用方法包括通过HuggingFace的datasets库加载数据,并提供了流式加载和部分加载的示例。数据集的每一行包含一个LLVM-IR模块及其元数据,如许可证信息和源代码语言。数据集的构建过程在相关论文中有详细描述,并且数据集的使用受到项目许可证的约束。

ComPile dataset contains over 2.7 TB of LLVM Intermediate Representation (IR) code, covering programming languages such as C/C++, Rust, Swift, and Julia. This dataset is extracted from production-grade programs via LLVM code generation tools and distributed in bitcode format. The dataset can be loaded using the Hugging Face Datasets library, with accompanying examples for both streaming and partial loading. Each row in the dataset contains an LLVM-IR module along with its metadata, such as license information and source programming language. The construction process of this dataset is detailed in the relevant paper, and the usage of the dataset is subject to the constraints of the project's license.
提供机构:
llvm-ml
原始信息汇总

数据集概述

数据集名称

ComPile

数据集大小

2.7TB

许可证类型

开源许可证

数据内容

  • 源代码编译至文本形式的LLVM中间表示(IR)
  • 涵盖语言:C/C++, Rust, Swift, Julia

数据收集方法

通过语言的包管理器或直接通过编译器,使用专为LLVM编译基础设施设计的集合工具,从生产级程序中提取中间表示数据。

搜集汇总
数据集介绍
main_image_url
构建方式
在编译器工程领域,构建高质量的中间表示数据集对于优化和代码生成研究至关重要。ComPile数据集通过集成LLVM编译基础设施,从C/C++、Rust、Swift和Julia等生产级程序的源代码中系统性地提取LLVM中间表示。具体而言,研究团队利用自定义的数据收集工具,在编译过程中捕获位码形式的IR,随后进行去重和许可过滤,最终形成包含超过2.7TB文本IR的规范化数据集,其构建过程严格遵循可复现的科学方法。
特点
作为当前规模最大的LLVM中间表示数据集,ComPile涵盖了多种主流编程语言,呈现出显著的多样性与代表性。数据集以压缩位码格式存储,不仅节省存储空间,还可通过标准工具链转换为文本IR,便于后续处理。其独特之处在于每个模块均附带完整的元数据,包括许可信息、源码包来源及编程语言标签,为研究提供了丰富的上下文信息。此外,数据集经过精心去重和许可筛选,确保了数据的纯净性与合规性。
使用方法
研究人员可通过HuggingFace的datasets库便捷地加载ComPile数据集,支持全量下载或流式读取以适应不同计算环境。加载后,数据集以行为单位提供LLVM-IR模块及其元数据,用户可直接迭代访问或进行过滤映射操作。若需获取文本形式的IR,可利用llvm-dis工具将位码实时反汇编。这种灵活的使用方式使得数据集能够高效服务于代码生成、程序分析及编译器优化等前沿研究任务。
背景与挑战
背景概述
在程序分析与机器学习交叉领域,中间表示(IR)数据集对于推动编译器优化与代码生成研究至关重要。ComPile数据集由LLVM-ML团队于2023年创建,核心研究人员包括Aiden Grossman、Ludger Paehler与Johannes Doerfert等,其研究聚焦于从生产级源代码中大规模提取LLVM中间表示,旨在解决传统代码数据集在编译器内部表示层面的稀缺性问题。该数据集涵盖C/C++、Rust、Swift与Julia五种编程语言,总计提供超过2.7TB的文本化LLVM-IR数据,为基于大语言模型的代码优化、跨语言程序分析及自动化编译器设计提供了前所未有的实证基础,显著提升了该领域数据驱动的研究方法可行性。
当前挑战
ComPile数据集所针对的核心领域挑战在于如何利用机器学习技术优化编译器中间表示的生成与转换,这一任务要求模型深入理解代码的语义结构与低级指令逻辑。构建过程中的技术挑战尤为突出:首先,需设计通用采集工具以适配多样化的语言编译工具链,确保从包管理器或编译器直接提取IR的稳定性;其次,面对超过990GB的原始比特码数据,必须实施高效的去重算法与许可证合规性过滤,最终将数据规模压缩至602GB,同时维持数据的代表性与法律安全性。此外,将压缩的比特码转换为文本化IR涉及显著的存储扩展,平均膨胀率高达四倍,这对数据存储与传输基础设施提出了严峻考验。
常用场景
经典使用场景
在编译器优化与代码生成领域,ComPile数据集以其海量的LLVM中间表示(IR)代码,为大规模语言模型的训练提供了独特资源。研究者通常利用该数据集进行代码生成模型的预训练或微调,特别是针对多语言编程场景下的IR到源代码或IR到IR的转换任务。通过分析这些从实际生产级项目中提取的中间表示,模型能够学习到跨C/C++、Rust、Swift和Julia等多种语言的底层编译逻辑与优化模式,从而提升在代码补全、程序合成等任务上的性能。
衍生相关工作
围绕ComPile数据集,已催生了一系列探索机器学习与编译技术交叉的创新研究。例如,有工作专注于利用此类IR数据训练专用语言模型,以提升编译器启发式优化的决策质量;另有研究致力于开发能够理解并操作中间表示的神经网络架构,用于程序等价性验证或性能预测。这些衍生工作不仅推动了神经编译器等新兴方向的发展,也为将数据驱动方法引入传统静态程序分析领域开辟了新的路径。
数据集最近研究
最新研究方向
在编译器优化与代码生成领域,ComPile数据集作为首个大规模、多语言的LLVM中间表示(IR)资源,正推动着前沿研究向深度学习驱动的编译器设计迈进。该数据集通过整合C/C++、Rust、Swift和Julia等生产级代码的IR表示,为训练专用语言模型提供了丰富素材,助力于自动化代码优化、跨语言语义理解及硬件感知的代码生成。当前研究热点聚焦于利用此类IR数据训练Transformer架构模型,以提升编译器传递优化、漏洞检测及性能预测的精度,同时探索IR与源代码的联合表示学习,为构建自适应编译工具链奠定基础。这一进展不仅加速了编译技术与人工智能的融合,也为软件工程的高效化与智能化开辟了新路径。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作