цепочка def-use в llvm - PullRequest
       1

цепочка def-use в llvm

5 голосов
/ 24 июля 2011

Я извлекаю цепочку Def_Use, используя следующий код в LLVM:

for (Value::use_iterator i = F->use_begin(), e = F->use_end(); i != e; ++i)
  if (Instruction *Inst = dyn_cast<Instruction>(*i)) {
    errs() << "F is used in instruction:\n";
    errs() << *Inst << "\n";
  }

Теперь я хочу выделить имя регистра или переменную памяти, которые приводят к этой зависимости данных.

Спасибо

1 Ответ

3 голосов
/ 24 июля 2011

Просто определите, какая инструкция использует ваше значение F и как. Например. если Use is load или store instr, то вы можете проверить операнд инструкции, чтобы проверить, используется ли F в качестве адреса и т. д.

...