Поиск имени переменной при использовании LLVM Interpreter
При использовании LLVM Interpreter (Aka lli
), Instruction
объект запущен в Interpreter::run()
функция как в коде.
void Interpreter::run() {
while (!ECStack.empty()) {
// Interpret a single instruction & increment the "PC".
ExecutionContext &SF = ECStack.back(); // Current stack frame
Instruction &I = *SF.CurInst++; // Increment before execute
// Track the number of dynamic instructions executed.
++NumDynamicInsts;
DEBUG(dbgs() << "About to interpret: " << I << "\n");
visit(I); // Dispatch to one of the visit* methods...
}
}
Линия с DEBUG
Препроцессор напечатает инструкцию, которая была написана в файле.ll следующим образом.
О том, что нужно интерпретировать: %retval = alloca i32, выровнять 4
Как я могу получить имя переменной LLVM IR?
В этой ситуации это будет %retval
,