- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《先进编译技术》程论文-陈鹏 23620149401
信 息 工 程 大 学 博 硕 士 研 究 生
《先进编译技术》课程论文
论文题目 LLVM后端移植架构及与GCC性能对比分析
学员姓名 陈鹏
学 号 23620149401
单 位 四院二教
级 别 2014级
LLVM后端移植架构及与GCC性能对比分析
摘 要: 伴随着复杂逻辑设计这样的挑战的出现,诞生了许多的基于平台的设计。在为硬件设计提供了一个好的解决方案的同时,基于平台的设计仍然需要给出一个完备的开发工具链,包括编译器、汇编器、仿真器等等。因此出现了 ADL(Architecture Description Language)以帮助进行工具链的生成。其中的 MADL(Mescal Architecture Description Language)是一个良好设计但尚不完善的 ADL。UADL(Unified Architecture Description Language)项目致力于在 MADL 的基础之上提供一个工具链自动生成的更好方法。本文是 UADL 项目的一部分,提供了对 LLVM(Low Level Virtual Machine)编译系统的后端移植,这构成了 UADL 项目进行编译器自动生成研究的基础。LLVM 架构是美国伊利诺斯大学开发的开放源代码编译器架构,本文详细分析了该架构的后端移植机制。
关键词: LLVM,编译器,后端移植, GCC
一.引言
对经过前端翻译后生成的 LLVM 中间代码,通过后端代码生成器可以生成对特定后端处理器的后端代码。生成的后端代码可以两种形式存在:一种是以目标处理器的汇编代码形式,可以通过汇编器编译后得到相应的目标处理器二进制代码,并能运行在目标处理器上;另一种是直接以二进制代码存在,不能运行在目标处理器上,但可以使用 JIT 编译器直接在本地运行。
LLVM编译器后端移植架构分析
LLVM编译器架构提供了丰富的代码生成通用框架,规定了固定的目录布局和类层次模块。每个处理器后端都位于lib/Target目录下的相应子目录中。除此之外,只需修改LLVM源码树中少量的源文件,就可以实现将新的处理器后端整合到LLVM代码库。
对于任何一个新添加到LLVM后端移植架构的目标处理器,按照后端移植架移植接口的要求实现目标处理器的体系结构特征描述,对于LLVM后端代码生成器来说,生成不同目标处理器代码所经历的阶段是相同,不同的是需要根据特定目标处理器的体系结构特征进行相应的处理操作,LLVM后端代码生成器根据后端移植架构提供的特定目标处理器体系结构特征属性来进行不同的处理,这种划分方式大大降低了编译器后端移植的复杂度。
LLVM后端移植架构描述了目标处理器体系结构的各方面属性,分别封装为描述目标处理器不同特征属性的抽象类。对于新处理器后端,首先继承LLVM后端移植架构中描述处理器属性的基本抽象类,然后根据目标处理器体系结构实现相应的特征属性函数,就获得目标处理器后端描述文件。然后将目标处理器后端描述文件存放在新创建的子目录中,并对其进行环境配置。编译操作,最终实现LLVM编译器对目标处理器后端的支持
对于Nios2处理器而言,其后端移植层次结构如图2一1所示。
图2一1 LLVM后端移植层次结构
从图2一1可看出,虚线上部表示LLVM后端移植架构提供的后端移植类接口,下部表示用户端移植架构类接口。LLVM后端移植工作主要由目标静态描述和动态描述两部分完成。目标静态描述使用TableGen描述目标处理器后端寄存器,指令,调用约定等基本属性。动态描述使用C++类描述目标处理器复杂或特殊操作。
TableGen描述的目标处理器体系结构基本信息存放在以.td为后缀的文件中。LLVM后端移植架构提供了描述目标处理器体系结构基本属性的基类例如寄存器Register,指令Instruetion等。在用户端移植架构中使用TableGen继承并扩展这些记录,获得目标处理器相关属性的TableGen描述tblg解析工具解析目标处理器体系结构的TableGen描述文件生成完整的C十十信息记录。
LLVM后端移植架构中提供大量关于描述处理器复杂特征属性的C++抽象基类,我们首先需要继承并实现这些基类。由于大多数抽象基类不直接提供任何功能的代码生成功能,只是包含目标处理器特征及性能的选择信息,这种方式可以使大量的实际算法和优化过程与具体目标无关,减少复杂特征属性描述的工作量。只需实现指定的接口就可以
您可能关注的文档
- 《于园》(苏教版年级必修) 教案教学设计.doc
- 《乡镇小学语文教生活化的现状与对策研究》研究方案.doc
- 《亚太地区慢性乙肝炎治疗指南》2008版简介.doc
- 《交变电流》《电场和电磁波》教材分析和教学建议.doc
- 《人力资源开发与理概论》(姚玉群)大纲讲稿.doc
- 《人工智能》实验告模板(2011级网络工程专业)1.doc
- 《人工智能及其应》(蔡自兴)课后习题答案第3章.doc
- 《人民币银行结算户管理办法》知识问答.doc
- 《仁爱英语》八年(下)Unit 6 Topic 1说课稿.doc
- 《从汉至元政治制的演变》教学设计.doc
- 《光伏组件封装用烯-醋酸乙烯酯共聚物(EVA)胶膜》_10762.doc
- 《光信息科学与技》专业毕业设计论文大纲_1.doc
- 《光合作用和呼吸用》教学设计.doc
- 《光合作用的原理应用》教学设计与反思.doc
- 《入驻淘宝入驻商考试答案》2012免费答案.doc
- 《全国导游基础知教案打印.doc
- 《党和国家领导制的改革》导读.doc
- 《全国高等职业(科)院校体育课程教学指导纲要》【最新修订】.doc
- 《全国100所名示范卷》2016高三生物(人教版东部卷)一轮复习 第十五单元 《稳态与环境》综合检测.docx
- 《全国100所名示范卷》2016高三生物(苏教版)一轮复习 第十四单元 《稳态与环境》综合检测.docx
最近下载
- 沉井及顶管专项施工方案.docx VIP
- 预算管理一体化系统操作手册-预算执行.pdf VIP
- 某医院检验科程序文件.pdf VIP
- 1~6的表内乘法整理和复习 课件 2025秋数学人教版二年级上册.ppt
- Samsung三星品式多门冰箱RF66M9092S8使用说明书.pdf VIP
- Haier海尔413升风冷变频多门冰箱 BCD-413WGHFD1BSJU1(白)说明书用户手册.pdf
- 北师大版八年级数学上册《第二章实数》单元检测卷带答案.docx VIP
- 1捡石头 (课件) 2025苏教版科学一年级下册.ppt
- 2025年青岛版(2024)小学科学三年级上册(全册)教学设计(附目录P150).docx
- 人工智能生成内容(AIGC)研究综述:国际进展与热点议题.pdf VIP
文档评论(0)