- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
重定向Open64至新的目标机
--Open64-MIPS重定向过程的报告
崔慧敏
2008年9月
摘要
重定向技术可以快速为新的目标机开发编译器。但由于编译器的代码量巨大,结构复杂,重定向的过程十分繁琐。本报告将提供OPEN64到MIPS平台重定向的经验,展示其稳定性和性能,并对OPEN64与GCC进行简要比较。
1.引言
Open64已经被重定向至一系列体系结构,Pathscale对Open64进行修改,开发了一个适用于AMD64体系结构的编译器—EkoPath。特拉华大学的计算机系统结构和并行系统实验室改进了Open64,创造了Kylin编译器,以用于Intel的X-Scale体系结构。
除了上述的处理器,其他几种也的到了开发,比如,NVISA和SL(*)。在本报告中,我们展示将OPEN64重定向至MIPS平台的过程。由于MIPS芯片与SL相似,因此我们从OPEN64-SL入手。
本报告结构如下。在第2节,我将展示重定向的过程,包括重定向结果和一些分析。第3节,我将讨论不能找到类似的处理器的情况,此时需要从头开始,有许多额外的工作要做。第4节,我简要比较GCC的重定向,包括其适应性和性能。第5节,我将对报告进行总结。
2.基于类似处理器的重定向过程
2.1节对OPEN64的重定向步骤给出建议。大部分的步骤有Fred Chow给出,见他的文章“pro64重定向的建议步骤”以及Sun Chan的文章。我按照她们的建议重定向成功。2.2节展示了一些注释。2.3节展示我的重定向结果,包括稳定性和性能。2.4节列出了一些已知的问题。
重定向步骤
本节中字母(A,B,...)表示文件创建的顺序,数字(1,2,...)表示编连顺序。
A.在顶层Makefile.gsetup中为目标机(targ)添加规则。
B.创建目录targia32_tartarg
这是目标机的编连目录。宿主机器特定为ia32。
C.为targia32_targtarg目录下的每一个子文件夹创建Makefile
确保正确设置了BUILD_TARGET,以便到正确的目标目录寻找子元件。
另外,需确保BUILD_VENDOR设置正确。
1.编连include
D.在common/com目录创建targ/config_targ.h
为ls_Target_xxx添加宏,xxx代表目标机支持的处理器。
比如:对于MIPS有ls_Target_R10K()。
为目标机添加ABI宏。
设置GP大小。
设置目标机的调试信息。
在common/util中,从ia64中将targc_qwmultu.c拷贝过来。
2.编连libsmpls
libiberty
libcomutil
如果在编连过程中需要现实命令行,可以修改linux/make/目录下的gcommondefs和gcommonrules。
E.在common/targ_info中,创建targ目录机器相关文件。按照如下顺序:
isa/targ/isa.cxx
isa/targ/isa_properties.cxx
isa/targ/isa_subset.cxx
isa/targ/isa_registers.cxx
isa/targ/isa_enums.cxx
isa/targ/isa_lits.cxx
isa/targ/isa_operands.cxx
isa/targ/isa_hazards.cxx
isa/targ/isa_print.cxx
isa/targ/isa_pack.cxx
isa/targ/isa_bundle.cxx
isa/targ/isa_decode.cxx
isa/targ/isa_pseudo.cxx
abi/targ/abi_properties.cxx
proc/targ/proc.cxx
proc/targ/proc_properties.cxx
proc/targ/targ_si.cxx
该目录包含了重定向的大部分基本设置。大多数重定向出错都是由于这个目录中的错误设置,因而所有文件都要仔细编写。
3.编连targ_info
F.处理目录kgccfe和kg++fe中的前端
在kgccfe/gnu,kgccfe/gnu/config,kg++fe/gnu,kg++fe/gnu/config中,
创建目录targ,内容从ia64或x8664中拷贝,修正一些参数和文件名字即可。
修正gnu_config.h,使其包含对应于目标机的config.h文件。
修正targ/config.h,targ/hconfig.h, targ/tconfig.h, targ/tm_p.h
使其包含的文件对应于目标机。
确保Makefile和Makefile.gbase也能找到gnu/targ目录。
在in
文档评论(0)