[PATCH] D84679: [VPlan] Disconnect VPValue and VPUser.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 22 12:16:42 PDT 2020


fhahn added a comment.

In D84679#2286345 <https://reviews.llvm.org/D84679#2286345>, @dmgreen wrote:

>> It would be great to have some concrete simple transforms using it as soon as its ready to make sure everything works well together, so if we could collaborate on that, that would be great!
>
> Yeah, that sounds good. vmulh worked well I though, but I ended up making some fairly major modifications. And it did need to handle costing through vplan to really get anywhere. I will see if I can come up with anything for that too. I think just having a conversation about some of these design details is helpful in itself.

Yes, VPlan based cost modeling is another big missing piece! But it should be possible to make progress in relatively small steps I think starting with the pattern matching & transformations?

>> Sorry, I did not mean that everything will be changed in this patch. But the linked patches gradually turn all the recipes into VPValues and update VPInterleaveRecipe to produce multiple values (and moves VPlan codegen to use that). So with the current patch alone, it is not yet possible to traverse def-use chains in recipes, but once the transition is done, it should be possible to traverse in both directions. (I think most recipes should already be ready to be turned into VPUser, let me check which ones are still missing)
>
> Ok. It sounds like you envision eventually that all VPRecipeBases' are VPValues then. I was jumping to that goal in one step. I liked making is part of VPRecipeBases as it simplifies the inheritance a lot.

*Almost* all recipes can be `VPValues` (which the linked patches do), but some might not be `VPValues` directly but something that produces multiple VPValues (like an interleave group currently but there may be more in the future, the modeling should be able to capture this naturally). But that should make traversing only slightly more complicated. When you are just interested in recipes that are also VPValues, nothing should really change.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84679/new/

https://reviews.llvm.org/D84679



More information about the llvm-commits mailing list