[PATCH] D29872: Do not legalize large add with addc/adde, introduce addcarry and do it with uaddo/addcarry

Zvi Rackover via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 20 07:03:40 PDT 2017


zvi added inline comments.


================
Comment at: lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:516
   EVT ValueVTs[] = { N->getValueType(0), NVT };
-  SDValue Ops[] = { N->getOperand(0), N->getOperand(1) };
+  SDValue Ops[3] = { N->getOperand(0), N->getOperand(1) };
+  auto C = N->getNumOperands();
----------------
Consider using a SmallVector here.


================
Comment at: lib/Target/X86/X86ISelLowering.cpp:23103
+
+  // Let legalize expand this if it isn't a legal type yet.
+  if (!DAG.getTargetLoweringInfo().isTypeLegal(VT))
----------------
I know this also appears at the top of LowerADDC_ADDE_SUBC_SUBE, but why it this check needed?


https://reviews.llvm.org/D29872





More information about the llvm-commits mailing list