Как добавить созданный базовый блок в функцию - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь реализовать язык Kaleidoscope , используя чистый C API.Учебное пособие использует следующий код c ++ для создания условия if:

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

ThenBB базовый блок создается с непосредственной вставкой в ​​TheFunction.Блок ElseBB создается и вставляется в функцию после некоторого кода.

Я пытаюсь выяснить, как вставить существующий базовый блок в TheFunction, используя чистый C API.Я не могу найти альтернативную функцию.

Существует функция void LLVMGetBasicBlocks(LLVMValueRef Fn, LLVMBasicBlockRef *BasicBlocks), которая может помочь вам получить все основные блоки, но я уверен, что основной блок не будет добавлен к TheFunction, если я добавлю ElseBB кBasicBlocks.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...