我正在一个基本的模块中阅读指令。在分配指令之后,我想为该变量创建一个存储,并在分配指令之后插入它。现在,我能够找到分配指令
if(AllocaInst *AI=dyn_cast<AllocaInst>(&i))但我不知道如何创建StoreInst。我只想将数字10存储在其中,而不管变量是哪种类型。
我试过像这样
StoreInst* stinst = new StoreInst(Value *Val, Value *Ptr, Instruction *InsertBefore);但是,我不知道如何替换Val,Ptr,以及如果下一个指令需要指向InsertBefore的指针,如何获得它的入口。
发布于 2016-01-28 13:57:59
要在指令后插入,可以使用insertAfter()方法。就你而言:
AI->insertAfter(stinst)要创建StoreInst,您需要为它提供
Value *Val是你想要存储的东西。在您的示例中,您需要创建一个表示"10“整数的Constant,然后将其传递到那里。Value *Ptr是您想要将值赋值的地方。我想,在你的情况下是AI。nullptr for Instruction *InsertBefore,因为您正在手动插入它。https://stackoverflow.com/questions/35062523
复制相似问题