摘要 | 第5-7页 |
ABSTRACT | 第7-8页 |
符号对照表 | 第12-13页 |
缩略语句对照表 | 第13-17页 |
第一章 绪论 | 第17-23页 |
1.1 选题背景和意义 | 第17-18页 |
1.2 编译器发展现状与选取 | 第18-21页 |
1.3 论文主要工作 | 第21页 |
1.4 论文结构 | 第21-23页 |
第二章 GCC编译流程分析 | 第23-37页 |
2.1 GCC编译流程 | 第23-25页 |
2.2 编译器CC1介绍 | 第25-29页 |
2.2.1 编译流程 | 第25-27页 |
2.2.2 CC1对应的优化器 | 第27-29页 |
2.3 寄存器传送语言RTL简介 | 第29-32页 |
2.4 控制流分析 | 第32-34页 |
2.4.1 块的确认 | 第33-34页 |
2.4.2 边的确认 | 第34页 |
2.5 依赖关系分析 | 第34-35页 |
2.6 机器描述 | 第35-36页 |
2.7 本章小结 | 第36-37页 |
第三章 TMS320C6000架构分析 | 第37-49页 |
3.1 TMS320C6000系列结构特点——VLIW体系结构 | 第37-39页 |
3.1.1 并行体系结构 | 第37-38页 |
3.1.2 C6000的体系结构特点 | 第38页 |
3.1.3 C6000体系结构内部的特点 | 第38-39页 |
3.2 TMS320C6000系列CPU结构与指令集 | 第39-46页 |
3.2.1 C6000系列CPU结构 | 第39-41页 |
3.2.2 C6000数据通路 | 第41页 |
3.2.3 通用寄存器 | 第41-42页 |
3.2.4 功能单元 | 第42-43页 |
3.2.5 寄存器组交叉通路 | 第43页 |
3.2.6 数据存储器和读取存储通路 | 第43-45页 |
3.2.7 数据地址通路和控制寄存器 | 第45-46页 |
3.3 并行操作 | 第46页 |
3.4 流水线操作 | 第46-47页 |
3.5 GCC针对C6X的机器描述 | 第47-48页 |
3.6 本章小结 | 第48-49页 |
第四章 踪迹调度 | 第49-67页 |
4.1 指令级并行度探索 | 第49-50页 |
4.2 指令调度 | 第50-55页 |
4.2.1 基本块调度 | 第51-53页 |
4.2.2 分支延迟槽调度 | 第53-55页 |
4.3 局部踪迹调度 | 第55-57页 |
4.4 踪迹调度的详细算法 | 第57-63页 |
4.4.1 关键路径处理 | 第58-60页 |
4.4.2 区域以及区域中踪迹的确立 | 第60页 |
4.4.3 区域中的DAG图分析 | 第60-61页 |
4.4.4 一条主踪迹上的优化 | 第61-62页 |
4.4.5 辅助踪迹路径的补偿 | 第62-63页 |
4.5 踪迹调度PASS | 第63-66页 |
4.5.1 创建所在的优化遍 | 第63-64页 |
4.5.2 初始化遍时进行踪迹调度相应的初始化 | 第64页 |
4.5.3 踪迹调度实现方法 | 第64-66页 |
4.6 本章小结 | 第66-67页 |
第五章 测试 | 第67-71页 |
5.1 配置项测试 | 第67-68页 |
5.2 性能测试 | 第68-70页 |
5.2.1 编译器的编译性能测试 | 第68-69页 |
5.2.2 编译正确性测试和程序效率测试 | 第69-70页 |
5.3 本章小结 | 第70-71页 |
第六章 结束语 | 第71-73页 |
6.1 论文工作总结 | 第71页 |
6.2 后续工作展望 | 第71-73页 |
附录A | 第73-75页 |
参考文献 | 第75-77页 |
致谢 | 第77-79页 |
作者简介 | 第79页 |