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 forfilecheckand test fixtures.interpreter: Interpreter forsonatinaIR, this is mainly for testing transformation passes.ir:sonatinaintermediate representation.object: Provides abstract object file format for linker.parser: Parser forsonatinaIR, this is mainly forfilechecktest.triple: Provides target triple for smart contracts.verifier: Verifier forsonatinaIR, this is mainly for testing transformation passes.
- IR verifier
- ISel DAG
- Global Stack allocation for EVM
- Intrinsics
- Object
- Linker
Run test_all.sh.