龙芯Ⅰ编译器中的指令调度相关优化
发布时间:2021-11-28 08:17
指令调度相关的优化是现代编译器后端的重要组成部分。本文就通用处理器龙芯I的编译器中机器模型、静态指令调度、和全局延迟槽调度等与指令调度相关的问题进行了研究。机器模型有助于提高编译器的灵活性和可移植性,它把后端优化所需要的机器信息集中在一起并转换为后端可用的形式。本文首先介绍了现有的几种主流编译器的机器模型,包括GCC,Pro64等。然后详细的分析了ORC (Open Research Compiler)的机器模型,并通过龙芯I编译器机器模型的实际移植过程探讨了机器模型移植的一般过程和原则。静态指令调度决定指令执行顺序,屏蔽指令间由于依赖关系而产生的延迟,从而提高了指令的并行度。本文首先分析了硬件动态调度和静态指令调度之间的关系,说明了静态指令调度的必要性,然后介绍了指令调度在龙芯I编译器中的具体实现,最后给出了实验结果以说明指令调度的实际效果。由于龙芯I处理器中采用了延迟槽来减少由于分支而造成的延迟,因此优化编译器如何高效的利用延迟槽对于性能来说十分重要。本文对延迟槽调度中调度范围,所处编译阶段等问题进行了分析,对全局延迟槽调度可能出现的冲突及候选指令的区域进行了研究,提出了一种全局延...
【文章来源】:中国科学院大学(中国科学院计算技术研究所)北京市
【文章页数】:44 页
【学位级别】:硕士
【文章目录】:
摘 要
abstract
第一章 引言
1.1 龙芯I 编译器框架简介
1.2 机器模型
1.3 静态指令调度
1.4 全局延迟槽调度
1.5 论文的组织
第二章 机器模型
2.1 现有几种机器模型简介
2.1.1 GCC 的机器模型
2.1.2 Pro64 的机器模型
2.2 龙芯I 编译器机器模型
2.2.1 龙芯I 体系结构简介
2.2.2 ORC 编译器机器模型简介
2.2.3 机器模型的移植
2.3 结论与展望
第三章 静态指令调度
3.1 背景简介
3.2 超标量机的指令调度
3.2.1 龙芯I 处理器中的动态调度介绍
3.2.2 龙芯I 中静态指令调度的重要性
3.3 指令调度实现
3.3.1 region 的构造
3.3.2 调度区域当中基本块顺序的确定
3.3.3 SrcBB 的选取
3.3.4 候选指令的选择
3.3.5 选择最佳候选指令
3.3.6 资源相关检测和被发射指令的确定
3.3.7 局部指令调度
3.4 实验结果和分析
3.5 展望
第四章 全局延迟槽调度
4.1 背景介绍
4.2 延迟槽调度:问题的提出和策略的选择
4.2.1 延迟槽调度的范围
4.2.2 延迟槽调度阶段的选择
4.2.3 被填充指令相关问题的分析和改进
4.2.3.1 被填充指令移动的类型和对策
4.2.3.2 基本块之间延迟槽调度可能的冲突及预防
4.2.3.3 候选指令范围的改进
4.3 全局延迟槽调度算法
4.4 实验结果和结论
4.5 结论及未来工作展望
致谢
参考文献
作者简介
发表文章目录
【参考文献】:
期刊论文
[1]基于Open64上的特殊指令合成策略研究与实现[J]. 陈金娥,黄胜兵. 软件工程. 2018(02)
硕士论文
[1]面向BWDSP的SIMD编译优化技术研究与实现[D]. 黄胜兵.中国科学技术大学 2016
[2]YHFT-Matrix编译器全局指令调度相关技术的研究与实现[D]. 刘飞.国防科学技术大学 2013
[3]基于龙芯SIMD技术的RealVideo解码优化[D]. 刘波.中国石油大学 2008
本文编号:3524058
【文章来源】:中国科学院大学(中国科学院计算技术研究所)北京市
【文章页数】:44 页
【学位级别】:硕士
【文章目录】:
摘 要
abstract
第一章 引言
1.1 龙芯I 编译器框架简介
1.2 机器模型
1.3 静态指令调度
1.4 全局延迟槽调度
1.5 论文的组织
第二章 机器模型
2.1 现有几种机器模型简介
2.1.1 GCC 的机器模型
2.1.2 Pro64 的机器模型
2.2 龙芯I 编译器机器模型
2.2.1 龙芯I 体系结构简介
2.2.2 ORC 编译器机器模型简介
2.2.3 机器模型的移植
2.3 结论与展望
第三章 静态指令调度
3.1 背景简介
3.2 超标量机的指令调度
3.2.1 龙芯I 处理器中的动态调度介绍
3.2.2 龙芯I 中静态指令调度的重要性
3.3 指令调度实现
3.3.1 region 的构造
3.3.2 调度区域当中基本块顺序的确定
3.3.3 SrcBB 的选取
3.3.4 候选指令的选择
3.3.5 选择最佳候选指令
3.3.6 资源相关检测和被发射指令的确定
3.3.7 局部指令调度
3.4 实验结果和分析
3.5 展望
第四章 全局延迟槽调度
4.1 背景介绍
4.2 延迟槽调度:问题的提出和策略的选择
4.2.1 延迟槽调度的范围
4.2.2 延迟槽调度阶段的选择
4.2.3 被填充指令相关问题的分析和改进
4.2.3.1 被填充指令移动的类型和对策
4.2.3.2 基本块之间延迟槽调度可能的冲突及预防
4.2.3.3 候选指令范围的改进
4.3 全局延迟槽调度算法
4.4 实验结果和结论
4.5 结论及未来工作展望
致谢
参考文献
作者简介
发表文章目录
【参考文献】:
期刊论文
[1]基于Open64上的特殊指令合成策略研究与实现[J]. 陈金娥,黄胜兵. 软件工程. 2018(02)
硕士论文
[1]面向BWDSP的SIMD编译优化技术研究与实现[D]. 黄胜兵.中国科学技术大学 2016
[2]YHFT-Matrix编译器全局指令调度相关技术的研究与实现[D]. 刘飞.国防科学技术大学 2013
[3]基于龙芯SIMD技术的RealVideo解码优化[D]. 刘波.中国石油大学 2008
本文编号:3524058
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3524058.html