Skip to content

Releases: HECer/llvm-vulkan

LLVM Vulkan 1.1.0 - Drop-In Standard Passes & Clang Integration

Choose a tag to compare

@HECer HECer released this 02 Nov 22:13

LLVM Vulkan 1.1.0 — Drop-in Standard LLVM Passes (GVN, CSE, CFG, DCE) & Clang Integration

LLVM Vulkan version 1.1.0 expands the project from a scoped compute prototype into a full, drop-in replacement pipeline for LLVM middle-end optimization passes, with automatic hook-in support for Clang -O2/-O3 compilations.

What's New in 1.1.0

  • Cross-Block Dominator GVN (lv-gvn / gvn): Connected the Vulkan GPU dense dominator matrix solver (dominators_rounds.comp, dominators_local_banked.comp) into GVNPass to eliminate common subexpressions across basic blocks dominated by the definition.
  • Commutative CSE Canonicalization: Normalized operand IDs for commutative operations (add, mul, and, or, xor, eq, ne) before hashing so that reversed operand pairs (a + b and b + a) produce matching candidate hashes and are deduplicated.
  • Drop-in Standard Pass Aliasing: Standard LLVM pass names (early-cse, gvn, simplifycfg, dce, adce, instcombine) are registered as aliases to allow direct invocation in standard -passes=... pipelines.
  • Automatic Clang Pipeline Integration: Implemented EP (Extension Point) callbacks (registerPipelineStartEPCallback, registerPipelineEarlySimplificationEPCallback, registerOptimizerLastEPCallback) so that clang -fpass-plugin=LLVMVulkan.so -O2 automatically hooks into the compilation pipeline when LV_AUTO_INSERT=1.
  • End-to-End Native Compilation Verification: Validated full pipeline from opt -> llc -> gcc -> native binary execution with 100% semantic equivalence.
  • Test Suite Expansion: Added tests/llvm/gvn.ll and tests/llvm/cse_commutative.ll. All 19 fixtures, 8,192 constant oracle cases, and semantic fuzzing passed with 0 errors.

Usage Example

# Standard opt invocation using standard pass names:
opt -load-pass-plugin=LLVMVulkan.so -passes='early-cse,gvn,simplifycfg,dce' input.ll -S -o output.ll

# Automatic Clang -O2 integration:
export LV_AUTO_INSERT=1
clang -fpass-plugin=LLVMVulkan.so -O2 -c main.c -o main.o

Verified Assets

  • LLVMVulkan-1.1.0-Windows-AMD64.zip (MSVC Release static library, tools, headers, CMake configs)
  • LLVMVulkan-1.1.0-Linux-x86_64.tar.gz (Linux shared library, tools, headers, CMake configs)
  • SHA256SUMS (checksum manifest)

LLVM Vulkan 1.0.0

Choose a tag to compare

@HECer HECer released this 02 Nov 11:36

LLVM Vulkan 1.0 is the stable source release of the documented C++ bulk-compute
API and scoped LLVM passes. It preserves the conservative CPU default and
explicit Vulkan selection. It is not a complete LLVM port or a claim that
compilation is faster on every workload.

Live Online Presentation and Explorer

Both the slide deck and benchmark explorer are also included directly inside the release packages for 100% offline usage without a web server.

Included

  • Relocatable LLVMVulkan::compute CMake package, public/version headers, static
    library, benchmark CLI and embedded SPIR-V. Shader validation is required by default.
  • Integer folding through 64 bits, graph reachability, dense dominators, gen/kill
    liveness, unsigned scan/sort and record hashing, plus the documented LLVM passes.
  • Offline 12-slide HTML project presentation, interactive 109-row benchmark
    explorer with CSV export, and editable SVG plus PNG/ICO project branding.
  • All prior performance evidence, including CPU wins and source/binary hashes.

Validation

  • Clean Windows/MSVC Release: all 9 CTest gates, three large RTX 5090 seeds at
    299,119 assertions each, plus an unpacked-distribution external CMake consumer.
  • Linux/lavapipe with matching LLVM 21.1.8: optimized/fallback core tests,
    17 fixtures per mode, 8,192 oracle cases and dynamic semantic comparison.
  • Offline desktop/mobile checks across all 12 slides and 26 graph selections per
    viewport; keyboard navigation, printing and CSV export checked.
  • Matching GitHub Linux/LLVM 20 CI, relocated consumer and CPack: https://github.com/HECer/llvm-vulkan/actions/runs/41373075339.

Downloads and SHA-256 Checksums

c91d610b8ca8e6571d594531efff70555e3c6795957aa531a635ea04f179178b  LLVMVulkan-1.0.0-Linux-x86_64.tar.gz
f22c2e9327571bd530bee7813f266b3e86274ad8258294a06c547580ab8c6486  LLVMVulkan-1.0.0-Windows-AMD64.zip

The Windows ZIP contains the standalone core; Vulkan loader/driver and the
matching MSVC runtime are required. The Linux TGZ comes from the Ubuntu 24.04
LLVM 20/lavapipe CI job. Any included LLVM module is tied to that exact LLVM
installation; rebuild against your own host LLVM when it differs.

Both packages include the offline presentation under
share/doc/LLVMVulkan/docs/project-presentation.html, the benchmark explorer
under share/doc/LLVMVulkan/docs/graphs/benchmarks.html, and the icon/wordmarks
under share/doc/LLVMVulkan/docs/assets.

See the release guide
for the source compatibility contract, build instructions and support matrix.
Assets include AI-assisted design disclosure; no cryptographic authorship or signer-trust claim is made.

Physical AMD/Intel validation, native Windows LLVM plugin ABI, a fresh LLVM 24
build and whole-compiler GPU speedup remain outside the verified release scope.