使用llvm指令调用llvm函数名

使用llvm指令调用llvm函数名,llvm,Llvm,我想知道llvm::Int指令是否是函数调用,如果是,它调用的函数的名称是什么 还有一种方法可以从llvm::指令获取llvm::CallInst吗 指令*I=。。。 Instruction* I = ... if (isa<CallInst>(I)) { StringRef name = cast<CallInst>(I).getCalledFunction().getName(); ... } 如果(isa(I)){ StringRef name=cast(

我想知道llvm::Int指令是否是函数调用,如果是,它调用的函数的名称是什么

还有一种方法可以从llvm::指令获取llvm::CallInst吗

指令*I=。。。
Instruction* I = ...
if (isa<CallInst>(I)) {
  StringRef name = cast<CallInst>(I).getCalledFunction().getName();
  ...
}
如果(isa(I)){ StringRef name=cast(I).getCalledFunction().getName(); ... }
有关这方面的详细信息,请参阅。一般来说,我衷心向初学者推荐本指南。

是所有LLVM指令的通用基类

是调用指令的
指令
的子类

如果您有
说明*inst
,您可以通过

CallInst *ci = cast<CallInst>(inst);
CallInst*ci=cast(inst);

谢谢。现在我看到指令.h是CallInst的基类。我得到一个错误,错误是:无法在初始化中将“const llvm::CallInst”转换为“llvm::CallInst*”