LLVM - 如何获取指令的结果变量

Pha*_*tom 5 llvm llvm-c++-api

我是 LLVM 的初学者,我有一个简单的问题,但我在文档中找不到解决方案。

我正在做一个计算指令的函数传递,为此我需要指令中的所有“数据”,我的意思是运算符、所有操作数和结果。

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

%add1 = add nsw i32 %x, %y
Run Code Online (Sandbox Code Playgroud)

我可以有xy名称和变量,我可以有 opCode,我可以有add1名称,但是,我不能有add1变量。

我从文档的说明页面阅读了所有功能,但找不到任何看起来像我正在寻找的东西。

那么什么是可以解决我的问题的正确 API?

小智 5

Instruction继承自Value并因此具有getName()解决您的问题的方法。但请记住,指令可以是未命名的(例如%0),并且getName在这种情况下可能不会返回任何有用的内容

  • 正如我所说,我知道我可以获得指令的“名称”,所以你没有回答我的问题。但我没有注意到Instruction继承自Value这一事实,所以我可以使用Instruction作为Value,这回答了我的问题!所以你解决了我的问题,谢谢;) (2认同)