I have modified my pass to extend Module Pass instead of Call Graph SCCPass. I insert getAnalyses<CallGraph> and use this explicitly instead of extending CallGraphSCCPass. So, the above change need not be made to get my pass work....( as of now)<br>
<br><br><br><br><br><div class="gmail_quote">On Thu, Feb 12, 2009 at 1:33 PM, Devang Patel <span dir="ltr"><<a href="mailto:dpatel@apple.com">dpatel@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="Wj3C7c"><br>
On Feb 11, 2009, at 6:05 PM, kapil anand wrote:<br>
<br>
> Hi all,<br>
><br>
> I am implementing a new pass for LLVM which extends Call Graph<br>
> SCCPass. I need DominatorTree Information when I get to individual<br>
> function. I have added AU.addrequired<DominatorTree>() and<br>
> AU.addRequired<DominanceFrontier>() in getAnalysisUsage() function.<br>
<br>
><br>
> But, when I get to the pass,  Pass Manager gives following runtime<br>
> error<br>
><br>
><br>
> Unable to schedule 'Dominator Tree Construction' required by '......'<br>
><br>
> assertion "0 && "Unable to schedule pass"" failed: file "/usr/src/<br>
> llvm-2.4/llvm-<br>
> 2.4/lib/VMCore/PassManager.cpp", line 1074<br>
><br>
><br>
> Can't I use dominator Tree Information in case of CallGraphSCCPass. I<br>
> found out from documentation that dominator Info can be used in Module<br>
> Pass<br>
><br>
> ( <a href="http://www.llvm.org/docs/WritingAnLLVMPass.html#getAnalysis" target="_blank">http://www.llvm.org/docs/WritingAnLLVMPass.html#getAnalysis</a> )<br>
><br>
> Thus it seemed feasible that Call GraphSCCPass should also be able to<br>
> use Dominator Info.Do I need to add some flag that I need lower level<br>
> passes?<br>
<br>
</div></div>Pl. file a bugzilla report. Call graph pass manager is not<br>
implementing addLowerLevelRequiredPass() to support this. If you copy<br>
the same method from MPPassManager (see Pasmanager.cpp) then it should<br>
work. If it works, please send us patch.<br>
<br>
Thanks,<br>
><br>
><br>
> Thanks<br>
><br>
> Regards,<br>
> Kapil<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>
-<br>
Devang<br>
<br>
<br>
<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>
</blockquote></div><br>