在LLVM中实现一个寄存器分配器

Implement a Register Allocator in LLVM

本文关键字:一个 寄存器 分配器 LLVM 实现      更新时间:2023-10-16

我正在完成我的本科课程项目,包括对寄存器分配算法的实验分析。对于这项任务,我使用了LLVM项目中的一组工具。

然而,我已经阅读了LLVM项目的文档,还没有找到一种方法把拼图的碎片放在一起。到目前为止我知道:

  • 当pass的工作与LLVM相关联时,我知道我必须实现MachineFunctionPass pass。
  • 我遵循一些建议来查看基本分配器代码,但不能理解太多。

我打算实现的分配器是基于图着色启发式的,因为这类方法的操作理论我很清楚。

所以我寻找的是某种"如何",一组定义的步骤来实现这样的分配器。这听起来像是粗心大意,但我必须在大约六个月内交付工作,我有点困惑。

如果有人能给我一些指导或参考任何支持材料(除了自己的文档),我将不胜感激。

我的英语可能有点错,我是巴西学生。

过了一会儿,我完成了我的项目,并写了一个如何使用RegAllocBase接口编写LLVM寄存器分配器的教程。

本教程是用reStructuredText编写的,可以在GitHub上找到:https://github.com/nael8r/How-To-Write-An-LLVM-Register-Allocator