LLVM IRBuilder:在特定指令后设置插入点

LLVM IRBuilder: set insert point after a particular instruction

LLVM IRBuilder 函数SetInsertPoint (Instruction *I) 指定创建的指令应插入到指定指令之前。

如何在特定指令后设置插入点?我找不到可以直接做的功能。

不能将插入点设置在给定指令之后 -- 相反,您应该将其设置在下一条指令之前。

要获得指向下一条指令的指针,您可以使用 Instruction 上可用的 getNextNode() 方法:

Builder.SetInsertPoint(I->getNextNode());

或者你可以将指令指针变成一个迭代器并推进它:

BasicBlock::iterator it(I);
it++;
Builder.SetInsertPoint(it);