[backend-float]修复部分问题
This commit is contained in:
@@ -47,6 +47,13 @@ RISCv64RegAlloc::RISCv64RegAlloc(MachineFunction* mfunc) : MFunc(mfunc) {
|
||||
|
||||
// 寄存器分配的主入口点
|
||||
void RISCv64RegAlloc::run() {
|
||||
// --- 在所有流程开始前,构建完整的vreg到Value的反向映射 ---
|
||||
const auto& vreg_map_from_isel = MFunc->getISel()->getVRegMap();
|
||||
for (const auto& pair : vreg_map_from_isel) {
|
||||
Value* val = pair.first;
|
||||
unsigned vreg = pair.second;
|
||||
vreg_to_value_map[vreg] = val;
|
||||
}
|
||||
// 阶段 1: 处理函数调用约定(参数寄存器预着色)
|
||||
handleCallingConvention();
|
||||
// 阶段 2: 消除帧索引(为局部变量和栈参数分配栈偏移)
|
||||
|
||||
Reference in New Issue
Block a user