0

我正在使用 llvm 在我的源代码上运行模块传递。对于某条指令,我想在代码中的下一条指令之前插入 2 或 3 条指令。我目前正在做的是Instruction->getNextNode() 作为最后一个参数传递给 IRBuilderCreateCall()函数,以便在代码中的下一个节点之前插入指令。如何在下一个节点之前插入多条指令。

4

1 回答 1

1

只需将指令保存到 some 中Instruction*,然后继续传递与之前要插入的锚点相同的指令,它就可以正常工作。考虑一下:

    foo
    bar
--> baz

baz是最后一条指令。abc现在,您在之前插入baz

    foo
    bar
    abc
--> baz

现在你在bcd之前插入baz

    foo
    bar
    abc
    bcd
--> baz

继续插入之前baz,您将获得插入说明的预期顺序。如果您想在bcd 之前 abc而不是之后插入,只需abc在创建时将其作为“插入之前的指令”传递。

于 2013-07-29T12:55:57.190 回答