Поиск имени переменной при использовании LLVM Interpreter - PullRequest
0 голосов
/ 12 марта 2019

При использовании 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

Как я могу получить имя переменной IR LLVM?

В этой ситуации это будет %retval.

...