[PATCH] D30400: For Thumb1, lower ADDC/ADDE/SUBC/SUBE via the glueless ARMISD nodes, same as already done for ARM and Thumb2.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 9 15:30:15 PST 2017


efriedma accepted this revision.
efriedma added a comment.
This revision is now accepted and ready to land.

LGTM, with a few minor tweaks.



================
Comment at: lib/Target/ARM/ARMISelLowering.cpp:9075
+    // On Thumb1, move all input operands to the end, then add the predicate
+    if (MCID->getSize() == 2) {
+      for (unsigned c = MCID->getNumOperands() - 4; c--;) {
----------------
Check isThumb1Only() rather than MCID->getSize()?


================
Comment at: lib/Target/ARM/ARMISelLowering.cpp:9129
+    // Thumb1 instructions must have the S bit even if the CPSR is dead.
+    if (MCID->getSize() == 4)
+      return;
----------------
Check isThumb1Only() rather than MCID->getSize()?


================
Comment at: test/CodeGen/Thumb/long.ll:3
 ; RUN: llc -mtriple=thumb-apple-darwin %s -o - | \
 ; RUN:    FileCheck %s -check-prefix CHECK -check-prefix CHECK-DARWIN
 
----------------
Add -verify-machineinstrs to the RUN lines.


https://reviews.llvm.org/D30400





More information about the llvm-commits mailing list