[PATCH] D128159: [DAG] Enable scalable vectors handling in computeKnownBits

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 21 09:28:50 PDT 2022


dmgreen added a comment.

In D128159#3596025 <https://reviews.llvm.org/D128159#3596025>, @paulwalker-arm wrote:

> I don't like the path this patch is taking.  In it current form it is changing what the current interface means without documenting such, nor paying much heed to what all the code paths might do.  This is why during initial scalable vector bring up, we decided to go the safest route and essentially bail for scalable vectors.  Sure this means we implicitly changed the meaning of the "all known" value but there was little else we could do.
>
> It was discussed during the SVE sync calls we ran a while back and whilst no firm decision was made it was pretty clear that `KnownBits` will need to undergo the same transition as `TypeSize` and `ElementCount`.  I don't think this is something we can nor should short cut.

I'm not sure that's entirely necessary in order to get a lot of good improvement out of computeKnownBits/computeSignBits/SimplifyDemandedBits. A large part of the optimizations they perform are identical for all lanes, and with scalable vectors that is much more common than demanded elt's that vary by lane. This would at least be a nice first step forward without trying to solve everything all at once.

What kind of optimizations would you hope to be solved with scalable demanded elts? That might help define what kind of interface it would need.


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

https://reviews.llvm.org/D128159



More information about the llvm-commits mailing list