编译课设编译器优化文档
编译器优化文档
本编译器设计初步就采用了寄存器分配和释放的分配策略,此外未进行额外的优化。
在分配寄存器时,遇到的问题主要是不易确定何时释放寄存器,过早释放会丢失其中存储的值,过晚释放会影响分配效率。由于一个 value 在声明后最多只有一个 user 对其进行使用,所以一旦唯一的 user 将其使用后,该 value 就没有其余的使用点了,此时可以在寄存器池中进行释放。
此外还遇到了寄存器池划分的问题,最开始的寄存器包括了参数寄存器,这样会影响函数调用前参数的分配,产生额外 bug。
学期末任务比较重所以只做到了堪堪没有 TLE,有机会还是希望好好研究一下优化的(哭
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 sin!