Proj CMI Paper Reading: ANGHABENCH: A Suite with One Million Compilable C Benchmarks for Code-Size Reduction

Abstract

背景:
预测编译的挑战之一是如何找到好的训练集。无论使用哪种编程语言,人工基准测试的可用性都是有限的。此外,当前的合成器生成的代码与实际程序非常不同,并且由于程序依赖性,从开放存储库中挖掘可编译代码很困难。

本文:ANGHABENCH
任务:用于训练编译器以减少代码大小
方法:基于 Hindley-Milner 算法的类型重构器来生成 ANGHABENCH,这是一个几乎无限的现实世界可编译 C 程序的集合。尽管 ANGHABENCH 程序不可执行,但它们可以被任何 C 兼容编译器转换为目标文件。因此,它们可用于训练编译器以减少代码大小。
效果:
我们已经使用了数千个 ANGHABENCH 程序来训练 YACOS,这是一个基于 LLVM 的预测编译器。使用 ANGHABENCH 自动调整的 YACOS 版本为 LLVM 测试套件生成的二进制文件比 clang -Oz 小 10% 以上。它压缩的代码甚至不受 2019 年发布的最先进的函数序列对齐技术的影响,因为它不需要大型二进制文件即可正常工作

posted @ 2022-07-26 18:00  雪溯  阅读(74)  评论(0编辑  收藏  举报