基于LLVM的脚本语言后端工具设计与实现
摘要 | 第4-5页 |
abstract | 第5-6页 |
第1章 绪论 | 第9-13页 |
1.1 课题的提出 | 第9-10页 |
1.2 研究目的 | 第10-11页 |
1.3 研究意义 | 第11页 |
1.4 研究成果 | 第11-12页 |
1.5 论文工作内容 | 第12-13页 |
第2章 LLVM与脚本语言 | 第13-19页 |
2.1 脚本语言 | 第13-14页 |
2.2 低层次虚拟机 | 第14-15页 |
2.3 LLVM后端 | 第15-16页 |
2.4 中间表示 | 第16-18页 |
2.5 小结 | 第18-19页 |
第3章 LIRT需求分析 | 第19-22页 |
3.1 整体目标 | 第19页 |
3.2 LIRT项目需求 | 第19-20页 |
3.3 软硬件需求 | 第20-21页 |
3.3.0 测试环境 | 第20页 |
3.3.1 硬件开发环境 | 第20页 |
3.3.2 软件开发环境 | 第20-21页 |
3.4 小结 | 第21-22页 |
第4章 LIRT的设计 | 第22-28页 |
4.1 总体设计原则 | 第22页 |
4.2 LIRT总体结构 | 第22-24页 |
4.3 LIRT模块 | 第24-26页 |
4.3.1 加载 | 第24页 |
4.3.2 初始化 | 第24页 |
4.3.3 函数处理 | 第24-25页 |
4.3.4 函数初始化 | 第25页 |
4.3.5 分支分析 | 第25页 |
4.3.6 函数流程重建与优化 | 第25页 |
4.3.7 基本块初始化 | 第25页 |
4.3.8 指令处理 | 第25-26页 |
4.4 LIRT数据处理流程 | 第26-27页 |
4.5 小结 | 第27-28页 |
第5章 LIRT的实现 | 第28-46页 |
5.1 脚本函数的初始生成 | 第28-33页 |
5.1.1 函数的简单匹配分析 | 第29-30页 |
5.1.2 函数的复杂匹配分析 | 第30-33页 |
5.2 控制流程转换 | 第33-40页 |
5.2.1 SimpleType | 第34-35页 |
5.2.2 NormalLoopType | 第35-36页 |
5.2.3 MultiLoopType | 第36页 |
5.2.4 控制流程的具体实现 | 第36-40页 |
5.3 指针处理与指令优化 | 第40-42页 |
5.3.1 全局初步分析 | 第40-42页 |
5.3.2 变量的处理 | 第42页 |
5.4 Phi节点处理 | 第42-44页 |
5.5 小结 | 第44-46页 |
第6章 实验与结果分析 | 第46-50页 |
6.1 实验环境 | 第46页 |
6.2 实验步骤 | 第46-47页 |
6.3 各个结果对比 | 第47-50页 |
第7章 结论和展望 | 第50-51页 |
7.1 结论 | 第50页 |
7.2 展望 | 第50-51页 |
参考文献 | 第51-53页 |
致谢 | 第53页 |