如何获得给定指令的下一个即时指令?

Sta*_*ich 3 llvm llvm-ir

我正在寻找一种正确的方法来获得遵循给定指令的下一个立即指令.

我们假设我有以下内容:

%10 = icmp slt i32 %8, %9
br i1 %10, label %11, label %17
Run Code Online (Sandbox Code Playgroud)

我有一个

  CmpInst *cmpInst = dyn_cast<CmpInst>(&V);
Run Code Online (Sandbox Code Playgroud)

对应于%10.

我怎样才能访问BranchInst我的CmpInst

我假设一个解决方案应该考虑两种情况:当有下一条指令而没有一条指令时,即它是a的结尾BasicBlock.

Sta*_*ich 6

事实证明这很简单:

Instruction *instruction = cmpInst->getNextNode();
Run Code Online (Sandbox Code Playgroud)