This tool uses templates, MCMC and a mixed approach to synthetize IR transformations for assembly instructions (currently only supporting x86_64).
Slides from Ekoparty: IR transformation synthesis for assembly instructions
Runs with Rust >= 1.7 and requires the following libraries:
- libz-dev
- libedit-dev
- libcapstone-dev
- llvm-3.8-dev (or 3.7)
- Automated Synthesis of Symbolic Instruction Encodings from I/O Samples: Paper
- Stochastic Superoptimization: Paper
- x86_64 support
- ARM support (synthir_execute)
- Mips support (synthir_execute)
- Finish Floating point support (SMT and emulator)
- Add back mixed approach
- Extend available templates
- Transform our IR to LLVM (synthir_llvm)
- Clean