LLVM builder :: GetInsertBlock,这个函数的目的是什么?

时间:2014-03-03 17:51:52

标签: c++ llvm

我正在尝试了解LLVM中使用以下IRBuilder方法的内容

BasicBlock *GetInsertBlock() const { return BB; }
BasicBlock::iterator GetInsertPoint() const { return InsertPt; }

他们没有doxygen文档。例如,如果我第一次使用mybuilder.GetInsertBlock()

会发生什么

1 个答案:

答案 0 :(得分:1)

IRBuilder有一个“当前插入点”概念。例如,如果您创建一对指令,则它知道第二个指令在第一个指令之后。信息保存在哪里?在那些BBInsertPt字段中,指向当前的基本块和指令。

您提到的这两种方法可以直接访问这些字段。我猜它没有记录,因为直接访问它们不是使用IRBuilder的“正确”方式,但它们仍然有用。