Jon Chesterfield via llvm-dev
2021-Feb-24 17:31 UTC
[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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210224/a318e622/attachment.html>
David Blaikie via llvm-dev
2021-Feb-24 18:35 UTC
[llvm-dev] New pass manager, documentation?
+Arthur On Wed, Feb 24, 2021 at 9:31 AM Jon Chesterfield via llvm-dev < llvm-dev at lists.llvm.org> wrote:> 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/2c6cb5ee/attachment.html>
> For example, what is the rough equivalent to addPreISel() in the old one for running target specific passes shortly before instruction selectionHello, 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