[PATCH] D26120: [Cortex-M0] Atomic lowering

James Molloy via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 3 02:14:15 PDT 2016


jmolloy requested changes to this revision.
jmolloy added inline comments.
This revision now requires changes to proceed.


================
Comment at: lib/Target/ARM/ARMISelLowering.cpp:12880
   unsigned Size = AI->getType()->getPrimitiveSizeInBits();
-  return (Size <= (Subtarget->isMClass() ? 32U : 64U))
+  bool hasAtomicRMW = !Subtarget->isThumb() || Subtarget->hasV8MBaselineOps();
+  return (Size <= (Subtarget->isMClass() ? 32U : 64U) && hasAtomicRMW)
----------------
What about ARMv7-A/R here? Previously we'd return LLSC in this case.


================
Comment at: lib/Target/ARM/ARMISelLowering.cpp:12894
+  bool hasAtomicCmpXchg =
+      !Subtarget->isThumb() || Subtarget->hasV8MBaselineOps();
+  return getTargetMachine().getOptLevel() != 0 && hasAtomicCmpXchg;
----------------
Same here - ARMv7-AR?


Repository:
  rL LLVM

https://reviews.llvm.org/D26120





More information about the llvm-commits mailing list