[LLVMdev] Instruction insertion By Module Pass

Rasha Omar rasha.sala7 at gmail.com
Wed Jul 31 05:20:52 PDT 2013


Thank you for your help
I tried
    Instruction* p=&( Bb->front());
    Type * Int32Type = IntegerType::getInt32Ty(getGlobalContext());
    AllocaInst* newInst = new AllocaInst(Int32Type,"flag", p);
that works well
but I need to store the value of the variable too.
What's the method that could be used to store specific value??




On 30 July 2013 16:01, John Criswell <criswell at illinois.edu> wrote:

>  On 7/30/13 7:44 AM, Rasha Omar wrote:
>
>  Hi,
>  I need to insert new instruction into every basic block like x=1
>  or while loop
>  I tried this code, but it doesn't work
>
> Type * Int32Type = IntegerType::getInt32Ty(getGlobalContext());
>  AllocaInst* newInst = new AllocaInst(Int32Type,"flag", Bb);
>  Bb->getInstList().push_back(newInst);
>
>
> The problem is that you've inserted the AllocaInst into the basic block
> via the AllocaInst constructor (note the Bb at the end of the line with new
> AllocaInst).  You then attempt to insert the AllocaInst into the BasicBlock
> Bb a second time with the last line.  Note that the assertion is telling
> you that you're inserting the alloca instruction twice.
>
> Remove the last line, and it should fix your problem.
>
> -- John T.
>
>
> the error:
> void llvm::SymbolTableListTraits<llvm::Instruction,
> llvm::BasicBlock>::addNodeToList(ValueSubClass *) [ValueSubClass =
> llvm::Instruction, ItemParentClass = llvm::BasicBlock]: Assertion
> `V->getParent() == 0 && "Value already in a container!!"' failed.
>
>   Is there a class I could use to insert while loop in Module Pass?
>
>  Thank you in advance
>
> --
> *     Rasha Salah Omar
>      Msc Student at E-JUST
>      Demonestrator  at Faculty of Computers and Informatics
>      Benha University*
>
> *     e-mail: rasha.omar at ejust.edu.eg*
>  P* Please consider the environment before printing this email.*
>
>
>
> _______________________________________________
> LLVM Developers mailing listLLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>


-- 
*     Rasha Salah Omar
     Msc Student at E-JUST
     Demonestrator  at Faculty of Computers and Informatics
     Benha University*

*     e-mail: rasha.omar at ejust.edu.eg*
 P* Please consider the environment before printing this email.*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130731/ffb3ca31/attachment.html>


More information about the llvm-dev mailing list