- 4
- 0
- 约6.47千字
- 约 50页
- 2018-12-27 发布于河南
- 举报
第十二章代码生成
第12章 代码生成 12.1 代码生成概述 将中间语言转换成特定目标机的机器语言或汇编语言。 代码生成要考虑的主要问题: 基本块的代码生成:在一个基本块范围内考虑如何充分利用寄存器的问题。 具体细节依赖于目标机器的指令系统、硬件配置和操作系统。 目标代码的质量:占用空间、执行效率 12.1.1 代码生成程序在编译系统中的位置 目标代码的三种形式 地址代真的机器代码 待装配的机器代码模块 汇编语言(宏汇编)机器指令形式 12.1.2 设计代码生成程序的基本问题 1.代码生成程序的输入 中间代码和符号表中的信息 语义分析时直接生成代码 2.指令选择:指令系统 3.寄存器分配:充分利用寄存器 4.指令调度:选择计算次序 指令选择 选择计算机指令系统 基本原则 (1) 减小产生代码的尺寸 (2) 减小目标代码的执行时间 (3) 降低目标代码的能耗 指令选择 对于同一个指令系统,对于同样的中间代码,可以选择不同的指令生成代码序列。 例如:x:=y+z,其中x,y,z均为静态变量,代码序列如下: LD R0 ,y ADD R0 ,z ST R0 ,x 四元式 a:=a+1 用 INC a 一条指令即可实现。 寄存器分配 指令调度 确定程序指令的执行顺序 实现(a+b)+c的优化与否的两个指令序列 LD R1 ,a
原创力文档

文档评论(0)