diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-09-09 16:18:07 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-09-09 16:18:07 +0000 |
| commit | 63e6d8db1cbfe75142669c55819c655c600f00a5 (patch) | |
| tree | 493f6115bf83dc6376311bfcbd134a1b31d0c2f7 /llvm/utils/TableGen | |
| parent | f707dac742f39774aef446f275cc70f43586312a (diff) | |
| download | bcm5719-llvm-63e6d8db1cbfe75142669c55819c655c600f00a5.tar.gz bcm5719-llvm-63e6d8db1cbfe75142669c55819c655c600f00a5.zip | |
AMDGPU/GlobalISel: Select atomic loads
A new check for an explicitly atomic MMO is needed to avoid
incorrectly matching pattern for non-atomic loads
llvm-svn: 371418
Diffstat (limited to 'llvm/utils/TableGen')
| -rw-r--r-- | llvm/utils/TableGen/GlobalISelEmitter.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/GlobalISelEmitter.cpp b/llvm/utils/TableGen/GlobalISelEmitter.cpp index 75634d36f08..2a7be0cb821 100644 --- a/llvm/utils/TableGen/GlobalISelEmitter.cpp +++ b/llvm/utils/TableGen/GlobalISelEmitter.cpp @@ -3614,6 +3614,10 @@ Expected<InstructionMatcher &> GlobalISelEmitter::createAndImportSelDAGMatcher( } if (SrcGIEquivOrNull && SrcGIEquivOrNull->getValueAsBit("CheckMMOIsNonAtomic")) InsnMatcher.addPredicate<AtomicOrderingMMOPredicateMatcher>("NotAtomic"); + else if (SrcGIEquivOrNull && SrcGIEquivOrNull->getValueAsBit("CheckMMOIsAtomic")) { + InsnMatcher.addPredicate<AtomicOrderingMMOPredicateMatcher>( + "Unordered", AtomicOrderingMMOPredicateMatcher::AO_OrStronger); + } if (Src->isLeaf()) { Init *SrcInit = Src->getLeafValue(); |

