On 3 October 2012 02:37, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">On Wed, Oct 3, 2012 at 2:33 AM, vinay m <span dir="ltr"><<a href="mailto:mvinay05041990@gmail.com" target="_blank">mvinay05041990@gmail.com</a>></span> wrote:<br></div><div class="gmail_extra"><div class="gmail_quote">


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Hi, </div><div class="im">   Is it possible to  recreate the LoopInfo analysis in my pass?<br></div></blockquote>

<div><br></div><div>No. You need your pass to be a FunctionPass in order to use the LoopInfo (and associated) analyses.</div></div></div></blockquote><div><br></div><div>A ModulePass can also use the LoopInfo analysis (and other function passes). Use "getAnalysis<T>(Function);" to get analysis T for a given Function.</div>

<div><br></div><div>That means you could write your pass as a ModulePass and use the CallGraph and LoopInfo directly.</div><div><br></div><div>You can also cheat and write two passes, one CallGraphSCCPass which depends on a ModulePass. The ModulePass depends on LoopInfo and offers a single getter that returns LoopInfo  for the Function you ask it for. This is hackery that you won't be able to land in upstream.</div>

<div><br></div><div>Nick</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>Thanks ,<div>Vinay </div><div><div><div><br><div class="gmail_quote">On Wed, Oct 3, 2012 at 2:34 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This is not currently supported by the LLVM pass manager system. It is a serious deficiency that I (and others) would like to address, but it requires significant changes to the pass manager and analysis dependency system.<div>




<br></div><div>I have some dim hope of working on fixing this limitation, but it won't be quick. ;]</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Wed, Oct 3, 2012 at 1:49 AM, vinay m <span dir="ltr"><<a href="mailto:mvinay05041990@gmail.com" target="_blank">mvinay05041990@gmail.com</a>></span> wrote:<br>




</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Hi,<div>    </div><div>    How to get the LoopInfo analysis  in a CallGraphSCCPass  ?</div>
<div>   </div><div><br></div>
<div><br></div><div><div><div>Thanks,</div><div>Vinay <br><br>
</div></div></div>
<br></div></div>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">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>
<br></blockquote></div><br></div>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br>m.vinay<br>
</font></span></div>
</blockquote></div></div></div><br></div>
<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>
<br></blockquote></div><br>