[PATCH] D81671: [SystemZ] Bugfix in storeLoadCanUseBlockBinary()

Ulrich Weigand via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 16 01:04:23 PDT 2020


uweigand accepted this revision.
uweigand added a comment.
This revision is now accepted and ready to land.

In D81671#2094870 <https://reviews.llvm.org/D81671#2094870>, @jonpa wrote:

> In D81671#2092717 <https://reviews.llvm.org/D81671#2092717>, @uweigand wrote:
>
> > Shouldn't the check be done **inside** canUseBlockOperation?   I believe the other user (storeLoadCanUseMVC) really needs the same check.
>
>
> My understanding is that storeLoadCanUseBlockBinary() is used as a pattern matching predicate for block memory operations of AND/OR/XOR. These involve two loads and one store. While canUseBlockOperation() has checks for a pair of a store and the load (of the other address), the second load (to the same address as the store) also needs to be checked, which is what this patch does.
>
> The other user of canUseBlockOperation() is storeLoadCanUseMVC() which however only involves one load and one store, and this is why there is no need for anything else in this case.


Ah, you're right, I missed the existing check in canUseBlockOperation.   This patch is OK then.


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

https://reviews.llvm.org/D81671





More information about the llvm-commits mailing list