中文

FAIR:面向编译器中间表示的流类型感知预训练

软件工程 2023-09-12 v1

摘要

尽管现有多数基于代码的预训练模型学习源代码特征(如代码词元与抽象语法树),也有一些工作专注于从编译器中间表示(IR)中学习。现有基于 IR 的模型通常利用指令、控制与数据流图(CDFG)、调用图等 IR 特征。然而,这些方法在 CDFG 中混淆变量节点与指令节点,且未能区分不同类型的流,其所用神经网络无法捕获长距离依赖,并存在过平滑与过压缩问题。为应对这些缺陷,我们提出 FAIR,一种面向 IR 的流类型感知预训练模型,其包含:(1)一种新颖的 IR 程序输入表示;(2)图 Transformer 以解决过平滑、过压缩与长依赖问题;(3)我们专门提出的五项预训练任务,使 FAIR 能够学习 IR 词元语义、流类型信息及 IR 的整体表示。实验结果表明,FAIR 在四项代码相关下游任务上均可取得最先进(SOTA)结果。

关键词

引用

@article{arxiv.2309.04828,
  title  = {FAIR: Flow Type-Aware Pre-Training of Compiler Intermediate Representations},
  author = {Changan Niu and Chuanyi Li and Vincent Ng and David Lo and Bin Luo},
  journal= {arXiv preprint arXiv:2309.04828},
  year   = {2023}
}

备注

ICSE 2024 First Cycle