摘要 | 第5-6页 |
Abstract | 第6页 |
第1章 绪论 | 第10-14页 |
1.1 课题研究背景 | 第10-11页 |
1.2 国内外研究现状 | 第11-12页 |
1.2.1 GCC 的 M*Core 后端 | 第11页 |
1.2.2 LLVM 编译框架 | 第11-12页 |
1.3 本文主要内容及组织结构 | 第12-14页 |
第2章 LLVM 编译框架和 C*Core 目标平台剖析 | 第14-27页 |
2.1 LLVM 编译框架 | 第14-15页 |
2.2 LLVM 中间表示 | 第15-17页 |
2.2.1 指令集 | 第15-16页 |
2.2.2 数据类型系统 | 第16-17页 |
2.3 LLVM 后端工具集分析 | 第17页 |
2.4 LLVM 后端移植机制剖析 | 第17-19页 |
2.4.1 目标平台的描述 | 第18-19页 |
2.4.2 基于 TableGen 的寄存器文件描述 | 第19页 |
2.4.3 基于 TableGen 的指令集描述 | 第19页 |
2.4.4 基于 TableGen 的函数调用惯例描述 | 第19页 |
2.5 C*Core 体系结构分析 | 第19-21页 |
2.5.1 编程模式 | 第20页 |
2.5.2 数据格式 | 第20-21页 |
2.5.3 操作数寻址方式 | 第21页 |
2.5.4 寄存器文件 | 第21页 |
2.6 C*Core 指令集 | 第21-23页 |
2.7 C*Core 数据类型 | 第23页 |
2.8 C*Core 调用惯例剖析 | 第23-26页 |
2.8.1 寄存器指派约定 | 第24页 |
2.8.2 函数参数传递约定 | 第24-25页 |
2.8.3 函数返回值传递约定 | 第25页 |
2.8.4 函数序幕与尾声代码约定分析 | 第25-26页 |
2.9 本章小结 | 第26-27页 |
第3章 C*Core 后端移植的设计与实现 | 第27-54页 |
3.1 LLVM 后端代码生成流程的设计与实现 | 第27-30页 |
3.1.1 中间表示优化 | 第27页 |
3.1.2 基于 DAG 的指令选择 | 第27-28页 |
3.1.3 寄存器分配 | 第28-29页 |
3.1.4 目标代码输出 | 第29页 |
3.1.5 C*Core 后端移植的实现 | 第29-30页 |
3.2 C*Core 目标平台的描述 | 第30-38页 |
3.2.1 C*Core 后端数据结构分析 | 第31-32页 |
3.2.2 C*Core 平台描述步骤分析 | 第32-33页 |
3.2.3 寄存器文件的描述 | 第33-35页 |
3.2.4 指令格式的描述 | 第35-37页 |
3.2.5 栈与调用惯例的描述 | 第37-38页 |
3.2.6 汇编输出的描述 | 第38页 |
3.2.7 全局描述 | 第38页 |
3.3 基于 DAG 的 C*Core 指令选择的设计与实现 | 第38-53页 |
3.3.1 C*Core 指令选择流程的设计 | 第39-40页 |
3.3.2 DAG 构造与转换的设计与实现 | 第40-42页 |
3.3.3 平台相关的 DAG 节点的降级 | 第42-44页 |
3.3.4 基于 TableGen 的指令映射 | 第44-46页 |
3.3.5 基于 DAG 匿名匹配模式的指令映射 | 第46-47页 |
3.3.6 基于 SDNodeXForm 的指令映射 | 第47-48页 |
3.3.7 基于 ComplexPattern 的指令映射 | 第48-49页 |
3.3.8 基于自定义 DAG 节点的指令映射 | 第49-50页 |
3.3.9 基于自定义 DAG 节点类型的指令映射 | 第50-52页 |
3.3.10 自定制方式的指令选择 | 第52-53页 |
3.4 本章小结 | 第53-54页 |
第4章 C*Core 后端优化的设计与实现 | 第54-60页 |
4.1 32 位和 64 位立即数的构造与寄存器赋值 | 第54-57页 |
4.2 局部代码优化的设计与实现 | 第57-59页 |
4.2.1 面向条件执行指令的优化 | 第57-59页 |
4.2.2 利用机器特有指令的窥孔优化 | 第59页 |
4.3 本章小结 | 第59-60页 |
第5章 C*Core 后端移植的测试与分析 | 第60-71页 |
5.1 后端移植测试的环境配置 | 第60-61页 |
5.2 指令集覆盖测试 | 第61-68页 |
5.3 32 位和 64 位立即数的构造与寄存器赋值 | 第68-69页 |
5.4 局部代码优化的测试与对比 | 第69-70页 |
5.4.1 面向条件执行指令的优化 | 第69-70页 |
5.4.2 窥孔优化 | 第70页 |
5.5 本章小结 | 第70-71页 |
结论 | 第71-72页 |
参考文献 | 第72-75页 |
攻读硕士学位期间发表的论文和取得的科研成果 | 第75-76页 |
致谢 | 第76页 |