[llvm-dev] LLVM 3.8.0 - Adding new instruction to a basic block
Ryan Taylor via llvm-dev
llvm-dev at lists.llvm.org
Mon Sep 5 08:13:58 PDT 2016
Try incrementing the iterator before using.
On Sep 5, 2016 10:26, "Simona Simona via llvm-dev" <llvm-dev at lists.llvm.org>
> On Mon, Sep 5, 2016 at 3:20 AM, Daniel Berlin <dberlin at dberlin.org> wrote:
>> On Sun, Sep 4, 2016 at 1:06 PM, Simona Simona via llvm-dev <
>> llvm-dev at lists.llvm.org> wrote:
>>> I'm trying to add a new instruction after a given instruction in a basic
>>> Until LLVM 3.7, I was using the following code:
>>> BB->getInstList().insertAfter(I, new_inst);
>>> [where both I and new_inst are Instruction*]
>>> In LLVM 3.8 however, the SymbolTableList was created as a wrapper over
>>> Could anyone please tell me how I can do the same type of insertion in
>>> LLVM 3.8?
>> auto InsertPt = I->getIterator();
>> BB->getInstList().insert(InsertPt, new_inst);
> Thanks, Daniel!
> In your example, isn't "insert" inserting "new_inst" *before* instruction
> As I would like to insert the "new_inst" instruction after "I", shouldn't
> it be
> BB->getInstList().insertAfter(InsertPt, new_inst); ?
> With insert I currently get the following error:
> Instruction does not dominate all uses!
> %0 = getelementptr inbounds i8, i8* getelementptr inbounds ([8 x
> i8], [8 x i8]* @1, i32 0, i32 0)
> call void @myCall(i8* %0)
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev