一句话:提出多块化并行二进制提升器 Diatom,用数据流摘要与类型感知 IR 链接保可靠性,平均加速 7.45×。
二进制提升把机器码翻译为 LLVM IR,是众多二进制分析系统的基石,但现有提升器因采用“单块式”(monolithic)设计,把全部提升阶段施加在同一个 LLVM 模块上,形成全局环境并强制各 IR 变换间串行依赖,导致处理大型二进制时性能严重受限。本文提出 Diatom,一种基于“多块式”(polylithic)设计的新型并行二进制提升器:它将单一 LLVM 模块分解为多个分区以进行完全并行的提升,同时利用轻量级数据流摘要与类型感知的 IR 链接来避免因切分依赖代码片段而造成的可靠性损失。在 16 个规模从数十 MB 到数 GB 的真实基准上评估,Diatom 相比传统单块式提升器平均加速 7.45×、最高加速 16.8×,并保持提升的可靠性;它能在 10 分钟内完成 Linux 内核二进制的翻译,显著加速上层二进制代码分析流程。
Binary lifting, which translates binary code into LLVM intermediate representations (IRs) through iterative IR transformations for recovering high-level constructs from low-level machine features, is the cornerstone of many binary analysis systems. Therefore, the scalability and precision of the upper layer analysis could be greatly affected by the underlying binary lifting. However, all existing binary lifters still suffer from severe performance problems in that they require much time to handle extremely large binaries, which becomes a barrier to achieving the expected performance gains in various analyses and hinders them from meeting the requirement of quick response in modern continuous integration pipelines. We found that the root cause of the scalability issue is the inherent "monolithic" design that performs all lifting stages on a single LLVM module, which entails a global environment that enforces sequential dependences between any two transformations on IRs, thus limiting the parallelism. This paper presents Diatom, a novel parallel binary lifter powered by a new "polylithic" design, which decomposes the monolithic LLVM module into partitions to perform fully parallelized binary lifting. In the meantime, it leverages light–weight data–flow summaries and type–aware IR linking to avoid soundness loss caused by separating dependent code fragments. Large–scale experiments on 16 real–world benchmarks whose sizes range from dozens of megabytes (MBs) to several gigabytes (GBs) show that Diatom achieves an average speedup of 7.45× and a maximum speedup of 16.8× over a traditional monolithic binary lifter, while still maintaining the lifting soundness. Diatom can complete the translation for the Linux Kernel binary within only 10 minutes, which significantly accelerates the overall binary code analysis process.
@article{paperbot3836,
title = {Diatom: Polylithic Binary Lifting with Data-Flow Summaries and Type-Aware IR Linking},
author = {Anshunkang Zhou and Charles Zhang},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {OOPSLA1},
year = {2026},
doi = {10.1145/3798206}
}