John,<br><br>Thanks, this would work. But we are interested in obtaining the instruction that defines/allocates the value of interest. Once we obtain that we can use LoopInfo pass to check whether the basic block containing that definition instruction belongs to the loop in question. Is there a method that returns the defining instruction?<br>
<br>Thanks,<br>Adarsh<br><br><div class="gmail_quote">On Mon, Apr 19, 2010 at 10:05 AM, John Criswell <span dir="ltr"><<a href="mailto:criswell@uiuc.edu">criswell@uiuc.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div></div><div class="h5">Rohith Goparaju wrote:<br>
> Hi ,<br>
><br>
>    I'm working on a project in which i need to find out all free<br>
> variables in a loop. I need to find all variables used inside a loop<br>
> and that are not declared(allocated) in the loop. I'm confused about<br>
> what symbol tables to use to get hold of such variables.<br>
<br>
</div></div>When you say "variables," are you talking about LLVM virtual registers<br>
or memory allocated by the alloca instruction?<br>
<br>
Assuming the former, LLVM virtual registers are in SSA form, meaning<br>
that they are defined only once and that the virtual register<br>
representing the value and the instruction that generates that value are<br>
synonymous.  If you want to see if an SSA value is defined within a<br>
loop, you would use the LoopInfo pass to determine if the basic block<br>
containing the instruction  defining the value of interest belongs to<br>
the loop that interests you.<br>
<br>
Information on LoopInfo can be found at<br>
<a href="http://llvm.org/doxygen/classllvm_1_1LoopInfo.html" target="_blank">http://llvm.org/doxygen/classllvm_1_1LoopInfo.html</a>.<br>
<br>
-- John T.<br>
<br>
><br>
> Thanks,<br>
> Rohith.<br>
<div><div></div><div class="h5"><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Adarsh Yoga<br>Graduate Student, Computer Science<br>Indiana University, Bloomington<br>