[PATCH] D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan.

Renato Golin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 19 05:17:43 PDT 2018


rengolin added a comment.

I'll let Florian/Hideki reply about timeframes and strategies, and will just focus on specific items you list.

In https://reviews.llvm.org/D49491#1167789, @RKSimon wrote:

> 1 - Generalize alternate vectorisation paths (multiple different vector ops + select/shuffle merges).
>  2 - Supporting 'copyable' elements (PR30787).
>  4 - Using dereferenceable_or_null metadata to vectorise loads with missing elements (PR21780).


These all look transferable to a VPlan-based SLP.

> 3 - Pull TTI/vectorization costs from scheduling models (PR36550).

This is really important for VPlan, too. There is some work (can't remember which review now) to get better cost analysis, looking at a longer use-chain.

> 5 - Revectorisation of 128-bit vector code to 256-bit vector code (make most of YMM ops now that Jaguar model is treating them nicely).

This sounds like a large undertake to do in SLP proper. I remember having briefly discussed re-vectorisation as a VP2VP transformation, which I think makes more sense.

But having it in SLP for now is perfectly fine if you have cases in mind where it's obviously beneficial. It's probably going to take a while to get the VP2VP stuff, anyway.

> All of these are large pieces of work and I don't want to find myself implementing them in SLPVectorizer just for all the work to be lost and we're back to a very basic SLP system again.

That was my primary concern, too. But I don't think anyone is proposing to just dump the existing SLP unless the new one has *all* of it (and more).

And that also means either merging or commoning-up the features above (and all others).


https://reviews.llvm.org/D49491





More information about the llvm-commits mailing list