Static Binary Translation of Concurrency
Static binary translators recompile machine code from one architecture to another. Such translation is facilitated by decompilers which lift machine code from a source architecture to an intermediate representation (IR). Once a binary is raised to the IR, the existing compiler infrastructure can be used to optimize and generate the code for a target architecture.
In recent times a number of decompilers are developed that raise binaries to the IR of LLVM compiler. For instance llvm-mctoll raises x86 and ARM binaries to LLVM IR. While these tools successfully raise a number of program features, concurrency is poorly supported or not supported at all.
The goal of this project to raise concurrency features and primitives from x86 binaries to LLVM IR using the llvm-mctoll tool. We will evaluate the effectiveness of the translations on various benchmarks of multithreaded programs. Finally, we are interested to contribute the improvements to the main development of the llvm-mctoll static binary translator.
A Retargetable Static Binary Translator for the ARM Architecture. Shen et al. ACM TACO 2014.
On Static Binary Translation of ARM/Thumb Mixed ISA Binaries. Chen et. al. TECS 2017.
LLVM MCTOLL Raising binaries to LLVM IR with MCTOLL (WIP). Yadavalli and Smith. LCTES 2019.
Contacts for the project
- Soham Chakraborty (TU Delft)
Supervisor(s): Soham Chakraborty
Posted: June 05, 2021