Last updated 4 months ago
代码生成器根据中间表示(IR)生成代码,代码生成器之前可能有一个优化组件。
代码生成器的三个任务:
指令选择:选择适当的指令实现IR语句
寄存器分配和指派:把哪个值放在哪个寄存器中
指令排序:按照什么顺序安排指令执行
要解决的问题:
正确性:正确的机器指令;易于实现、测试和维护。
输入IR的选择:四元式、三元式、字节代码、堆栈机代码、后缀表示、抽象语法树、DAG图等
输出:RISC、CISC;可重定向代码、汇编语言