1 代码生成器的主要任务
选择适当嘚目标机指令来实现中间表示(IR)语句
(2)寄存器分配和指派
2 一个简单的目标机模型
指令选择:为中间表示语句选择合适的目标指令序列
(1)彡地址语句的目标代码生成
(2)寄存器描述符和地址描述符
(3)基本块的收尾处理
对于一个在基本块的出口处可能活跃的变量x , 如果它的地址描述符表明它的值没有存放在x的内存位置上,则生成指令“ST x, R” (R是在基本块结尾处存放 x值的寄存器 )
(4)管理寄存器和地址描述符
5 寄存器选择函数getReg的设计
窥孔(peephole)是程序上的一个小的滑动窗口
窥孔优化是指在优化的时候检查目标指令的一个滑动窗口(即窥孔) ,并且只要有可能就在窥孔内用更快或更短的指令来替换窗口中的指令序列
也可以在中间代码生成之后直接应用窥孔优化来提高中间表示形式的质量