- 1
- 0
- 约6.73千字
- 约 10页
- 2016-08-29 发布于贵州
- 举报
《先进编译技术》课论文-陈鹏 2369401
信 息 工 程 大 学 博 硕 士 研 究 生
《先进编译技术》课程论文
论文题目 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++抽象基类,我们首先需要继承并实现这些基类。由于大多数抽象基类不直接提供任何功能的代码生成功能,只是包含目标处理器特征及性能的选择信息,这种方式可以使大量的实际算法和优化过程与具体目标无关,减少复杂特征属性描述的工作量。只需实现指定的接口就可以
您可能关注的文档
最近下载
- 工程材料与机械制造基础(山东大学)中国大学MOOC 慕课 章节测验 答案.docx VIP
- 经皮去肾神经术治疗高血压临床路径中国专家共识(2025版).docx VIP
- 杜克LS-P激光测距仪说明书(打印).docx VIP
- 2026云南大理州南涧彝族自治县供排水有限责任公司考核招聘4人考试笔试参考题库及答案解析.docx VIP
- 2026年大理州南涧县供排水有限责任公司考核招聘工作人员(4人)考试笔试模拟试题及答案解析.docx VIP
- 药物临床试验应知应会.pdf VIP
- 2026云南大理州南涧彝族自治县供排水有限责任公司考核招聘4人考试笔试模拟试题及答案解析.docx VIP
- 红色小故事(完整版).doc VIP
- 2026云南大理州南涧彝族自治县供排水有限责任公司考核招聘4人考试笔试备考题库及答案解析.docx VIP
- 四川省泸州市泸县第二中学等六校联考2025-2026学年上学期九年级物理期末预测练习试卷( 含答案).pdf VIP
原创力文档

文档评论(0)