GCC重定向:我们是否每次都在重复造轮子?
编程语言
2013-10-04 v1 软件工程
摘要
将GCC移植到新架构需要编写一个机器描述(MD)文件,其中包含从GCC中间形式到目标汇编代码的映射。构建MD文件是一项困难的任务,因为它要求用户同时理解(a)GCC的内部机制,以及(b)目标架构的复杂性。不同架构的指令集在很大一类中表现出显著的语义相似性(例如,RISC架构的指令集),仅在语法上有所不同。因此,可以预期具有相似架构的机器的MD文件也应具有相似性。为了验证我们的假设,我们创建了“mdcompare”工具,用于(a)从已知架构的MD文件中提取RTL模式(RTL模板的机器无关抽象),以及(b)比较不同架构之间模式的相似性。结果令人鼓舞;我们发现28%到70%的RTL表达式在MD文件对之间是相似的,对于相似架构的对,相似百分比更高。
引用
@article{arxiv.1309.7685,
title = {Retargeting GCC: Do We Reinvent the Wheel Every Time?},
author = {Saravana Perumal P and Amey Karkare},
journal= {arXiv preprint arXiv:1309.7685},
year = {2013}
}
备注
4 pages, accepted at The Second Asia-Pacific Programming Languages and Compilers Workshop (APPLC), Shenzen, China, Feb 2013