LLSC: a parallel symbolic execution compiler for LLVM IR
LLSC: a parallel symbolic execution compiler for LLVM IR
复制标题
DOI:
10.1145/3468264.3473108
复制
发表时间:
2021-08
期刊:
影响因子:
--
通讯作者:
Guannan Wei;Shangyin Tan;Oliver Bračevac;Tiark Rompf
中科院分区:
文献类型:
--
作者:
Guannan Wei;Shangyin Tan;Oliver Bračevac;Tiark Rompf
We present LLSC, a prototype compiler for nondeterministic parallel symbolic execution of the LLVM intermediate representation (IR). Given an LLVM IR program, LLSC generates code preserving the symbolic execution semantics and orchestrating solver invocations. The generated code runs efficiently, since the code has eliminated the interpretation overhead and explores multiple paths in parallel. To the best of our knowledge, LLSC is the first compiler for fork-based symbolic execution semantics that can generate parallel execution code. In this demonstration paper, we present the current development and preliminary evaluation of LLSC. The principle behind LLSC is to automatically specialize a symbolic interpreter via the 1st Futamura projection, a fundamental connection between interpreters and compilers. The symbolic interpreter is written in an expressive high-level language equipped with a multi-stage programming facility. We demonstrate the run time performance through a set of benchmark programs, showing that LLSC outperforms interpretation-based symbolic execution engines in significant ways.