Идентификатор или номер инструкции в 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.)