文摘
英文文摘
论文说明:图表目录
声明
第1章绪论
1.1.背景
1.2.GCC编译系统体系结构
1.3.编译器优化技术
1.4.编译器验证技术相关研究
1.5.本文的主要内容和工作
1.6.论文组织
1.7.小结
第2章GCC优化分析
2.1.去除冗余优化
2.1.1.局部公共子表达式删除
2.1.2.全局公共子表达式删除
2.1.3.支持懒惰代码移动的一般部分冗余去除
2.2.循环优化
2.2.1.代码外提
2.2.2.归纳变量的检测与删除
2.2.3.强度削弱
2.2.4.循环展开
2.2.5.循环合并(Loop Jamming)
2.2.6.测试外提(Unswitching)-常量比较条件提取
2.3.分支跳转优化
2.3.1.指令预取优化
2.3.2.IF转换支持
2.3.3.分支预测
2.3.4.跳转优化
2.4.指令组合优化
2.5.指令调度
2.6.基于着色图的寄存器分配
2.7.寄存器优化
2.8.小结
第3章GCC安全性分析
3.1.去除冗余优化模块
3.1.1.局部公共子表达式消除子模块
3.1.2.全局公共子表达式消除子模块
3.1.3.支持懒惰代码移动的一般部分冗余去除模块
3.2.循环优化
3.2.1.代码外提
3.2.2.归纳变量的检测与删除
3.2.3.强度削弱
3.2.4.循环展开
3.2.5.测试外提(Unswitching)-常量比较条件提取
3.3.分支跳转优化
3.3.1.指令预取优化
3.3.2.IF转换支持
3.3.3.分支预测
3.3.4.跳转优化
3.4.指令组合
3.5.指令调度
3.5.1.指令依赖关系计算
3.5.2.指令的链表调度
3.5.3.指令的扩展基本块调度(EBB调度)
3.5.4.可视化指令调度信息
3.6.基于着色图的寄存器分配
3.6.1.建立冲突图
3.6.2.图着色
3.6.3.添加溢出代码
3.7.寄存器优化
3.7.1.全局寄存器分配
3.7.2.将伪寄存器重载为实际寄存器
3.7.3.减少寄存器重载引起的负载
3.7.4.移动/修改寄存器
3.7.5.寄存器到堆栈转换
3.8.小结
第4章GCC安全性验证
4.1.总体方案描述
4.1.1.基本思路
4.1.2.实施步骤
4.1.3.参与人员角色与约束
4.1.4.输出状态验证的方法研究
4.2.实例分析
4.2.1.强度削弱优化模块的安全性验证
4.3.小结
第5章总结
参考文献
致谢
作者简历