[llvm-dev] New pass manager, documentation?

Arthur Eubanks via llvm-dev llvm-dev at lists.llvm.org
Wed Feb 24 11:11:05 PST 2021


Oh and to answer the original question, +1 to what Yuanfang said, but you
mentioned considering EP_ModuleOptimizerEarly, so what about keeping it in
the middle-end at EP_OptimizerLast (the NPM equivalent being
registerOptimizerLastEPCallback()) rather than moving it to the backend?
I'm not sure if you consider your pass to be a middle-end or a backend pass.

On Wed, Feb 24, 2021 at 11:04 AM Arthur Eubanks <aeubanks at google.com> wrote:

> Yes we should definitely document this somewhere. Does it make sense to
> add onto https://llvm.org/docs/WritingAnLLVMBackend.html? Or create a new
> page since these hooks aren't only used by backends, but also used by Clang
> to add sanitizers and other Clang-specific passes?
>
> On Wed, Feb 24, 2021 at 10:48 AM via llvm-dev <llvm-dev at lists.llvm.org>
> wrote:
>
>> > For example, what is the rough equivalent to addPreISel() in the old
>> one for running target specific passes shortly before instruction selection
>>
>> Hello,
>>
>> Code generation passes including target-specific IR passes (usually these
>> specified in derived TargetPassConfig class) are not using the new pass
>> manager.  I'm working on switching the code generation to use the new pass
>> manager but it is not quite there yet. I guess we should document this fact
>> in the new pass manager documentation because I think this question comes
>> up once in a while.
>>
>> - Yuanfang
>>
>> ________________________________________
>> From: llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Jon
>> Chesterfield via llvm-dev <llvm-dev at lists.llvm.org>
>> Sent: Wednesday, February 24, 2021 9:31 AM
>> To: llvm-dev
>> Subject: [llvm-dev] New pass manager, documentation?
>>
>> Hi,
>>
>> I'm trying to work out how to use the new pass manager. For example, what
>> is the rough equivalent to addPreISel() in the old one for running target
>> specific passes shortly before instruction selection, or how do I run a
>> module pass shortly before a function pass.
>>
>> I have a module pass which works if run shortly before instruction
>> selection, but not if it is run via EP_ModuleOptimizerEarly. My current
>> plan is to make the pass significantly more complicated, so that it can
>> handle being run repeatedly from suboptimal points in the pipeline, but I
>> can keep the simple/stupid version instead if I can work out how the pass
>> manager works.
>>
>> Thanks,
>>
>> Jon
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://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/20210224/7e58e53b/attachment.html>


More information about the llvm-dev mailing list