基于SUIF2的过程间分析和优化
中文摘要 | 第1-5页 |
英文摘要 | 第5-9页 |
第一章 绪论 | 第9-16页 |
1.1 研究编译器优化的目的 | 第9-10页 |
1.2 传统的优化方式简介 | 第10-11页 |
1.2.1 局部优化 | 第10页 |
1.2.2 循环优化 | 第10页 |
1.2.3 全局优化 | 第10-11页 |
1.3 过程间优化的产生背景 | 第11-12页 |
1.4 过程间优化与传统优化技术的比较 | 第12-13页 |
1.5 过程间分析和优化技术的冲击 | 第13-14页 |
1.6 本文的研究方法和章节安排 | 第14-16页 |
1.6.1 研究方法 | 第14页 |
1.6.2 本文章节安排 | 第14-16页 |
第二章 过程间分析和优化 | 第16-33页 |
2.1 过程间分析和优化概况 | 第16-18页 |
2.1.1 定义 | 第16页 |
2.1.2 过程间分析和优化技术概况 | 第16-18页 |
2.2 调用图 | 第18-20页 |
2.2.1 定义 | 第18页 |
2.2.2 调用图的构造算法 | 第18-20页 |
2.3 内联替换和过程克隆 | 第20-27页 |
2.3.1 内联替换 | 第20-23页 |
2.3.1.1 内联替换的优点 | 第20页 |
2.3.1.2 执行内联替换需要考虑的因素 | 第20-21页 |
2.3.1.3 内联替换对寄存器分配的影响 | 第21-22页 |
2.3.1.4 关于内联替换的总结和建议 | 第22-23页 |
2.3.1.5 内联替换的实现 | 第23页 |
2.3.4 过程克隆 | 第23-27页 |
2.3.4.1 过程克隆的定义 | 第23-25页 |
2.3.4.2 过程克隆产生的动机 | 第25页 |
2.3.4.3 克隆算法 | 第25-27页 |
2.4 过程间信息 | 第27-32页 |
2.4.1 副作用摘要集合 | 第27-28页 |
2.4.2 别名 | 第28-29页 |
2.4.3 过程间常量 | 第29-32页 |
2.4.3.1 过程间常量的表示 | 第29-30页 |
2.4.3.2 前向跳转函数 | 第30-32页 |
2.4.3.3 返回跳转函数 | 第32页 |
2.5 本章小结 | 第32-33页 |
第三章 SUIF2编译器基础构架 | 第33-46页 |
3.1 SUIF2介绍 | 第33-34页 |
3.1.1 SUIF2的关键特征 | 第33-34页 |
3.1.2 系统提供的编译器构造工具 | 第34页 |
3.2 SUIF结构 | 第34-36页 |
3.2.1 核心(kernel) | 第35页 |
3.2.2 模块(moduls) | 第35-36页 |
3.2.3 驱动器(drivers) | 第36页 |
3.3 SUIF可扩展程序表示 | 第36-37页 |
3.3.1 多层次的表示 | 第36-37页 |
3.3.2 抽象层次 | 第37页 |
3.4 SUIF2程序设计 | 第37-45页 |
3.4.1 Hoof规范语言 | 第37-40页 |
3.4.1.1 SUIF中间表示 | 第37-38页 |
3.4.1.2 Hoof的语法 | 第38-40页 |
3.4.2 创建一个模块(Module) | 第40-43页 |
3.4.3 生成一个遍历(Pass) | 第43-45页 |
3.5 本章小结 | 第45-46页 |
第四章 基于SUIF2的调用图创建 | 第46-58页 |
4.1 背景和定义 | 第46-47页 |
4.2 算法 | 第47-56页 |
4.2.1 SUIF2IR节点的创建 | 第47-50页 |
4.2.2 类的定义 | 第50-52页 |
4.2.3 调用图构造算法的实现 | 第52-56页 |
4.3 算法的检验 | 第56-57页 |
4.4 本章小节 | 第57-58页 |
第五章 总结 | 第58-60页 |
参考文献 | 第60-62页 |
致谢 | 第62页 |