llvm使用llvm指令获取被调用的函数名
llvm get called function name using llvm instruction
我想知道 llvm::intruction 是否是函数调用,如果是,它调用的函数名称是什么。
还有办法从 llvm::Instruction 中获取 llvm::CallInst 吗?
Instruction* I = ...
if (isa<CallInst>(I)) {
StringRef name = cast<CallInst>(I).getCalledFunction().getName();
...
}
有关这方面的更多信息,请参阅 the relevant section in LLVM Programmer's Manual。总的来说,我全心全意地向初学者推荐这个指南。
Instruction
是所有 LLVM 指令的公共基础 class。
CallInst
是 Instruction
的子class 调用指令。
如果你有Instruction *inst
,你可以通过
获得CallInst
CallInst *ci = cast<CallInst>(inst);
我想知道 llvm::intruction 是否是函数调用,如果是,它调用的函数名称是什么。
还有办法从 llvm::Instruction 中获取 llvm::CallInst 吗?
Instruction* I = ...
if (isa<CallInst>(I)) {
StringRef name = cast<CallInst>(I).getCalledFunction().getName();
...
}
有关这方面的更多信息,请参阅 the relevant section in LLVM Programmer's Manual。总的来说,我全心全意地向初学者推荐这个指南。
Instruction
是所有 LLVM 指令的公共基础 class。
CallInst
是 Instruction
的子class 调用指令。
如果你有Instruction *inst
,你可以通过
CallInst
CallInst *ci = cast<CallInst>(inst);