llvm-opt-benchmark
llvm-opt-benchmark copied to clipboard
An LLVM IR dataset for data-driven compiler optimization research
LLVM Opt Benchmark
LLVM Opt Benchmark is an LLVM IR dataset for data-driven compiler optimization research. This repository is also used by LLVM developers to evaluate the impact of their patches on real-world applications.
Don't submit PR to add new benchmarks. You can request new open-source C/C++/Rust repos here.
Please cite this work with the following BibTex entry:
@misc{opt-benchmark,
title = {LLVM Opt Benchmark},
url = {https://github.com/dtcxzyw/llvm-opt-benchmark},
author = {Yingwei Zheng},
year = {2023},
}
Online services (previously hosted by PLCT Lab, ISCAS/currently hosted by SUSTech ARiSE Lab)
Special Acknowledgement: Thank @goldsteinn for providing additional computational resources to meet the growing demand for testing!
-
Fuzzy DAG matching
Please file an issue to provide LLVM IR with a single function. I will add the
greplabel to trigger CI.Example: https://github.com/dtcxzyw/llvm-opt-benchmark/issues/1072
-
Middle-end optimization pre-commit testing
Ping me if you want to see what is affected by your PR. It is useful for reviewers to find potential performance regressions and new optimization opportunities.
For convenience, all llvm members are authorized to request pre-commit tests in https://github.com/dtcxzyw/llvm-opt-benchmark/issues/1312. Some basic PR editing commands are also supported by leaving a comment starts with
/:/close: Close the PR/reopen: Reopen the PR/add-label labels: Add labels (separated by comma). Available labels:reviewed,regression,crash,hangandmiscompilation./remove-label labels: Remove labels.
-
Codegen pre-commit testing
See also llvm-codegen-benchmark.
-
Weekly coverage report:
https://dtcxzyw.github.io/llvm-opt-benchmark/
Benchmark List
Currently, this repository contains the following libraries/applications:
| Name | Language | Stars | Last Updated |
|---|---|---|---|
| abc | C | 2025-01-02 | |
| bdwgc | C | 2025-02-01 | |
| box2d | C | 2025-01-27 | |
| brotli | C | 2025-01-31 | |
| c3c | C | 2024-04-16 | |
| chibicc | C | 2020-12-07 | |
| cjson | C | 2024-09-23 | |
| clamav | C | 2025-02-03 | |
| cmake | C | 2025-02-04 | |
| coremark | C | 2023-01-24 | |
| cpython | C | 2025-02-03 | |
| curl | C | 2025-02-03 | |
| darktable | C | 2025-02-03 | |
| ffmpeg | C | 2025-05-19 | |
| flac | C | 2025-02-03 | |
| freetype | C | 2025-01-28 | |
| git | C | 2025-02-03 | |
| graphviz | C | 2025-02-10 | |
| hdf5 | C | 2025-02-14 | |
| hwloc | C | 2025-02-13 | |
| jemalloc | C | 2025-02-13 | |
| jq | C | 2025-02-16 | |
| kcp | C | 2024-12-01 | |
| lean4 | C | 2025-05-20 | |
| libdeflate | C | 2025-01-20 | |
| libevent | C | 2025-02-03 | |
| libjpeg-turbo | C | 2024-12-18 | |
| libpng | C | 2025-02-12 | |
| libquic | C | 2016-09-22 | |
| libsodium | C | 2025-01-26 | |
| libuv | C | 2025-02-17 | |
| libwebp | C | 2025-01-30 | |
| linux | C | 2024-02-29 | |
| lua | C | 2025-01-29 | |
| luajit | C | 2025-01-13 | |
| lvgl | C | 2025-02-17 | |
| lz4 | C | 2025-02-03 | |
| memcached | C | 2025-02-04 | |
| mimalloc | C | 2025-02-17 | |
| miniaudio | C | 2023-11-15 | |
| nanosvg | C | 2024-12-19 | |
| nuklear | C | 2025-02-07 | |
| nuttx | C | 2024-03-04 | |
| ompi | C | 2025-02-14 | |
| oniguruma | C | 2025-02-11 | |
| openblas | C | 2025-02-17 | |
| openssl | C | 2025-02-18 | |
| osqp | C | 2025-02-13 | |
| php-src | C | 2025-02-17 | |
| portaudio | C | 2025-02-08 | |
| postgres | C | 2025-02-18 | |
| qemu | C | 2025-02-16 | |
| qoi | C | 2025-02-12 | |
| quickjs | C | 2024-07-27 | |
| raylib | C | 2025-02-17 | |
| redis | C | 2025-02-16 | |
| riscv-isa-sim | C | 2025-02-12 | |
| ruby | C | 2025-02-18 | |
| sdl | C | 2025-05-19 | |
| slurm | C | 2025-02-17 | |
| sqlite | C | 2025-02-18 | |
| stb | C | 2024-11-08 | |
| sundials | C | 2024-12-20 | |
| wireshark | C | 2025-02-18 | |
| wolfssl | C | 2025-02-17 | |
| yosys | C | 2025-03-01 | |
| yyjson | C | 2025-02-12 | |
| zlib | C | 2025-02-13 | |
| zstd | C | 2025-02-13 | |
| zxing-cpp | C | 2025-02-19 | |
| abseil-cpp | C++ | 2025-02-15 | |
| annoy | C++ | 2024-07-28 | |
| arrow | C++ | 2025-02-17 | |
| assimp | C++ | 2025-02-17 | |
| boost | C++ | 2024-10-25 | |
| bullet3 | C++ | 2025-01-29 | |
| casadi | C++ | 2025-02-18 | |
| ceres-solver | C++ | 2025-02-17 | |
| cpp-httplib | C++ | 2025-02-17 | |
| crow | C++ | 2025-02-10 | |
| csmith | C++ | 2023-11-02 | |
| cvc5 | C++ | 2025-02-17 | |
| cxxopts | C++ | 2025-01-14 | |
| double-conversion | C++ | 2025-02-14 | |
| draco | C++ | 2025-01-28 | |
| duckdb | C++ | 2025-02-18 | |
| eastl | C++ | 2023-08-16 | |
| entt | C++ | 2025-02-14 | |
| faiss | C++ | 2025-02-14 | |
| flatbuffers | C++ | 2025-02-10 | |
| fmt | C++ | 2025-02-14 | |
| folly | C++ | 2025-02-17 | |
| g2o | C++ | 2025-02-09 | |
| glog | C++ | 2025-02-16 | |
| glslang | C++ | 2024-06-25 | |
| gromacs | C++ | 2025-02-24 | |
| grpc | C++ | 2025-02-24 | |
| gsl | C++ | 2025-02-14 | |
| harfbuzz | C++ | 2025-02-23 | |
| hermes | C++ | 2023-12-15 | |
| hyperscan | C++ | 2023-04-19 | |
| icu | C++ | 2025-02-21 | |
| imgui | C++ | 2025-02-22 | |
| ipopt | C++ | 2025-02-23 | |
| json | C++ | 2025-02-21 | |
| jsonnet | C++ | 2025-02-23 | |
| libcxx | C++ | 2025-05-20 | |
| libigl | C++ | 2025-05-14 | |
| libphonenumber | C++ | 2025-02-13 | |
| libzmq | C++ | 2024-12-30 | |
| lief | C++ | 2025-02-23 | |
| lightgbm | C++ | 2025-02-24 | |
| llama.cpp | C++ | 2025-02-23 | |
| llvm-project | C++ | 2025-02-03 | |
| lodepng | C++ | 2024-12-28 | |
| luau | C++ | 2025-02-21 | |
| meshlab | C++ | 2024-02-13 | |
| meshoptimizer | C++ | 2025-02-21 | |
| minetest | C++ | 2024-03-26 | |
| mitsuba3 | C++ | 2024-03-22 | |
| mixbox | C++ | 2022-12-16 | |
| mold | C++ | 2025-02-21 | |
| msdfgen | C++ | 2024-01-06 | |
| msgpack-c | C++ | 2025-02-21 | |
| nanobind | C++ | 2025-02-21 | |
| ncnn | C++ | 2025-02-20 | |
| nghttp2 | C++ | 2025-02-18 | |
| ninja | C++ | 2025-02-19 | |
| nix | C++ | 2024-03-06 | |
| node | C++ | 2023-12-17 | |
| nori | C++ | 2023-11-15 | |
| open3d | C++ | 2025-04-03 | |
| open_spiel | C++ | 2024-08-27 | |
| opencc | C++ | 2025-02-12 | |
| opencolorio | C++ | 2025-02-10 | |
| opencv | C++ | 2025-02-25 | |
| openexr | C++ | 2025-02-18 | |
| openimageio | C++ | 2025-02-25 | |
| openjdk | C++ | 2024-07-16 | |
| openusd | C++ | 2024-07-24 | |
| openvdb | C++ | 2023-12-06 | |
| ozz-animation | C++ | 2025-01-19 | |
| pbrt-v4 | C++ | 2025-01-30 | |
| pcg-cpp | C++ | 2022-04-08 | |
| pocketpy | C++ | 2024-06-20 | |
| proj | C++ | 2025-02-22 | |
| protobuf | C++ | 2023-12-15 | |
| proxy | C++ | 2024-05-22 | |
| proxygen | C++ | 2023-12-16 | |
| pugixml | C++ | 2025-02-19 | |
| pybind11 | C++ | 2025-02-20 | |
| quantlib | C++ | 2024-09-10 | |
| quest | C++ | 2025-02-08 | |
| re2 | C++ | 2023-12-14 | |
| readerwriterqueue | C++ | 2024-07-09 | |
| recastnavigation | C++ | 2024-01-28 | |
| rocksdb | C++ | 2025-02-26 | |
| sentencepiece | C++ | 2025-02-27 | |
| simdjson | C++ | 2025-02-21 | |
| snappy | C++ | 2024-08-17 | |
| soc-simulator | C++ | 2024-06-25 | |
| spdlog | C++ | 2025-02-11 | |
| stockfish | C++ | 2024-03-03 | |
| taskflow | C++ | 2025-02-21 | |
| tev | C++ | 2024-01-12 | |
| tinygltf | C++ | 2025-01-22 | |
| tinympc | C++ | 2025-02-11 | |
| tinyobjloader | C++ | 2025-01-29 | |
| tinyrenderer | C++ | 2025-02-21 | |
| tomlplusplus | C++ | 2025-02-27 | |
| vcpkg-tool | C++ | 2025-02-27 | |
| velox | C++ | 2023-12-15 | |
| verilator | C++ | 2025-03-02 | |
| wasmedge | C++ | 2024-07-15 | |
| xgboost | C++ | 2025-03-01 | |
| yalantinglibs | C++ | 2023-12-17 | |
| yaml-cpp | C++ | 2025-01-24 | |
| yoga | C++ | 2025-02-27 | |
| z3 | C++ | 2025-02-28 | |
| zfp | C++ | 2025-02-12 | |
| actix-web | Rust | 2024-04-15 | |
| anki | Rust | 2024-06-24 | |
| clap | Rust | 2024-03-01 | |
| coreutils | Rust | 2024-04-23 | |
| deku | Rust | 2025-05-16 | |
| delta-rs | Rust | 2024-04-23 | |
| diesel | Rust | 2024-03-01 | |
| egg | Rust | 2024-08-30 | |
| elfshaker | Rust | 2025-05-09 | |
| fish-shell | Rust | 2025-05-19 | |
| foundations | Rust | 2025-05-19 | |
| html5ever | Rust | 2023-09-06 | |
| hyper | Rust | 2024-03-02 | |
| image | Rust | 2024-02-22 | |
| influxdb | Rust | 2024-03-01 | |
| jiff | Rust | 2025-05-18 | |
| json | Rust | 2024-01-11 | |
| just | Rust | 2024-04-01 | |
| log | Rust | 2024-02-29 | |
| logos | Rust | 2024-06-10 | |
| meilisearch | Rust | 2024-06-25 | |
| mini-lsm | Rust | 2024-02-26 | |
| mio | Rust | 2024-03-01 | |
| nom | Rust | 2024-04-21 | |
| ockam | Rust | 2024-04-22 | |
| pingora | Rust | 2025-05-09 | |
| polars | Rust | 2025-05-19 | |
| pyo3 | Rust | 2024-06-24 | |
| qdrant | Rust | 2024-03-19 | |
| quiche | Rust | 2025-05-19 | |
| quinn | Rust | 2025-05-20 | |
| raft-rs | Rust | 2025-02-28 | |
| rand | Rust | 2024-02-18 | |
| rayon | Rust | 2024-02-27 | |
| regex | Rust | 2024-01-10 | |
| ring | Rust | 2024-03-03 | |
| ripgrep | Rust | 2024-03-27 | |
| ropey | Rust | 2024-04-08 | |
| ruff | Rust | 2025-05-19 | |
| rust-analyzer | Rust | 2024-04-22 | |
| rust-base64 | Rust | 2024-03-01 | |
| rustfmt | Rust | 2024-03-04 | |
| rustls | Rust | 2024-03-07 | |
| salsa | Rust | 2025-05-19 | |
| serde | Rust | 2024-01-08 | |
| smol | Rust | 2024-03-04 | |
| softposit-rs | Rust | 2022-12-14 | |
| statrs | Rust | 2024-06-24 | |
| syn | Rust | 2024-01-13 | |
| tikv | Rust | 2025-05-20 | |
| tokenizers | Rust | 2024-05-06 | |
| tokio | Rust | 2024-03-04 | |
| tree-sitter | Rust | 2024-03-08 | |
| turborepo | Rust | 2024-10-03 | |
| typst | Rust | 2024-03-25 | |
| unicode-normalization | Rust | 2024-03-03 | |
| uv | Rust | 2025-05-19 | |
| wasmi | Rust | 2025-05-17 | |
| wasmtime | Rust | 2024-04-22 | |
| zed | Rust | 2024-10-04 |