[PATCH] D66483: [ARM] Generate 8.1-m CSINC, CSNEG and CSINV instructions.

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 2 10:24:12 PDT 2019


dmgreen added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:46
 
+extern cl::opt<bool> ARMGenerateCSEL;
+
----------------
samparker wrote:
> Freaky way to control code gen! Do we really need this if code size is better and performance is on par or better..?
I think you are right. I've removed the option.


================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:4854
+        if (FVal == 0 && Opcode != ARMISD::CSINC) {
+          std::swap(TrueVal, FalseVal);
+          std::swap(TVal, FVal);
----------------
samparker wrote:
> But FalseVal = TrueVal?
It does it the other way around in the future (D66701). I've moved that change here, and I think the swap makes it obvious that we are inverting the two conditions, even if we are about to throw one away.


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

https://reviews.llvm.org/D66483





More information about the llvm-commits mailing list