在 LLVM 中实现寄存器分配器
Implement a Register Allocator in LLVM
我正在完成我的本科课程项目,包括对寄存器分配算法的实验分析。对于此任务,我使用了 LLVM 项目中的工具集。
但是,我已经阅读了 LLVM 项目的文档,但尚未找到将拼图拼凑在一起的方法。目前我知道:
- 作为通行证,让他们参与 LLVM,并且知道我必须实施 MachineFunctionPass pass。
- 我按照一些建议查看了 Basic Allocator 代码,但没能看懂多少。
我打算实现的分配器基于图形着色启发式,因为我很清楚此类方法的操作理论。
所以我寻找的是某种 "How to",一组定义的步骤来实现这样的分配器。听起来有点粗心,但我必须在大约六个月内交付工作,我有点困惑。
如果有人能给我一些指导或参考任何支持 material(除了自己的文档),我将不胜感激。
我的英语可能有点不对,我是巴西学生。
好吧,一段时间后我完成了我的项目并编写了如何使用 RegAllocBase
接口编写 LLVM 寄存器分配器的教程。
本教程已在 reStructuredText
中编写,可在 GitHub 上找到:https://github.com/nael8r/How-To-Write-An-LLVM-Register-Allocator
我正在完成我的本科课程项目,包括对寄存器分配算法的实验分析。对于此任务,我使用了 LLVM 项目中的工具集。
但是,我已经阅读了 LLVM 项目的文档,但尚未找到将拼图拼凑在一起的方法。目前我知道:
- 作为通行证,让他们参与 LLVM,并且知道我必须实施 MachineFunctionPass pass。
- 我按照一些建议查看了 Basic Allocator 代码,但没能看懂多少。
我打算实现的分配器基于图形着色启发式,因为我很清楚此类方法的操作理论。
所以我寻找的是某种 "How to",一组定义的步骤来实现这样的分配器。听起来有点粗心,但我必须在大约六个月内交付工作,我有点困惑。
如果有人能给我一些指导或参考任何支持 material(除了自己的文档),我将不胜感激。
我的英语可能有点不对,我是巴西学生。
好吧,一段时间后我完成了我的项目并编写了如何使用 RegAllocBase
接口编写 LLVM 寄存器分配器的教程。
本教程已在 reStructuredText
中编写,可在 GitHub 上找到:https://github.com/nael8r/How-To-Write-An-LLVM-Register-Allocator