致谢 | 第1-4页 |
摘要 | 第4-5页 |
Abstract | 第5-9页 |
图表目录 | 第9-12页 |
第一章 引言 | 第12-28页 |
·编译器对高性能体系结构的支持 | 第12-16页 |
·编译器对自动并行的支持 | 第13-14页 |
·编译器对指令级并行性的支持 | 第14-16页 |
·程序优化和并行化的基础:程序分析 | 第16-18页 |
·指针别名对程序优化和并行化的影响和意义 | 第18-23页 |
·指针别名与常规优化 | 第18-19页 |
·指针别名与寄存器重装 | 第19-20页 |
·指针别名与寄存器分配 | 第20-21页 |
·指针别名对指令级并行性的影响 | 第21页 |
·指针别名与并行变换 | 第21-22页 |
·指针分析对其他过程间分析的影响 | 第22-23页 |
·指针分析的研究状况和存在的问题 | 第23-24页 |
·指针分析的研究范围 | 第23-24页 |
·指针分析研究所存在的问题 | 第24页 |
·本文工作的研究背景 | 第24-27页 |
·SIMD芯片体系结构 | 第24-26页 |
·SimdCC总体结构 | 第26-27页 |
·本文内容及贡献 | 第27页 |
·小结 | 第27-28页 |
第二章 指针别名的概念和分析技术 | 第28-47页 |
·别名、指针别名及相关概念 | 第28-34页 |
·别名的概念 | 第28-29页 |
·别名的分类 | 第29-31页 |
·指针别名的表示: Points-To关系 | 第31-33页 |
·指针别名关系与Points-To关系的等价性 | 第33页 |
·结论:指针分析要解决的是指针的静态求值 | 第33-34页 |
·指针分析与传统的别名分析 | 第34-35页 |
·指针分析的基本问题 | 第35-43页 |
·可能(May)信息和必定(Must)信息 | 第35-36页 |
·控制流敏感性问题 | 第36-37页 |
·指针别名的产生机制和分布特点 | 第37-38页 |
·C程序在指针使用上的复杂性 | 第38-39页 |
·指针问题的过程间特性:双向数据流问题 | 第39-41页 |
·过程间分析中的伪路径问题和上下文不敏感性 | 第41-43页 |
·过程间指针分析的基本策略 | 第43-46页 |
·策略1:用调用路径信息消除伪路径的不精确性 | 第43-44页 |
·策略2:完全的上下文敏感解法 | 第44-45页 |
·策略3:利用启发性技术降低上下文敏感算法的复杂度 | 第45-46页 |
·小结 | 第46-47页 |
第三章 一个上下文敏感的过程间指针分析算法 | 第47-84页 |
·过程间指针分析算法的基本要求 | 第47-48页 |
·一个新的过程间分析策略 | 第48-55页 |
·参数化名字空间 | 第48-50页 |
·参数化名字空间中间接参数的性质 | 第50-51页 |
·参数化名字空间的上下文与常规名字空间 | 第51页 |
·参数化名字空间中的别名和函数上下文 | 第51-53页 |
·参数化名字空间的过程间分析策略 | 第53-55页 |
·过程间分析的准备工作 | 第55-62页 |
·中间语言的表示和选择 | 第55-58页 |
·多文件中相同符号的引用 | 第58-60页 |
·指针副作用分析算法 | 第60-62页 |
·内存位置的抽象与表示 | 第62-66页 |
·过程间指针分析算法的实现 | 第66-81页 |
·算法框架、结构和流程 | 第66-68页 |
·算法的入口 | 第68-69页 |
·过程内分析 | 第69-73页 |
·过程间分析 | 第73-77页 |
·堆的处理:AnalyzeHeap | 第77-79页 |
·算法的不精确性因素 | 第79-81页 |
·小结 | 第81-82页 |
·相关工作 | 第82-84页 |
第四章 过程间分析的统一框架 | 第84-104页 |
·传统算法存在的问题 | 第84-87页 |
·数据流信息合并引起的上文不精确性 | 第85-86页 |
·伪路径引起的下文不精确性 | 第86-87页 |
·考虑指针别名的过程间分析要求 | 第87页 |
·过程间分析的统一框架 | 第87-89页 |
·调用图构造算法 | 第89-92页 |
·调用图构造 | 第89-90页 |
·构造调用图的拓扑激活序 | 第90-91页 |
·调用图及其拓扑序示例 | 第91-92页 |
·上下文敏感的过程间MOD算法 | 第92-100页 |
·MOD问题的基本概念 | 第92-94页 |
·MOD问题的分解和算法 | 第94-99页 |
·MOD求解实例 | 第99-100页 |
·达到-定值和引用-定义链的求解 | 第100-102页 |
·到达-定值和引用-定值链的问题背景 | 第100页 |
·消除到达-定值的上文不敏感性 | 第100-102页 |
·引用-定值链的求解 | 第102页 |
·小结 | 第102页 |
·相关工作 | 第102-104页 |
第五章 实验数据和分析结果 | 第104-112页 |
·测试程序及其对 C语言的覆盖 | 第104-107页 |
·对测试程序的限制 | 第104-105页 |
·算法对 C语言的覆盖测试: ACE测试包 | 第105页 |
·利用实际程序测试 | 第105-106页 |
·本章所用测试程序说明 | 第106-107页 |
·算法的时间开销测试 | 第107-108页 |
·算法的空间开销测试 | 第108-109页 |
·对过程间启发式因素的评测 | 第109-110页 |
·过程间分析对优化效果的提高 | 第110-111页 |
·小结 | 第111-112页 |
第六章 总结和进一步的工作 | 第112-115页 |
·算法的总结 | 第112-113页 |
·进一步的工作 | 第113-114页 |
·结语 | 第114-115页 |
参考文献 | 第115-120页 |
作者简介 | 第120页 |