【发布时间】:2015-10-21 05:14:01
【问题描述】:
我编写了一个简单的虚拟机,其中包含操作堆栈的指令,将堆栈值存储到寄存器中,将寄存器值加载到堆栈中,将值从寄存器移动到寄存器并设置寄存器值......我正在尝试编写一个真正的编译成这个 VM 字节码的简单语言,我还没有完成任何从地址跳转到地址的指令,但我觉得 VM 有足够的能力生成用于存储变量值的字节码。
虚拟机有 7 个寄存器:a、b、x、y、z、j 和 i。但是,如果我有 12 个包含简单整数的变量,我将如何将它们中的每一个存储在寄存器中?
我以前读过这个,很多时候人们都在谈论寄存器分配——我不知道如何在代码中实现它。我不确定如何开始,而且寄存器分配器似乎相当复杂。
是否有任何(真的)简单的寄存器分配器我可以查看或尝试实现?谁能为我简化解释,以便我尝试实现一个?
谢谢。
【问题讨论】:
标签: compiler-construction register-allocation