[llvm-dev] New pass manager for optimization pipeline status and questions

Sjoerd Meijer via llvm-dev llvm-dev at lists.llvm.org
Mon Jan 18 03:27:01 PST 2021

Hi guys,

Just to let you know that we are happy to switch to the NPM as all our issues have been analysed, raised, or fixed.
Great stuff. Many thanks for working on this, and also for your help!
I am sure some things will pop up, but we will just deal with it then.

From: Sjoerd Meijer <Sjoerd.Meijer at arm.com>
Sent: 13 January 2021 13:17
To: Alina Sbirlea <alina.sbirlea at gmail.com>; Reid Kleckner <rnk at google.com>
Cc: llvm-dev <llvm-dev at lists.llvm.org>; Arthur Eubanks <aeubanks at google.com>
Subject: Re: [llvm-dev] New pass manager for optimization pipeline status and questions


Thanks for the update and elaborating on this. I am generally okay with the direction of switching when the blockers are resolved (and the timeline).
After the code-size problems, we have now increased our efforts to look at performance and are filing our reports. I just wanted to reiterate that we are looking at severe and generic problems/regressions that should affect all targets, which I think need to be solved first. We have made quite some progress and are looking at the last code base but that has the biggest regressions. I hope that we will have filled all our blockers next week, so that we can make up the balance of blockers in a week time.

It's understood we could fall back to the legacy pass manager, but I hope that such a divergence is a last-resort that we don't need to use.

From: Alina Sbirlea <alina.sbirlea at gmail.com>
Sent: 12 January 2021 22:36
To: Reid Kleckner <rnk at google.com>
Cc: Sjoerd Meijer <Sjoerd.Meijer at arm.com>; llvm-dev <llvm-dev at lists.llvm.org>; Arthur Eubanks <aeubanks at google.com>
Subject: Re: [llvm-dev] New pass manager for optimization pipeline status and questions

To echo the others' replies, the timeline is not fixed but we're looking at flipping the default in `opt` as soon as the AMDGPU issues are addressed, and the CMake option shortly after that - order of within a week. Variations on the timeline depend on the bugs being filed in the meantime, hence the importance of testing and bug filing in the next couple of weeks. The bugs that are not addressed before the switch would still be worked on after.

As others have said, the cmake option to continue to use the legacy pass manager will remain in place, and the legacy pass manager code will not be removed from the tree for months after, while the transition stabilises. There's also the option to revert the switch once made for major regressions that may turn up, but the hope is to not get too many last minute surprises.

On Tue, Jan 12, 2021 at 12:51 PM Reid Kleckner <rnk at google.com<mailto:rnk at google.com>> wrote:
Keep in mind that LLVM will continue to support the old pass manager via a cmake option, so if you are a vendor, you can fallback to the old pass manager and migrate on your own timeline. However, there are costs to diverging from upstream. As the community migrates to the NPM, the old pass manager will become less tested over time, and it may accumulate bugs or performance regressions.

On Mon, Jan 11, 2021 at 3:45 PM Sjoerd Meijer via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
Hi Alina & Arthur,

I've investigated the performance impact for us and can now say a little bit more now where we are. Switching now would lead to performance regressions (*) in the initial set of 4 benchmarks we care about. One benchmark is overall neutral but shows regressions where we don't really want them. Hopefully, your fix for PR48715<https://bugs.llvm.org/show_bug.cgi?id=48715> that I raised today will solve that, many thanks for the amazingly speedy reply! A second benchmark is a bit of disaster, still need to look into that, and a third shows a relatively small regression but it's significant for that benchmark and am looking into that now, and need to look into the fourth benchmark.

Code-generation is *very* different for the cases I am look at and I am profiling and analysing things, for which I need some time. This leads to my question: can you remind me about the timelines? I hope we can work in tandem to have at least the major issues resolved before we switch.

Thanks for working on this, and for your help and speedy replies,

(*) I am mostly looking at smaller cores, and very tight loops (baremetal) and guess that most people look at bigger cores where some of these codegen differences have no or a different impact.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210118/98ead25c/attachment.html>

More information about the llvm-dev mailing list