Compilation 汇编代码生成是如何工作的?
我最近一直在研究编译器设计。我已经很好地掌握了解析阶段,但是在理解代码生成的工作原理时遇到了一些困难 据我所知,代码生成阶段似乎有3个主要步骤:Compilation 汇编代码生成是如何工作的?,compilation,compiler-construction,code-generation,Compilation,Compiler Construction,Code Generation,我最近一直在研究编译器设计。我已经很好地掌握了解析阶段,但是在理解代码生成的工作原理时遇到了一些困难 据我所知,代码生成阶段似乎有3个主要步骤: 指令选择(贪婪平铺) 指令调度 寄存器分配 现在,指令调度有点超出了我目前正在尝试的范围,我认为通过更多的研究和原型设计,我可能会将注意力集中在寄存器分配的图着色算法上 让我感到困惑的是第一步,教学选择。从我所读到的内容来看,目标机器语言中的每条指令都由一个平铺表示;目标是找到与树的最大部分匹配的指令(因此昵称为贪婪平铺) 我感到困惑的是,当指令实
- 指令选择(贪婪平铺)
- 指令调度
- 寄存器分配
%x的指令
mov %x, %y
add %x, %z