2014-10-07 61 views
0

如何确定物理CPU寄存器在给定时间是否包含“已使用”值,即它是否带电?我正在使用LLVM 3.4 C++ API。LLVM:检查物理寄存器是否带电

+1

LLVM在物理寄存器甚至输入图片之前可能会做的90%。你真的在写一个RA之后的机器码传递吗? – delnan 2014-10-07 14:36:10

+0

我不想写一个传球(编辑:除非我必须)。我在多个实例中使用由llvm编译的程序,我想比较包括堆栈和物理寄存器在内的实例的状态。 – hooch 2014-10-07 14:47:47

+0

您可以分析机器代码,看看寄存器是否会在下一条指令写入之前被读取。不幸的是,我不知道如何让LLVM帮助你。 – delnan 2014-10-07 14:59:23

回答

1

简答:你不能。长时间回答:LLVM IR表示一些具有无限数量键入寄存器的虚拟机。没有任何信息在代码生成之前如何将所有东西变成物理寄存器。

执行寄存器分配后,注册活动信息在后端内部可用。