summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-09-09 16:18:07 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-09-09 16:18:07 +0000
commit63e6d8db1cbfe75142669c55819c655c600f00a5 (patch)
tree493f6115bf83dc6376311bfcbd134a1b31d0c2f7 /llvm/utils/TableGen
parentf707dac742f39774aef446f275cc70f43586312a (diff)
downloadbcm5719-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.cpp4
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();
OpenPOWER on IntegriCloud