[PATCH] D101898: [ARM] Prevent spilling between ldrex/strex pairs

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 11 11:05:56 PDT 2021


efriedma added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp:1573
+    assert((UxtOp == 0 || UxtOp == ARM::tUXTB || UxtOp == ARM::tUXTH) &&
+           "Use of t2UXTB/t2UXTH requires at least ARMv8-M.baseline");
+    assert(ARM::tGPRRegClass.contains(DesiredReg) &&
----------------
The text of this assertion seems seems wrong; the point of the assertion is that ARMv8-M.baseline doesn't have t2UXTB/t2UXTH


================
Comment at: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:3302
   if (MemTy == MVT::i8)
-    Opcode = ARM::CMP_SWAP_8;
+    Opcode = Subtarget->isThumb() ? ARM::tCMP_SWAP_8 : ARM::CMP_SWAP_8;
   else if (MemTy == MVT::i16)
----------------
isThumb() includes both Thumb1 (here, v8m.base) and Thumb2.  That's fine, but if you're going to do that, please remove the dead Thumb2 codepaths from ARMExpandPseudoInsts.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D101898/new/

https://reviews.llvm.org/D101898



More information about the llvm-commits mailing list