03 — Corpus
3.6 million compiled functions, published open
The substrate under the security work: a function-level corpus pairing compiled binaries with their source. Fifteen splits across four instruction-set architectures and four optimisation levels.
The grid is the point. Holding the source constant while varying architecture and optimisation isolates exactly what a model has to see through — the same function, compiled sixteen different ways.
Rows per splitXtest · hugging face datasets-server
Rows per published split, by instruction-set architecture and compiler optimisation level| Architecture | O0 | O1 | O2 | O3 |
|---|
| x64 | 338,560 | 314,448 | 307,495 | no data |
|---|
| x86 | 290,157 | 260,579 | 240,938 | 248,528 |
|---|
| ARM | 261,647 | 236,391 | 232,781 | 221,215 |
|---|
| MIPS | 184,382 | 156,580 | 154,921 | 147,720 |
|---|
fewer rowsmore
Hover a cellRow counts for each architecture / optimisation pair.
Total per architecture
x64960,5033 splits
x861,040,2024 splits
ARM952,0344 splits
MIPS643,6034 splits
One gap is real: x64 at O3 exists as a repository with no data files in it — the sixteenth cell has not been built. Beyond the grid sit four obfuscation sets built with OLLVM-style passes (bogus control flow, control-flow flattening, instruction substitution, and an unobfuscated control at roughly 10.7k binaries each), prompt-formatted variants of nearly every split for instruction tuning, and consolidated 40k and 30k training sets. Published rows total 3,596,342.