2015-04-16 120 views
4

的结果变量我与LLVM一个初学者,我有一个简单的问题,但我不能找到文档中的解决方案。LLVM - 如何得到一个指令

我做一个函数的工作于指令计算,为此我需要所有的“数据”从指令,我的意思是操作者,所有操作数和结果。

我的问题是,我无法得到结果变量。例如,对于指令:

%add1 = add nsw i32 %x, %y 

我可以有Xÿ名和变量,我可以拥有操作码,我可以有ADD1名字,但是,我不能有ADD1变量。

我从Instruction页的文件读取所有的功能,我找不到任何谁看起来像什么我要找的。

那么什么是适当的API可以解决我的问题?

+0

返回任何有用的只是一个侧面说明:你最好不要使用LLVM IR的“变量”一词,因为' %add1' *是**指令**,它使用** *%x *和*%y *(操作数),它可以是** Value **的任何子类实例。 *变量*仅正式用于[GlobalVariable](http://www.llvm.org/docs/doxygen/html/classllvm_1_1GlobalVariable.html)。 –

回答

4

Instruction继承自Value,因此有方法getName()可以解决您的问题。 但请记住,指令可以是未命名(如%0)和getName可能不会在这种情况下

+2

正如我所说的,我知道我可以得到指令的'名字',所以你没有回答我的问题。但是我没有注意到指令继承自Value的事实,所以我可以使用指令作为一种价值,这回答了我的问题!所以你解决我的问题,谢谢;) – Phantom

+0

我没有得到如何得到add1变量使用指令是一个价值的事实。 – excavator