<div dir="ltr"><span style="font-size:12.8px">An</span><wbr style="font-size:12.8px"><span style="font-size:12.8px">alysisUsage also apply to transformation pass. For example, a lot of pass requires LCSSA and BreakCriticalEdge, which are transformations.</span><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 3, 2017 at 10:30 AM, Mahesh Attarde <span dir="ltr"><<a href="mailto:coder.mahesh@gmail.com" target="_blank">coder.mahesh@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Hi Hongbin</div><div><br></div>I am not quite familiar with AnalysisUsage, let me correct question a bit.</div>I have read <a href="http://llvm.org/docs/WritingAnLLVMPass.html#specifying-interactions-between-passes" target="_blank">Writing Pass</a>, All examples that i see here are based on collecting information .i.e Analysis Passes.<br></div>I wonder if this applies to Transformation passes also.<br></div>e.g. <br><div><div><br></div><div>void<span style="color:rgb(147,196,125)"> <span style="color:rgb(0,0,255)">MyInliner</span></span>::getAnalysisUsage(An<wbr>alysisUsage &AU) const {</div><div>   AU.addRequired<<span style="color:rgb(0,0,255)">SimplifyCFGPass</span><wbr>>();    // Transformation Pass<br></div><div>   AU.addRequired<<span style="color:rgb(0,0,255)">AnnotatedFuncti<wbr>onPass</span>>();  // Transformation like pass<br></div><div>   AU.addRequired<<span style="color:rgb(0,0,255)">CallGraphSCCPas<wbr>s</span>>();    // Analysis Pass<br></div>}</div><div><br></div><div>here AnnotateFunctionPass is adding meta information,so technically nothing Functional transformational in module and</div><div>not Analysis either. <br></div><div>Would that be right way?<br></div><div><div><div><br></div><div>Thanks <br></div><span class="HOEnZb"><font color="#888888"><div>Mahesh<br></div></font></span></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 3, 2017 at 9:43 PM, Hongbin Zheng <span dir="ltr"><<a href="mailto:etherzhhb@gmail.com" target="_blank">etherzhhb@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Mahesh,<div><br></div><div>Did you override getAnalysisUsage and require D1, D2 and D3?</div><div><br></div><div><div><br></div><div>void YourPass::getAnalysisUsage(Ana<wbr>lysisUsage &AU) const {</div><div>  AU.addRequired<D1>();</div><div>  AU.addRequired<D2>();</div><div>  AU.addRequired<D3>();</div><div>}</div></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-4276901301761880878h5">On Tue, Oct 3, 2017 at 2:00 AM, Mahesh Attarde via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</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 class="m_-4276901301761880878h5"><div dir="ltr"><div><div><div><div><div><div><div><div><div>Hello <br></div>  I am working on pass which has dependency on multiple passes.  Say  D1,D2,D3<br></div>I used <br></div>INITIALIZE_PASS_BEGIN<br>INITIALIZE_PASS_DEPENDENCY(D1)<br>INITIALIZE_PASS_DEPENDENCY(D2)<br>INITIALIZE_PASS_DEPENDENCY(D3)<br>INITIALIZE_PASS_END.<br><br></div>While running it through opt tool it, I had to specify this D1,D2,D3 pass names<br></div>to get this pass executed before my pass.<br></div>Is there way, to let llvm pass manager to know  execute all dependencies without<br></div>having to specify explicitly.?<br></div><div><br></div><div>I suspect i am doing something wrong in my code, May be.</div><div><br></div>Thanks<span class="m_-4276901301761880878m_-4324649932727257750HOEnZb"><font color="#888888"><br></font></span></div><span class="m_-4276901301761880878m_-4324649932727257750HOEnZb"><font color="#888888">Mahesh<br></font></span></div>
<br></div></div>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>