一句话:提出 LLSC,首个能为基于 fork 的符号执行语义生成并行执行代码的 LLVM IR 编译器。
符号执行是程序分析的重要技术,但传统实现常依赖解释器,带来解释开销,且难以并行探索多条路径。LLSC 是一个面向 LLVM 中间表示(IR)的原型编译器:给定 LLVM IR 程序,它生成保持符号执行语义并编排求解器调用的代码,从而实现非确定性的并行符号执行。生成代码因消除了逐指令解释开销,并且能够并行探索多条路径,因而运行高效。作者称,据其所知,LLSC 是首个能为基于 fork 的符号执行语义生成并行执行代码的编译器。
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.