如何将创建的基本块附加到功能

时间:2019-07-05 16:54:32

标签: c llvm

我正在尝试使用纯C API实现Kaleidoscope语言。本教程使用下一个c ++代码创建if条件:

...
BasicBlock *ThenBB = BasicBlock::Create(TheContext, "then", TheFunction);
BasicBlock *ElseBB = BasicBlock::Create(TheContext, "else");
...
TheFunction->getBasicBlockList().push_back(ElseBB);

ThenBB基本块是在TheFunction中插入时立即创建的。 ElseBB块已创建,并在一些代码后插入到函数中。

我试图弄清楚如何使用纯C API将现有的基本块插入TheFunction中。我找不到其他功能。

有一个功能void LLVMGetBasicBlocks(LLVMValueRef Fn, LLVMBasicBlockRef *BasicBlocks)可帮助您获取所有基本块,但是我敢打赌,如果我将TheFunction添加到{{1 }}。

0 个答案:

没有答案