【发布时间】:2016-02-10 14:42:04
【问题描述】:
我想知道 llvm::intruction 是否是函数调用,如果是,它调用的函数的名称是什么。
还有一种方法可以从 llvm::Instruction 获取 llvm::CallInst 吗?
【问题讨论】:
标签: llvm
我想知道 llvm::intruction 是否是函数调用,如果是,它调用的函数的名称是什么。
还有一种方法可以从 llvm::Instruction 获取 llvm::CallInst 吗?
【问题讨论】:
标签: llvm
Instruction* I = ...
if (isa<CallInst>(I)) {
StringRef name = cast<CallInst>(I).getCalledFunction().getName();
...
}
有关这方面的更多信息,请参阅the relevant section in LLVM Programmer's Manual。总的来说,我全心全意地向初学者推荐本指南。
【讨论】:
Instruction 是所有 LLVM 指令的通用基类。
CallInst 是 Instruction 的子类,用于调用指令。
如果您有Instruction *inst,您可以通过
CallInst
CallInst *ci = cast<CallInst>(inst);
【讨论】: