[PATCH] D11621: AMDGPU/SI: Mark SMRD instructions as rematerializable

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 30 11:39:47 PST 2022


arsenm added a comment.

In D11621#3961342 <https://reviews.llvm.org/D11621#3961342>, @rampitec wrote:

> In D11621#3958649 <https://reviews.llvm.org/D11621#3958649>, @arsenm wrote:
>
>> In D11621#3958647 <https://reviews.llvm.org/D11621#3958647>, @rampitec wrote:
>>
>>> I do not think this is OK. We may issue a scalar load before a first potentially aliasing store. After the store it must become a VMEM load because caches are not coherent. That said you cannot reorder SMRD with aliasing VMEM store, both because of the coherency and because memory may be indeed overwritten.
>>
>> This only happens for invariant MMOs. This isn't the only condition
>
> Where is that checked? Also needs tests, both positive and negative.

https://github.com/llvm/llvm-project/blob/442c13f9ff8a8c6739d649c5a68e065f2a727480/llvm/lib/CodeGen/TargetInstrInfo.cpp#L956

The patch as-is doesn't apply obviously. I wrote tests and found they don't work due to virtual register uses in any real case (which is I'm guessing what the special case in isReallyTriviallyReMaterializable is about)


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

https://reviews.llvm.org/D11621



More information about the llvm-commits mailing list