Stanislav Manilov via llvm-dev
2016-Feb-11 18:39 UTC
[llvm-dev] Writing an LLVM Pass that depends on mem2reg
Oh, I see, that makes a lot of sense. How do I build the pass pipeline? On Thu, Feb 11, 2016 at 5:54 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:> > On Feb 11, 2016, at 9:49 AM, Stanislav Manilov via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > Hello, > > > > I am used to specifying dependence on other LLVM passes in the > `getAnalysisUsage(AnalysisUsage &)` method of my pass. However, it doesn't > seem that there is a header file that exposes the `mem2reg` pass - it is > implemented in `Mem2Reg.cpp` as a wrapper. > > Usually dependencies are expressed toward *analyses* and not toward other > transformations. > > It is the responsibility of the pass pipeline building to order > transformations. > > (hope I haven't misunderstood your question) > > -- > Mehdi > > > > > > Is there an easy way to reuse this pass, or should I, in essence, > duplicate `Mem2Reg.cpp` in my project? > > > > Cheers, > > - Stan > > _______________________________________________ > > LLVM Developers mailing list > > llvm-dev at lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160211/cc7d5ddd/attachment.html>
Mehdi Amini via llvm-dev
2016-Feb-11 19:46 UTC
[llvm-dev] Writing an LLVM Pass that depends on mem2reg
It depends how you interact with LLVM, one the command line with `opt` it is the order of the arguments. Otherwise at the C++ API level it involves creating a PassManager and adding passes to it in order. Your pass is surely added to the PassManager at some point, you just have to figure out by which component (again I don't know your project). -- Mehdi> On Feb 11, 2016, at 10:39 AM, Stanislav Manilov <stanislav.manilov at gmail.com> wrote: > > Oh, I see, that makes a lot of sense. > > How do I build the pass pipeline? > > On Thu, Feb 11, 2016 at 5:54 PM, Mehdi Amini <mehdi.amini at apple.com <mailto:mehdi.amini at apple.com>> wrote: > > On Feb 11, 2016, at 9:49 AM, Stanislav Manilov via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: > > > > Hello, > > > > I am used to specifying dependence on other LLVM passes in the `getAnalysisUsage(AnalysisUsage &)` method of my pass. However, it doesn't seem that there is a header file that exposes the `mem2reg` pass - it is implemented in `Mem2Reg.cpp` as a wrapper. > > Usually dependencies are expressed toward *analyses* and not toward other transformations. > > It is the responsibility of the pass pipeline building to order transformations. > > (hope I haven't misunderstood your question) > > -- > Mehdi > > > > > > Is there an easy way to reuse this pass, or should I, in essence, duplicate `Mem2Reg.cpp` in my project? > > > > Cheers, > > - Stan > > _______________________________________________ > > LLVM Developers mailing list > > llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> > > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev> > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160211/890fa893/attachment.html>
Stanislav Manilov via llvm-dev
2016-Feb-11 19:55 UTC
[llvm-dev] Writing an LLVM Pass that depends on mem2reg
Okay, so I have to create my own PassManager. I think that answers my question. Thanks for the help! When I have something useful implemented I'll be happy to share the details. On Thu, Feb 11, 2016 at 7:46 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:> It depends how you interact with LLVM, one the command line with `opt` it > is the order of the arguments. > Otherwise at the C++ API level it involves creating a PassManager and > adding passes to it in order. > Your pass is surely added to the PassManager at some point, you just have > to figure out by which component (again I don't know your project). > > -- > Mehdi > > > On Feb 11, 2016, at 10:39 AM, Stanislav Manilov < > stanislav.manilov at gmail.com> wrote: > > Oh, I see, that makes a lot of sense. > > How do I build the pass pipeline? > > On Thu, Feb 11, 2016 at 5:54 PM, Mehdi Amini <mehdi.amini at apple.com> > wrote: > >> > On Feb 11, 2016, at 9:49 AM, Stanislav Manilov via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> > >> > Hello, >> > >> > I am used to specifying dependence on other LLVM passes in the >> `getAnalysisUsage(AnalysisUsage &)` method of my pass. However, it doesn't >> seem that there is a header file that exposes the `mem2reg` pass - it is >> implemented in `Mem2Reg.cpp` as a wrapper. >> >> Usually dependencies are expressed toward *analyses* and not toward other >> transformations. >> >> It is the responsibility of the pass pipeline building to order >> transformations. >> >> (hope I haven't misunderstood your question) >> >> -- >> Mehdi >> >> >> > >> > Is there an easy way to reuse this pass, or should I, in essence, >> duplicate `Mem2Reg.cpp` in my project? >> > >> > Cheers, >> > - Stan >> > _______________________________________________ >> > LLVM Developers mailing list >> > llvm-dev at lists.llvm.org >> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >> > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160211/3b62886e/attachment.html>