Hi all, I need a new kind of analysis on LLVM Module, so I made a new pass to do this. This new pass extends the ModulePass class and follows the conventions used in GlobalModRefPass, which is also a Module Pass.I need the CallGraph analysis for this pass, hence I have added (addRequired(CallGraph)) in getAnalysisUsage function of this new pass. I also added it to CallGraph Analysis group through "RegisterAnalysisGroup" This new pass is not part of any LLVM library and is not present in LLVM source tree . Rather it is part of my own project tree. I included required header files and specified the required library in the linker. It compiles and links fine but when I reach at getAnalysis function to get CallGraph analysis, it gives me following runtime error Assertion "resover && pass has not been inserted into a Pass Manager Object" failed. What other steps do I need to follow to get rid of this error. Thanks --Kapil -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081008/fb6e4799/attachment.html>
Hi Kapil, On Oct 8, 2008, at 10:19 AM, kapil anand wrote:> Hi all, > > I need a new kind of analysis on LLVM Module, so I made a new pass > to do this. This new pass extends the ModulePass class and follows > the conventions used in GlobalModRefPass, which is also a Module > Pass.I need the CallGraph analysis for this pass, hence I have added > (addRequired(CallGraph)) in getAnalysisUsage function of this new > pass.A module pass may not required CallGraph. Probably, you want to make your pass a CallGraphSCCPass, e.g. Inliner.> I also added it to CallGraph Analysis group through > "RegisterAnalysisGroup" > > This new pass is not part of any LLVM library and is not present in > LLVM source tree . Rather it is part of my own project tree. I > included required header files and specified the required library in > the linker. It compiles and links fine but when I reach at > getAnalysis function to get CallGraph analysis, it gives me > following runtime error > > Assertion "resover && pass has not been inserted into a Pass > Manager Object" failed. > > What other steps do I need to follow to get rid of this error. > > Thanks > > --Kapil > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev- Devang -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081008/24aa1023/attachment.html>
Hi Devang, GlobalModRefPass is also a ModulePass and it uses CallGraph Analysis. So, I think it should not necessary to extend CallGraphSCCPass to use CallGraph information. Module Pass shoule be sufficient... --Kapil On 10/8/08, Devang Patel <dpatel at apple.com> wrote:> Hi Kapil, > > On Oct 8, 2008, at 10:19 AM, kapil anand wrote: > >> Hi all, >> >> I need a new kind of analysis on LLVM Module, so I made a new pass >> to do this. This new pass extends the ModulePass class and follows >> the conventions used in GlobalModRefPass, which is also a Module >> Pass.I need the CallGraph analysis for this pass, hence I have added >> (addRequired(CallGraph)) in getAnalysisUsage function of this new >> pass. > > A module pass may not required CallGraph. Probably, you want to make > your pass a CallGraphSCCPass, e.g. Inliner. > >> I also added it to CallGraph Analysis group through >> "RegisterAnalysisGroup" >> >> This new pass is not part of any LLVM library and is not present in >> LLVM source tree . Rather it is part of my own project tree. I >> included required header files and specified the required library in >> the linker. It compiles and links fine but when I reach at >> getAnalysis function to get CallGraph analysis, it gives me >> following runtime error >> >> Assertion "resover && pass has not been inserted into a Pass >> Manager Object" failed. >> >> What other steps do I need to follow to get rid of this error. >> >> Thanks >> >> --Kapil >> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > - > Devang > > > >