基于GCC编译器的循环展开关键技术研究
摘要 | 第9-10页 |
ABSTRACT | 第10页 |
第一章 绪论 | 第11-20页 |
1.1 课题研究背景 | 第11-12页 |
1.1.1 高性能计算 | 第11页 |
1.1.2 程序性能优化技术 | 第11-12页 |
1.2 相关优化技术介绍 | 第12-13页 |
1.2.1 循环展开技术 | 第12-13页 |
1.2.2 迭代编译优化技术 | 第13页 |
1.3 国内外研究现状 | 第13-17页 |
1.3.1 循环展开技术 | 第13-16页 |
1.3.2 迭代编译优化技术 | 第16-17页 |
1.4 研究内容及意义 | 第17-18页 |
1.4.1 研究内容 | 第17-18页 |
1.4.2 研究意义 | 第18页 |
1.5 论文组织结构 | 第18-20页 |
第二章 GCC循环展开技术分析 | 第20-33页 |
2.1 研究动机 | 第20-21页 |
2.2 GCC编译器循环展开实现 | 第21-28页 |
2.2.1 GCC编译器结构 | 第21-24页 |
2.2.2 GCC循环展开编译遍实现 | 第24-26页 |
2.2.3 GCC编译器展开决策 | 第26-28页 |
2.3 循环展开影响程序性能的原因分析 | 第28-31页 |
2.3.1 优化遍之间交互关系分析 | 第29-31页 |
2.4 GCC循环展开存在的问题 | 第31页 |
2.5 本章小结 | 第31-33页 |
第三章 循环展开指导语句实现与调优 | 第33-49页 |
3.1 GCC参数接口和指导语句接口的对比研究 | 第33-35页 |
3.1.1 使用GCC编译器的参数方式 | 第34页 |
3.1.2 使用Intel编译器的指导语句方式 | 第34-35页 |
3.1.3 参数调优与指导语句调优方式对比 | 第35页 |
3.2 指导语句设计 | 第35-37页 |
3.3 指导语句实现 | 第37-44页 |
3.3.1 指导语句的前端表示与处理 | 第38-41页 |
3.3.2 指导语句的GIMPLE化 | 第41-43页 |
3.3.3 指导信息的提取 | 第43页 |
3.3.4 循环展开指导信息的使用 | 第43-44页 |
3.4 结合参数接口对SPEC2006程序调优 | 第44-48页 |
3.4.1 优化方法 | 第44-46页 |
3.4.2 优化结果 | 第46-48页 |
3.5 本章小结 | 第48-49页 |
第四章 针对循环展开的轻量型迭代编译器设计与实现 | 第49-67页 |
4.1 轻量型迭代编译器思想 | 第49-51页 |
4.2 轻量型迭代编译器设计 | 第51-57页 |
4.2.1 函数体的保存与恢复 | 第52-53页 |
4.2.2 搜索空间的修剪 | 第53-54页 |
4.2.3 迭代编译优化遍的遍表选择 | 第54页 |
4.2.4 待评估代码的选择 | 第54-56页 |
4.2.5 循环展开优化效果评估 | 第56-57页 |
4.3 轻量级迭代编译器实现 | 第57-61页 |
4.3.1 搜索空间表示与生成 | 第58-59页 |
4.3.2 展开决策性能数据库 | 第59页 |
4.3.3 搜索算法实现 | 第59-61页 |
4.4 实验 | 第61-66页 |
4.4.1 迭代编译器优化效果测量 | 第61-63页 |
4.4.2 迭代编译开销分析 | 第63-64页 |
4.4.3 不同迭代编译优化遍表的比较 | 第64-65页 |
4.4.4 不同待评估代码选择方法的比较 | 第65-66页 |
4.5 本章小结 | 第66-67页 |
第五章 结束语 | 第67-68页 |
5.1 工作总结 | 第67页 |
5.2 工作展望 | 第67-68页 |
致谢 | 第68-69页 |
参考文献 | 第69-72页 |
作者在学期间取得的学术成果 | 第72页 |
发表的学术论文 | 第72页 |