| 致谢 | 第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页 |