llvm中的def-use链

时间:2011-07-24 15:33:17

标签: compiler-construction llvm

我通过以下代码在LLVM中提取Def_Use链:

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 个答案:

答案 0 :(得分:3)

确定哪条指令使用您的值F以及如何使用。例如。如果Use是load或store instr,那么你可以检查指令的操作数来检查F是否用作地址等。