[llvm-dev] Writing an LLVM Pass that depends on mem2reg

Stanislav Manilov via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 11 11:55:12 PST 2016


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>


More information about the llvm-dev mailing list