Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

def-use chain in llvm

I extract Def_Use chain by following code in 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";
  }

Now, I want to distinguish the register name or memory variable that lead to this data dependency.

Thanks

like image 534
neda Avatar asked Jul 24 '11 15:07

neda


1 Answers

Just determine, which instruction uses your value F and how. E.g. if the Use is load or store instr, then you can check the operand of the instruction to check whether F is used as an address, etc.

like image 104
Anton Korobeynikov Avatar answered Oct 02 '22 02:10

Anton Korobeynikov