下载此文档

编译原理 代码生成.ppt


文档分类:IT计算机 | 页数:约106页 举报非法文档有奖
1/106
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/106 下载此文档
文档列表 文档介绍
第九章代码生成学****内容?目标机器?存储管理?基本块、流图?简单代码生成算法?寄存器分配?窥孔优化?基本块 dag 表示、从 dag 生成代码 设计中的问题 ?前端生成的中间表示形式?线性化表示:后缀表示形式?四元式表示:三地址码?虚拟机表示:抽象栈机器代码?图形化表示:语法树、 DAG ?符号表信息?类型检查、类型转换已完成?输入是无错误的设计中的问题(续) ?绝对机器语言?固定内存地址,可直接执行?可重定位机器语言?多模块连接?灵活、分别编译?汇编语言?简单——符号指令、宏的使用设计中的问题(续) ?名字?数据地址,与前端协作?符号表?标号?指令地址? backpatching 技术设计中的问题(续) ?指令集特性?一致性、完整性?指令速度、机器特性?代码质量:速度、大小?丰富的指令集?多种代码生成方式?选择最高效方式设计问题(续) ? allocation 、 assignment ?最优化 assignment —— NP- 完全问题? register-pair ?调整计算顺序?提高效率? NP- 完全问题设计问题(续) ?正确性是第一位的?设计目标:易于实现、测试、维护? 节:生成算法, 节:窥孔优化? 节:寄存器使用算法——控制流? 、 节:代码选择? 节:代码生成——树重构 目标机器?寄存器: R0 , R1 ,…, Rn -1 ?指令: op source, destination ?寻址方式 MOV R0, M MOV 4(R0), M MOV * 4(R0), M 1 contents(c+contents(R)) * c(R) 间接索引 0 contents(R) *R 间接寄存器 1 c+contents(R) c(R) 索引 0R R寄存器 1M M 绝对额外开销地址形式寻址方式指令开销?长度 1. MOV R0, R1 :开销 1 2. MOV R5, M :开销 2 3. ADD #1, R3 :开销 2 4. SUB 4(R0), * 12(R1) :开销 3

编译原理 代码生成 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数106
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小334 KB
  • 时间2017-05-21