我正在阅读基本块中的说明。在分配指令之后,我想为该变量创建一个存储,并在分配指令之后插入它。 现在我可以用
找到分配指令if(AllocaInst *AI=dyn_cast<AllocaInst>(&i))
但我不知道如何创建StoreInst。我只想在其中存储数字10,无论变量是哪种类型。
我试过这个
StoreInst* stinst = new StoreInst(Value *Val, Value *Ptr, Instruction *InsertBefore);
但是我不知道该替代Val,Ptr以及如果需要指向InsertBefore的指针如何获取下一条指令的地址
答案 0 :(得分:2)
要在指示后插入,您可以使用insertAfter() method。在你的情况下:
AI->insertAfter(stinst)
要创建StoreInst
,您需要提供
Value *Val
是您要存储的内容。在您的情况下,您需要创建一个Constant
代表&#34; 10&#34;整数然后传递给那里。Value *Ptr
是您要放置值的位置。我想,你的情况是AI
。nullptr
代表Instruction *InsertBefore
,因为您是手动插入的。