paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Diatom: Polylithic Binary Lifting with Data-Flow Summaries and Type-Aware IR Linking

Diatom:带数据流摘要与类型感知 IR 链接的多块化二进制提升
OOPSLA 10(OOPSLA1)2026匹配度 3/10 · 该论文是二进制提升(binary lifting)的可扩展性工程工作,通过分块并行、数据流摘要与类型感知 IR 链接提升 LLVM IR 恢复效率,属于静态分析/程序分析的基础设施。但用户的三个核心方向(ML/Agentic 程序的静态分析、浮点程序分析、贝叶斯程序分析与 LLM 的交叉)在本文中均未涉及,也没有 LLM/Agent 成分,只能算边缘相关的底层分析技术。引用 0 inbox
Anshunkang Zhou, Charles Zhang
crossref: 2026-09-10

AI 速览

一句话:提出多块化并行二进制提升器 Diatom,用数据流摘要与类型感知 IR 链接保可靠性,平均加速 7.45×。

二进制提升把机器码翻译为 LLVM IR,是众多二进制分析系统的基石,但现有提升器因采用“单块式”(monolithic)设计,把全部提升阶段施加在同一个 LLVM 模块上,形成全局环境并强制各 IR 变换间串行依赖,导致处理大型二进制时性能严重受限。本文提出 Diatom,一种基于“多块式”(polylithic)设计的新型并行二进制提升器:它将单一 LLVM 模块分解为多个分区以进行完全并行的提升,同时利用轻量级数据流摘要与类型感知的 IR 链接来避免因切分依赖代码片段而造成的可靠性损失。在 16 个规模从数十 MB 到数 GB 的真实基准上评估,Diatom 相比传统单块式提升器平均加速 7.45×、最高加速 16.8×,并保持提升的可靠性;它能在 10 分钟内完成 Linux 内核二进制的翻译,显著加速上层二进制代码分析流程。

问题
现有二进制提升器受限于单块式设计:所有提升阶段作用于同一 LLVM 模块,全局环境造成变换间的串行依赖,使其无法高效处理极大型二进制,难以满足持续集成等场景的快速响应需求。
方法
Diatom 采用多块式设计,将 LLVM 模块分解为多个分区并完全并行地执行二进制提升,同时借助轻量级数据流摘要与类型感知的 IR 链接来恢复跨分区的依赖关系,从而避免切分导致的可靠性损失。
评估
在 16 个规模从数十 MB 到数 GB 的真实基准上与传统的单块式二进制提升器对比,Diatom 平均加速 7.45×、最高加速 16.8×,保持提升可靠性,并可在 10 分钟内完成 Linux 内核二进制的翻译。
原文摘要(Abstract)

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.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@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}
}