murodbek/bringup_asm
BringUpBench C and Assembly This dataset pairs C programs from BringUpBench 1.9 with assembly generated by Clang 17 for four CPU targets and seven optimization levels. It is intended for research on compilation, decompilation, assembly understanding, and cross-architecture code translation. Dataset structure The dataset contains 108 programs. Each optimization level is stored as a separate Hugging Face split, with 108 rows per split. These are compiler… See the full description on the dataset page: https://huggingface.co/datasets/murodbek/bringup_asm.
BringUpBench C and Assembly
This dataset pairs C programs from BringUpBench 1.9 with assembly generated by Clang 17 for four CPU targets and seven optimization levels. It is intended for research on compilation, decompilation, assembly understanding, and cross-architecture code translation.
Dataset structure
The dataset contains 108 programs. Each optimization level is stored as a separate Hugging Face split, with 108 rows per split.
These are compiler configurations, not predefined training, validation, or test sets. The same 108 tasks appear in every split, so users should split by task_name before training to avoid data leakage across optimization levels.
Each row has the following fields:
Usage
Load every optimization level:
from datasets import load_dataset
dataset = load_dataset("murodbek/bringup_asm")
print(dataset)
example = dataset["O2"][0]
print(example)Load only one optimization level:
from datasets import load_dataset
dataset = load_dataset("murodbek/bringup_asm", split="O2")Dataset creation
For each BringUpBench program, the primary source file (<task_name>/<task_name>.c) was compiled to assembly with Clang 17. BringUpBench headers were made available during compilation, and TARGET_HOST and TARGET_PERFHOOKS were defined.
The architecture-specific compiler options were:
x86: -target x86_64-unknown-linux-gnu -masm=intel
arm_linux: -target aarch64-linux-gnu
riscv: -target riscv64-unknown-linux-gnu -march=rv64gc -mabi=lp64d
arm_apple: -target arm64-apple-darwinLinux-targeted and Apple-targeted outputs were generated separately, joined on task_name and source_code, and sorted by task name.
Important notes
source_codecontains the primary C translation unit, not every header or support file used by the original benchmark.- The assembly may reference BringUpBench runtime functions or external symbols. A row is therefore not necessarily a standalone, linkable program by itself.
- Results represent one compiler family and version: Clang 17. Assembly produced by other compilers or versions may differ substantially.
- Architecture columns should not be assumed to have identical instruction-by-instruction behavior or formatting, even though they originate from the same C source.
- Because the same programs occur at every optimization level, random row-level splitting across the full dataset can leak the same source program into both training and evaluation sets.
Source and license
The source programs come from toddmaustin/bringup-bench, version 1.9. BringUpBench states that portions developed by its benchmark team are copyright 2021–2024 and distributed under the Apache License 2.0. Some programs were adapted from other projects; users should retain and review any notices associated with those individual sources.
If you use this dataset, please also credit the original BringUpBench project and its contributors.
