diff options
author | Tim Renouf <tpr.llvm@botech.co.uk> | 2019-01-23 13:38:06 +0000 |
---|---|---|
committer | Tim Renouf <tpr.llvm@botech.co.uk> | 2019-01-23 13:38:06 +0000 |
commit | f64f8efe13c637dc560c9208e09f8460683b3543 (patch) | |
tree | 095b9fec34f114810d54b5010b5045dec612df25 /llvm/unittests/ADT/ArrayRefTest.cpp | |
parent | 53c3c2c61c3c8dc4d6d2c463e0a2357eb312bd51 (diff) | |
download | llvm-f64f8efe13c637dc560c9208e09f8460683b3543.zip llvm-f64f8efe13c637dc560c9208e09f8460683b3543.tar.gz llvm-f64f8efe13c637dc560c9208e09f8460683b3543.tar.bz2 |
[AMDGPU] With XNACK, cannot clause a load with result coalesced with operand
Summary:
With XNACK, an smem load whose result is coalesced with an operand (thus
it overwrites its own operand) cannot appear in a clause, because some
other instruction might XNACK and restart the whole clause.
The clause breaker already realized that an smem that overwrites an
operand cannot appear in a clause, and broke the clause. The problem
that this commit fixes is that the SIFormMemoryClauses optimization
formed a bundle with early clobber, which caused the earlier code that
set up the coalesced operand to be removed as dead.
Differential Revision: https://reviews.llvm.org/D57008
Change-Id: I703c4d5b0bf7d6060222bec491f45c18bb3c0016
llvm-svn: 351950
Diffstat (limited to 'llvm/unittests/ADT/ArrayRefTest.cpp')
0 files changed, 0 insertions, 0 deletions