solx: an LLVM-based Solidity toolchain
summary
An LLVM-based Solidity compiler pipeline that reuses 95% of existing compiler code and delivers a working backend in roughly a year, translating ULE/EVM assembly into LLVM IR and back to EVM-quality bytecode. It fixes stack-too-deep by moving spills to the heap with claimed 100% accuracy, runs upstream Solidity tests plus fuzzers, shows ~11% smaller median bytecode vs solc U and ~13% gas reduction, and yields roughly 3–4x faster average compilation after optimizations.
AI-written summary · about
chapters (14)
- 0:00solx introduction
- 1:29ZkSync VM compiler challenges
- 3:38Reusing LLVM for compiler
- 5:25EVM to LLVM IR translation
- 7:54Public Ethereum compiler expansion
- 9:44LLVM multi-target compilation
- 11:13Stack too deep solution
- 13:20Faster compilation in solx
- 16:54Smaller bytecode for deployment
- 18:41Gas and security improvements
- 20:49Recommendations and community
- 21:32Q&A: LLVM optimizations
- 22:59Q&A: Foundry support
- 23:43Q&A: solx vs Solar
related talks
37mSolidity in 2022: Recent and Planned Features
43mProject Sulong: an LLVM bitcode interpreter on the Graal VM
09mRustc: How I Learned to Respect the Compiler
37mExperimental Solidity
16m`via IR` speedrun
20mSlang Building Solidity Compiler APIs from a Declarative Language Specification
13mBootstrapping a Compiler with Yul
53mLLVM
