Florian Hahn via llvm-dev
2021-Feb-24 09:28 UTC
[llvm-dev] How to get from "opt -O3" to "opt <a-single-pass>" with the new PM?
> On Feb 15, 2021, at 09:33, Mikael Holmén via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hi, > > I just wrote a PR about a crash that I only see with the new PM: > https://bugs.llvm.org/show_bug.cgi?id=49185 > > Normally (with the old PM) when I get a crash with e.g. "opt -O3" I use > -debug-pass=Arguments to get the list of passes run, and then I usually > try to reduce the amount of passes with the goal to reach a simpler opt > command line just running one pass to get a small and stable > reproducer. > > With the new PM I have no idea how to do this. -debug-pass=Arguments > doesn't do anything, it doesn't give an error either, it's just silent. > > What is the intended workflow to reach a proper nice and small > reproducer that has a minumum of dependencies towards different passes > with the new PM?Unfortunately there’s nothing similar to bugpoint’s crashing pass reduction feature that works for the new pass manager at the moment. I am also not aware of anyone working on this. For the new PM, there’s -debug-pass-manager, which prints the passes that run, but not in a format suitable to feed back to `opt`. Arthur, Alina, do you know if there’s a way to get a string of passes that corresponds to a all passes in a given pipeline, which can be passed directly to `opt`? With that, it might also be easier to build a llvm-reduce-based pass reduction tool as well. Cheers, Florian
Arthur Eubanks via llvm-dev
2021-Feb-24 19:25 UTC
[llvm-dev] How to get from "opt -O3" to "opt <a-single-pass>" with the new PM?
There's no way to get a list of passes. Currently the name used to specify a pass, e.g. "instcombine" in -passes=instcombine is mostly a one way street to creating the pass, it's hard to go backwards from a pass to the original name due to the implementation. This could be fixed, but it'd be a fairly large change. Personally I'd prefer an addition to https://reviews.llvm.org/D86657 where we dump the IR on a crash to a file. Then with -debug-pass-manager, we can see which pass caused the crash. Then use llvm-reduce to reduce the IR, running only that one pass. On Wed, Feb 24, 2021 at 1:28 AM Florian Hahn <florian_hahn at apple.com> wrote:> > > > On Feb 15, 2021, at 09:33, Mikael Holmén via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > Hi, > > > > I just wrote a PR about a crash that I only see with the new PM: > > https://bugs.llvm.org/show_bug.cgi?id=49185 > > > > Normally (with the old PM) when I get a crash with e.g. "opt -O3" I use > > -debug-pass=Arguments to get the list of passes run, and then I usually > > try to reduce the amount of passes with the goal to reach a simpler opt > > command line just running one pass to get a small and stable > > reproducer. > > > > With the new PM I have no idea how to do this. -debug-pass=Arguments > > doesn't do anything, it doesn't give an error either, it's just silent. > > > > What is the intended workflow to reach a proper nice and small > > reproducer that has a minumum of dependencies towards different passes > > with the new PM? > > Unfortunately there’s nothing similar to bugpoint’s crashing pass > reduction feature that works for the new pass manager at the moment. I am > also not aware of anyone working on this. > > For the new PM, there’s -debug-pass-manager, which prints the passes that > run, but not in a format suitable to feed back to `opt`. > > Arthur, Alina, do you know if there’s a way to get a string of passes that > corresponds to a all passes in a given pipeline, which can be passed > directly to `opt`? With that, it might also be easier to build a > llvm-reduce-based pass reduction tool as well. > > Cheers, > Florian-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210224/b01b610f/attachment.html>