v0.9.2
xollvm — v0.9.2
Built against stock LLVM release/22.x.
Fixes
- strenc: materialize constexpr users of encrypted string globals on the PHI predecessor edge. PHI incoming-value uses were being materialized in the PHI's own block, pushing the PHI off the top and producing invalid IR (
PHI nodes not grouped at top of basic block); they are now inserted before the incoming predecessor's terminator, which always dominates the edge use. - strenc: skip encryption for strings whose address is
ptrtoint'd — identity would silently diverge once uses are rewritten to a per-call stack buffer. - strenc: fix stat counters always printing
0in Release builds (STATISTIC→ALWAYS_ENABLED_STATISTIC).
Docs
- DEV.md: reworked against current source — replaced the retired in-tree
PassRegistry.defmodel with the fork-freeregistration/PluginEntry.cpp+ObfPasses.incmechanism; corrected the pipeline ordering table (vcall runs after flattening, not before); replaced stale VM opcode-count and hardening-layers snapshots with pointers toVMPassConfig/VM.md.
Artifacts
| File | What | OS |
|---|---|---|
xollvm-linux-Release.tar.zst |
clang/opt with obfuscator built in | Linux x86_64 |
xollvm-windows-Release.7z |
clang/opt with obfuscator built in | Windows x64 |
Obfuscator-linux-x64.so |
loadable -fpass-plugin |
Linux x86_64 |
Cross-compilation backends
-DLLVM_TARGETS_TO_BUILD="X86;AArch64;ARM;RISCV" — X86, AArch64, ARM, RISC-V.