我想知道llvm :: intruction是否是一个函数调用,如果是,那么它调用的函数的名称是什么。
还有办法从llvm :: Instruction获取llvm :: CallInst吗?
答案 0 :(得分:4)
Instruction* I = ...
if (isa<CallInst>(I)) {
StringRef name = cast<CallInst>(I).getCalledFunction().getName();
...
}
有关详细信息,请参阅the relevant section in LLVM Programmer's Manual。总的来说,我全心全意地为初学者推荐这本指南。
答案 1 :(得分:2)
Instruction
是所有LLVM指令的公共基类。
CallInst
是Instruction
的子类,用于调用指令。
如果您有Instruction *inst
,则可以通过
CallInst
CallInst *ci = cast<CallInst>(inst);