[Lanai] Be super conservative about atomics
authorPhilip Reames <listmail@philipreames.com>
Mon, 25 Feb 2019 17:36:10 +0000 (17:36 +0000)
committerPhilip Reames <listmail@philipreames.com>
Mon, 25 Feb 2019 17:36:10 +0000 (17:36 +0000)
As requested during review of D57601 <https://reviews.llvm.org/D57601>, be equally conservative for atomic MMOs as for volatile MMOs in all in tree backends. At the moment, all atomic MMOs are also volatile, but I'm about to change that.

Reviewed as part of https://reviews.llvm.org/D58490, with other backends still pending review.

llvm-svn: 354800

llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp

index ed5b6c4..a69dcdd 100644 (file)
@@ -158,7 +158,8 @@ bool isNonVolatileMemoryOp(const MachineInstr &MI) {
   const MachineMemOperand *MemOperand = *MI.memoperands_begin();
 
   // Don't move volatile memory accesses
-  if (MemOperand->isVolatile())
+  // TODO: unclear if we need to be as conservative about atomics
+  if (MemOperand->isVolatile() || MemOperand->isAtomic())
     return false;
 
   return true;