当我想在basicblock中插入一些指令时,为什么会这么麻烦?

时间:2012-12-26 03:55:08

标签: insert llvm llvm-ir

当我尝试在basicblock中插入一些指令时,我发现它很麻烦。

AllocaInst* pa = new AllocaInst(Type::getInt32Ty(getGlobalContext()), 0, 4, "dataKey");
Value* dataValue = ConstantInt::get(IntegerType::get(getGlobalContext(),6) , 100);

以上是我使用的一些代码。现在我还不明白在basicblock中插入各种指令的原理。(我只能插入一个allocaInst)。我希望有人可以告诉我一些在basicblock中插入各种指令的例子。

1 个答案:

答案 0 :(得分:1)

首先,插入说明的主题是covered in the LLVM Programmer's Manual,我建议看看。程序员手册是初学者的好地方。

此外,LLVM源代码本身也有大量示例。例如:

或者,如果您想添加多个新指令,请考虑使用IRBuilder,这样可以更方便地添加它们; here's a tutorial on how to use an IRBuilder