在LLVM中实现一个寄存器分配器
Implement a Register Allocator in LLVM
我正在完成我的本科课程项目,包括对寄存器分配算法的实验分析。对于这项任务,我使用了LLVM项目中的一组工具。
然而,我已经阅读了LLVM项目的文档,还没有找到一种方法把拼图的碎片放在一起。到目前为止我知道:
- 当pass的工作与LLVM相关联时,我知道我必须实现MachineFunctionPass pass。
- 我遵循一些建议来查看基本分配器代码,但不能理解太多。
我打算实现的分配器是基于图着色启发式的,因为这类方法的操作理论我很清楚。
所以我寻找的是某种"如何",一组定义的步骤来实现这样的分配器。这听起来像是粗心大意,但我必须在大约六个月内交付工作,我有点困惑。
如果有人能给我一些指导或参考任何支持材料(除了自己的文档),我将不胜感激。
我的英语可能有点错,我是巴西学生。
过了一会儿,我完成了我的项目,并写了一个如何使用RegAllocBase
接口编写LLVM寄存器分配器的教程。
本教程是用reStructuredText
编写的,可以在GitHub上找到:https://github.com/nael8r/How-To-Write-An-LLVM-Register-Allocator
相关文章:
- 本质:使用__128寄存器
- 将寄存器设计成可由C和C++访问的外设的最佳实践
- 在模拟器中使用并集来模拟CPU寄存器有多合适
- 全局变量 多读取器 一个写入器多线程安全?
- 使用英特尔 PIN 修改寄存器
- AVX 指令中寄存器和指针之间的客观差异
- 如何确定我的处理器有多少个 AVX 寄存器?
- 除非使用某些寄存器,否则函数挂钩会崩溃
- 寄存器上的管道计算
- 其中关于内存和寄存器的左值和右值
- 有没有办法强制C++编译器将变量存储在寄存器中?
- "变量":函数中函数作用域不允许初始化的自动或寄存器变量'naked'
- Atmel Studio:返回一个包含数组的寄存器
- 使用 googletest 测试嵌入式C++代码时处理外设寄存器的重复符号
- 我用c++做了一个转换器,把英里转换成公里,把公里转换成英里,把赛尔修斯转换成法赫伦海特,把法赫伦海特转换成赛尔修斯
- 使用 Windows 寄存器查找下一个"Daylight Saving Time"
- 为什么 MSVC 在寄存器中返回一个小结构时不必要地使用堆栈
- RegQueryValueEx返回另一个寄存器的值的奇怪行为
- 信号11能在一个mov指令中从一个寄存器被激发到另一个寄存器吗?
- 在LLVM中实现一个寄存器分配器