SmartLCC:面向嵌入式系统的编译器研究与开发
| 第1章 绪论 | 第1-13页 |
| ·项目背景 | 第7-8页 |
| ·相关工作 | 第8-11页 |
| ·GCC | 第8-9页 |
| ·Trimaran | 第9-10页 |
| ·SPAM | 第10页 |
| ·Zephyr | 第10页 |
| ·LCC | 第10-11页 |
| ·本文的主要内容和贡献 | 第11页 |
| ·论文结构 | 第11-13页 |
| 第2章 编译器的结构与设计技术 | 第13-26页 |
| ·典型的编译器结构 | 第13-16页 |
| ·中间表示 | 第16-17页 |
| ·编译器的优化方法 | 第17-21页 |
| ·优化考虑的因素 | 第17-18页 |
| ·优化的不同层次和阶段 | 第18-19页 |
| ·控制流和数据流分析 | 第19页 |
| ·优化的顺序和重复 | 第19-21页 |
| ·目标体系的描述 | 第21-23页 |
| ·目标体系描述概要 | 第21-22页 |
| ·描述分类以及主要方法 | 第22-23页 |
| ·描述内容 | 第23页 |
| ·编译程序的自动生成 | 第23-26页 |
| ·词法分析器和语法分析器的自动生成 | 第24页 |
| ·语义分析器的自动生成 | 第24-25页 |
| ·代码生成器的自动生成 | 第25-26页 |
| 第3章 面向 HCS12体系的 LCC移植 | 第26-56页 |
| ·LCC的整体结构 | 第26-37页 |
| ·LCC的构成 | 第26-27页 |
| ·代码生成接口 | 第27-30页 |
| ·Symbol和Type共享数据结构 | 第30-33页 |
| ·LCC的中间表示 | 第33-36页 |
| ·指令的选择和发送 | 第36-37页 |
| ·寄存器分配策略 | 第37页 |
| ·目标体系 HCS12特点 | 第37-43页 |
| ·寄存器组织 | 第38-40页 |
| ·数据类型 | 第40-41页 |
| ·寻址模式 | 第41-42页 |
| ·指令系统 | 第42-43页 |
| ·寄存器分配策略 | 第43页 |
| ·指令选择 | 第43-47页 |
| ·终结符的生成 | 第43-44页 |
| ·非终结符的选择 | 第44-45页 |
| ·规范编写原则 | 第45-46页 |
| ·规则示例 | 第46-47页 |
| ·函数实现 | 第47-49页 |
| ·数据的定义 | 第49-50页 |
| ·块的复制 | 第50-51页 |
| ·调试器接口 | 第51-52页 |
| ·复杂操作实现和汇编优化 | 第52-56页 |
| 第4章 基于 LCC的改进和能耗优化 | 第56-68页 |
| ·前端的改进 | 第56-58页 |
| ·增强的体系结构描述 | 第58-60页 |
| ·与后端的结合 | 第58-59页 |
| ·描述信息概要 | 第59-60页 |
| ·XML的解析 | 第60页 |
| ·基于图着色的寄存器分配 | 第60-63页 |
| ·算法概述 | 第60-62页 |
| ·实现思路 | 第62-63页 |
| ·尾递归优化 | 第63-65页 |
| ·尾递归示例 | 第63页 |
| ·尾递归的识别及删除 | 第63-65页 |
| ·尾调用优化 | 第65页 |
| ·能耗优化 | 第65-68页 |
| ·指令级功耗模型 | 第66页 |
| ·指令选择 | 第66-67页 |
| ·其他能耗优化技术 | 第67-68页 |
| 第5章 测试以及和同类产品比较 | 第68-76页 |
| ·功能测试和验证 | 第68-72页 |
| ·基于指令模板的分类测试 | 第68-70页 |
| ·LCC的testsuite测试 | 第70-71页 |
| ·测试环境搭建 | 第71-72页 |
| ·同类产品比较 | 第72-76页 |
| 第6章 总结和展望 | 第76-78页 |
| ·工作总结 | 第76-77页 |
| ·工作展望 | 第77-78页 |
| 附录一 参考文献 | 第78-81页 |
| 附录二 图表目录 | 第81-83页 |
| 研究生阶段个人研发经历 | 第83-85页 |
| 致谢 | 第85页 |