Soumya_Prasad_Ukil
2010-Jul-19 21:20 UTC
[LLVMdev] How to use data structure of another pass
In LLVM, we generally use data structure of another pass by implementing getAnalysisUsage (AnalysisUsage &AU) method. Suppose SOURCE/lib/Transform directory I have added one pass named as pass_1, which calculates all expressions in a program and stores all of them in an Expr array(take it now for granted). Now I added another pass named as pass_2 in the same directory to print all these expression. How do I do this? -- regards, soumya prasad ukil -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100720/cc042b61/attachment.html>
Soumya_Prasad_Ukil wrote:> > In LLVM, we generally use data structure of another pass by > implementing getAnalysisUsage (AnalysisUsage &AU) method. Suppose > SOURCE/lib/Transform directory I have added one pass named as pass_1, > which calculates all expressions in a program and stores all of them > in an Expr array(take it now for granted). Now I added another pass > named as pass_2 in the same directory to print all these expression. > How do I do this?The pass_1 pass will need to implement a method that returns the array of expressions (or a reference to it). The pass_2 pass can then use getAnalysis<pass_1>() to get a reference to the pass_1 object and call this method on the pass_1 object to get the array of expressions. -- John T.> > > -- > regards, > soumya prasad ukil
Soumya_Prasad_Ukil
2010-Jul-19 21:29 UTC
[LLVMdev] How to use data structure of another pass
Can you tell me where pass_1 is defined? You have used it inside getAnalysis<pass_1>(). Is it the name we generally give to a pass while registry? In this case, don't I need to use getAnalysisUsage (AnalysisUsage &AU) function? On 20 July 2010 02:55, John Criswell <criswell at uiuc.edu> wrote:> Soumya_Prasad_Ukil wrote: > >> >> In LLVM, we generally use data structure of another pass by >> implementing getAnalysisUsage (AnalysisUsage &AU) method. Suppose >> SOURCE/lib/Transform directory I have added one pass named as pass_1, which >> calculates all expressions in a program and stores all of them in an Expr >> array(take it now for granted). Now I added another pass named as pass_2 in >> the same directory to print all these expression. How do I do this? >> > > The pass_1 pass will need to implement a method that returns the array of > expressions (or a reference to it). The pass_2 pass can then use > getAnalysis<pass_1>() to get a reference to the pass_1 object and call this > method on the pass_1 object to get the array of expressions. > > -- John T. > > >> >> -- >> regards, >> soumya prasad ukil >> > >-- regards, soumya prasad ukil -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100720/ac5d8912/attachment.html>