LLVM:检查物理寄存器是否处于活动状态

LLVM:检查物理寄存器是否处于活动状态,llvm,llvm-c++-api,Llvm,Llvm C++ Api,如何确定物理CPU寄存器在给定时间是否包含“已用”值(即是否为活动值)?我使用LLVM 3.4 C++ API。< /P> < P>简短回答:你不能。详细回答:LLVM IR表示具有无限多个类型化寄存器的虚拟机。在代码生成之前,没有关于如何将所有内容转换为物理寄存器的信息 寄存器活跃度信息在执行寄存器分配后在后端可用。90%的LLVM操作发生在物理寄存器进入图片之前。你真的在写一个post RA机器代码通行证吗?我不想写通行证(编辑:除非我必须写)。我在多个实例中使用llvm编译的程序,我想比较

如何确定物理CPU寄存器在给定时间是否包含“已用”值(即是否为活动值)?我使用LLVM 3.4 C++ API。< /P> < P>简短回答:你不能。详细回答:LLVM IR表示具有无限多个类型化寄存器的虚拟机。在代码生成之前,没有关于如何将所有内容转换为物理寄存器的信息


寄存器活跃度信息在执行寄存器分配后在后端可用。

90%的LLVM操作发生在物理寄存器进入图片之前。你真的在写一个post RA机器代码通行证吗?我不想写通行证(编辑:除非我必须写)。我在多个实例中使用llvm编译的程序,我想比较实例的状态,包括堆栈和物理寄存器。您可以分析机器代码,看看在下一条指令写入寄存器之前是否会读取寄存器。不幸的是,我不知道如何让LLVM帮助您,我希望LiveVariables函数pass可以帮助我。但我无法将其添加到我的函数传递管理器中,因为其他传递尚未初始化。。。