Sonatina is a compiler backend specialized for smart contracts.
Sonatina is really early stage in development, so do NOT use it for production!
sonatina
consists of several crates.
codegen
: The main crate ofsonatina
, providing builder for IR modules and functions, optimization passes, instruction selection DAG, and binary code emitting.filecheck
: Provides test runner forfilecheck
and test fixtures.interpreter
: Interpreter forsonatina
IR, this is mainly for testing transformation passes.ir
:sonatina
intermediate representation.object
: Provides abstract object file format for linker.parser
: Parser forsonatina
IR, this is mainly forfilecheck
test.triple
: Provides target triple for smart contracts.
- IR verifier
- ISel DAG
- Global Stack allocation for EVM
- Intrinsics
- Object
- Linker
Run test_all.sh
.