LLVM IRBuilder函数SetInsertPoint(指令*I)指定应在指定指令之前插入创建的指令.
如何在特定指令后设置插入点?我找不到可以直接做到的功能.
插入点不能设置为在给定指令之后 - 相反,您应将其设置为在下一条指令之前.
要获取指向下一条指令的指针,可以使用以下getNextNode()方法Instruction:
Builder.SetInsertPoint(I->getNextNode());
Run Code Online (Sandbox Code Playgroud)
或者你可以将指令指针转换为迭代器并推进它:
BasicBlock::iterator it(I);
it++;
Builder.SetInsertPoint(it);
Run Code Online (Sandbox Code Playgroud)