Идентификатор или номер инструкции в LLVM IR

В Execution.cpp я могу получить все инструкции и значения всех переменных. Есть ли способ получить идентификатор или номер каждой инструкции.

1 ответ

Я не уверен, есть ли что-то в LLVM, которое действует как идентификатор инструкции, но значение указателя инструкции (Instruction*кажется, служит вашей цели. LLVM не перемещает инструкции, поэтому вы будете в безопасности, если сами их не перемещаете.

Между тем, если вы предпочитаете строковое представление инструкций, которое также выполнимо,

Instruction *I /* = what_ever_you_have */;
std::string str;
llvm::raw_string_ostream rso(str);
I->print(rso);

но обратите внимание, что строка не является уникальным идентификатором инструкции.

(Код взят из Как я могу печатать в строку в LLVM.)

Другие вопросы по тегам