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

时间:2015-10-25 07:01:29

标签: llvm

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

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

1 个答案:

答案 0 :(得分:8)

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

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

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

或者您可以将指令指针转换为迭代器并将其前进:

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