Как вставить первую инструкцию в пустой базовый блок в llvm

Вставка новой инструкции llvm в непустой базовый блок действительно довольно проста: просто итерируйте существующие инструкции, пока не достигнете желаемого места, и не используйте

newInst->insertBefore(thatInst);

команда. Тем не менее, когда я смотрю на BasicBlock интерфейс здесь, я не могу найти, как вставить эту первую инструкцию? Я имею в виду, когда свежий базовый блок был только что выделен, и он все еще пуст, как вставить первую инструкцию внутрь? Спасибо!

1 ответ

Решение

Вы можете использовать IRBuilder как это:

llvm::IRBuilder builder(basicBlock);
builder.createAdd(...); // Replace "Add" as appropriate

Или, если вы хотите вставить уже существующий объект инструкции:

builder.insert(instruction);
Другие вопросы по тегам