Version: 1.6.0 (Phase 3: High-Assurance) Repository: https://github.com/SWORDIntel/DSLLVM
- DSLLVM Build Guide: How to use DSLLVM as your default compiler
- TPM2 Algorithms: 88 cryptographic algorithms reference
Quick Start:
cd tpm2_compat
cmake -S . -B build -DENABLE_HARDWARE_ACCEL=ON
cmake --build buildAutomated installer - Builds and installs DSLLVM, replacing system LLVM:
# System-wide installation (requires sudo)
sudo ./build-dsllvm.sh
# Install to custom prefix (no sudo needed)
./build-dsllvm.sh --prefix /opt/dsllvm
# See all options
./build-dsllvm.sh --helpThe installer automatically:
- β Checks prerequisites
- β Backs up existing LLVM installation
- β Builds DSLLVM with all DSMIL features
- β Creates system symlinks (clang β dsmil-clang, etc.)
- β Sets up environment configuration
- β Verifies installation
Build Types:
Release(default): Optimized production build, faster execution, larger binariesDebug: Full debug symbols, assertions enabled, slower execution, easier debuggingRelWithDebInfo: Optimized with debug info, good for profilingMinSizeRel: Optimized for smallest binary size
sudo apt-get install -y build-essential cmake ninja-build python3 git libssl-devcmake -G Ninja -S llvm -B build \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_PROJECTS="clang;lld" \
-DLLVM_ENABLE_DSMIL=ON \
-DLLVM_TARGETS_TO_BUILD="X86"
ninja -C buildcd tpm2_compat
cmake -S . -B build -DENABLE_HARDWARE_ACCEL=ON
cmake --build build -j$(nproc)DSLLVM is a standard LLVM/Clang toolchain with additional telemetry and metadata collection capabilities.
- Keeps the standard LLVM/Clang toolchain behaviour;
- Adds optional telemetry hooks for build and compilation metrics;
- Can be used as a regular
clang/lldtoolchain with enhanced observability.
If you already know LLVM, you can treat DSLLVM as "LLVM with extra telemetry" rather than a new compiler.
-
β LLVM-first design
- Tracks upstream LLVM closely; core passes and IR semantics are unchanged.
- Can be used as a regular
clang/lldtoolchain.
-
π Telemetry and metadata collection
- Build artefacts can carry compact telemetry metadata for:
- performance/size profiles,
- compilation metrics,
- build-time observability.
- Optional and encoded as normal IR / object metadata.
- Build artefacts can carry compact telemetry metadata for:
Is:
- A minimally invasive extension layer on top of LLVM/Clang/LLD.
- A way to collect telemetry during compilation.
- A place to keep build metrics and metadata close to the code that produced the binaries.
Is not:
- Not a new IR or language.
- Not a replacement for upstream security guidance or crypto libraries.
- Not a mandatory runtime or kernel β it's "just" the compiler side with telemetry.
Recommended: Use the automated installer (./build-dsllvm.sh) for a complete build and system integration. See the Build Guide for details.
DSLLVM follows the standard LLVM build flow:
- Configure with CMake (out-of-tree build directory).
- Build with Ninja or Make.
- Use
clang/clang++/lldas usual.
If you donβt enable any DSMIL/AI options, DSLLVM behaves like a regular LLVM toolchain.
- Core compiler functionality: β usable
- Telemetry and metadata collection: β stable
- Downstream integrations: out of scope for this repo
For most users, DSLLVM can be dropped in as "LLVM with extra telemetry" and left at that.
Note: DSMIL documentation is ignored in this repository and not included in builds.
- DSLLVM-BUILD-GUIDE.md: Default compiler configuration
- tpm2_compat/README.md: TPM2 algorithms reference