LLVM物理寄存器映射

时间:2018-02-09 08:20:26

标签: x86 llvm cpu-registers llvm-ir register-allocation

我在LLVM IR中有一些功能,它有一些输入参数。但是,我想保留一个在寄存器中传递的参数,我想只为x86编译它。例如,我正在编写一个包含添加指令的函数:

%sum = add i64 %val1, %val2

无论列表中的哪个args,我都保证val1在eax中,而val2在ebx物理寄存器中。如何在val1和eax之间进行映射?

1 个答案:

答案 0 :(得分:0)

如果我们修改GHC调用约定并按正确的顺序排序寄存器,这是可能的。不幸的是,它正在修改LLVM源,但它可以工作。