堆栈式计算机目标代码生成和相关优化技术的研究及实现
摘要 | 第1-5页 |
ABSTRACT | 第5-12页 |
注释表 | 第12-13页 |
第一章 绪论 | 第13-16页 |
·研究背景 | 第13-14页 |
·研究现状 | 第14页 |
·本文的主要工作 | 第14-15页 |
·本文的组织结构 | 第15-16页 |
第二章 BURS 代码生成技术及栈调度算法简介 | 第16-43页 |
·BURS 代码生成技术 | 第16-31页 |
·BURS 基本概念 | 第16-20页 |
·BURS 自动机 | 第20-28页 |
·LCC 及其 LBURG 工具 | 第28-31页 |
·栈调度算法 | 第31-42页 |
·栈调度算法的任务 | 第31页 |
·传统寄存器处理器平台下的寄存器分配算法 | 第31页 |
·堆栈处理器实现栈调度算法面临的困难 | 第31-33页 |
·Intra-Block 栈调度算法 | 第33-36页 |
·Inter-Boundary 栈调度算法 | 第36-38页 |
·Mark Shannon 全局栈调度算法一 | 第38页 |
·Mark Shannon 全局栈调度算法二 | 第38-42页 |
·本章小结 | 第42-43页 |
第三章 汇编代码生成器的设计与实现 | 第43-65页 |
·目标堆栈处理器的编译视角 | 第43-44页 |
·终结符与非终结符 | 第44-49页 |
·非终结符的设计 | 第44-45页 |
·终结符与终结符的自动生成 | 第45-49页 |
·规则 | 第49-62页 |
·叶节点 | 第50-52页 |
·栈帧的设计 | 第52-55页 |
·结果保存到数据栈 T 中的非叶节点操作符 | 第55-59页 |
·将数据栈栈顶元素保存到内存中 | 第59-60页 |
·跳转指令 | 第60-62页 |
·CALL、ARG、RET 指令 | 第62页 |
·函数的实现 | 第62-64页 |
·function 函数 | 第62-63页 |
·progbeg 函数 | 第63页 |
·emit2 函数 | 第63-64页 |
·本章小结 | 第64-65页 |
第四章 汇编器的设计与实现 | 第65-76页 |
·汇编文件的格式 | 第65-66页 |
·目标代码的格式 | 第66页 |
·中间文件的格式 | 第66-68页 |
·汇编器的设计 | 第68-74页 |
·汇编器总体结构图 | 第68-69页 |
·二次填写法与重写信息表 | 第69-70页 |
·关键模块的实现方法 | 第70-74页 |
·汇编器实施的简单优化 | 第74-75页 |
·去 NOP 优化 | 第74页 |
·LIT 与 LITC | 第74页 |
·实现方法 | 第74-75页 |
·本章小结 | 第75-76页 |
第五章 汇编指令优化器的设计与实现 | 第76-93页 |
·优化器的设计 | 第76-90页 |
·优化器的总体结构 | 第76-77页 |
·优化器的工作原理 | 第77-90页 |
·优化器的实现 | 第90-92页 |
·关键结构的定义 | 第90-91页 |
·全局数据 | 第91页 |
·关键模块的实现 | 第91-92页 |
·本章小结 | 第92-93页 |
第六章 仿真结果 | 第93-109页 |
·示例 C minus 源代码 | 第93页 |
·汇编代码生成器与汇编指令优化器生成的汇编代码 | 第93-98页 |
·流图 | 第98-100页 |
·汇编器生成的中间文件的内容 | 第100-101页 |
·汇编器和优化器配合生成的目标代码 | 第101-102页 |
·仿真结果 | 第102-109页 |
·比较跳转 | 第102-103页 |
·局部变量的引用 | 第103页 |
·子函数调用及返回 | 第103-104页 |
·汇编指令优化器对局部变量引用实施的优化 | 第104-105页 |
·汇编器实施的简单优化 | 第105-106页 |
·汇编指令优化器对跨基本块引用实施的优化 | 第106页 |
·优化前与优化后的对比 | 第106-108页 |
·优化算法的简单比较 | 第108-109页 |
第七章 总结与展望 | 第109-111页 |
·总结 | 第109-110页 |
·展望 | 第110-111页 |
参考文献 | 第111-114页 |
致谢 | 第114-115页 |
在学期间的研究成果及发表的学术论文 | 第115页 |