我试图了解以下 IRBuilder 方法在 LLVM 中的用途

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

没有针对它们的 doxygen 文档。例如,如果我第一次使用 mybuilder.GetInsertBlock() 会发生什么?

最佳答案

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

您提到的这对方法提供了对这些字段的直接访问。我猜它没有记录在案,因为直接访问它们不是使用 IRBuilder 的“正确”方式,但它们仍然很有用。

关于c++ - LLVM builder::GetInsertBlock,这个函数的目的是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22153756/

10-09 06:34