我正在尝试使用纯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 }}。