<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hello,<br>
    <br>
    I'm a newbie in LLVM. Now I'm trying to implement a pass that does
    some simple form of dynamic dataflow analysis.<br>
    <br>
    In my dataflow analysis I want to know if a specific variable is
    "dependent" on another one. "Dependent" means the following: if we
    have three variables in a program - a, b and c and in some places of
    this program we have the following assignments: b = a and then c =
    b. Then variable b is dependent on a and variable c is dependent on
    both a and b. Basically "dependent" means that a result in some
    variable is calculated basing on some other one.<br>
    <br>
    While implementing this pass I have faced the following problem -
    let's say we have the following piece of code:<br>
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-1">
    <br>
    store i32 0, i32* %a, align 4<br>
    %0 = load i32* %a, align 4<br>
    store i32 %0, i32* %b, align 4<br>
    <br>
    This piece of code basically means an assignment b = a. My problem
    is that I need to detect what kind of virtual register we use in
    load instruction (in that example we use virtual register 0) and my
    pass cannot do it. I'm using the following piece of code in my pass:
    <br>
    <br>
      for (inst_iterator I = inst_begin(F), E = inst_end(F); I != E;
    ++I){ <br>
              if((*I).getOpcode() == Instruction::Load){<br>
                errs() << cast<LoadInst>(*I).getValueName()
    << "\n";<br>
              }<br>
          }<br>
    <br>
    The method getValueName() gives nothing as well as getName() or
    getValueID(). Because of this I'm not able to detect that b is
    dependent on a. <br>
    <br>
    However if I have something like this:<br>
    <br>
    store i32 0, i32* %a, align 4<br>
    %tmp = load i32* %a, align 4<br>
    store i32 %tmp, i32* %b, align 4<br>
    <br>
    I that case my pass is able to tell that we are using "tmp" to
    perform this assignment.<br>
    <br>
    How can I resolve this issue and get a name or an ID of result?<br>
    <br>
    Thanks in advance.<br>
    <br>
    Best,<br>
    Yaroslav.<br>
  </body>
</html>