Как вставить первую инструкцию в пустой базовый блок в llvm
Вставка новой инструкции llvm в непустой базовый блок действительно довольно проста: просто итерируйте существующие инструкции, пока не достигнете желаемого места, и не используйте
newInst->insertBefore(thatInst);
команда. Тем не менее, когда я смотрю на BasicBlock
интерфейс здесь, я не могу найти, как вставить эту первую инструкцию? Я имею в виду, когда свежий базовый блок был только что выделен, и он все еще пуст, как вставить первую инструкцию внутрь? Спасибо!
1 ответ
Решение
Вы можете использовать IRBuilder
как это:
llvm::IRBuilder builder(basicBlock);
builder.createAdd(...); // Replace "Add" as appropriate
Или, если вы хотите вставить уже существующий объект инструкции:
builder.insert(instruction);