Arthur Eubanks via llvm-dev
2021-Feb-24 19:04 UTC
[llvm-dev] New pass manager, documentation?
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/0a87dbee/attachment.html>
Arthur Eubanks via llvm-dev
2021-Feb-24 19:11 UTC
[llvm-dev] New pass manager, documentation?
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>