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

Jonas Paulsson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 16 00:31:03 PDT 2020


jonpa added a comment.

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.


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

https://reviews.llvm.org/D81671





More information about the llvm-commits mailing list