[AArch64] Skip an unnecessary getCopyToReg in DYNAMIC_STACKALLOC
authorMartin Storsjo <martin@martin.st>
Sat, 17 Mar 2018 20:08:48 +0000 (20:08 +0000)
committerMartin Storsjo <martin@martin.st>
Sat, 17 Mar 2018 20:08:48 +0000 (20:08 +0000)
Differential Revision: https://reviews.llvm.org/D44586

llvm-svn: 327779

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

index be14561..43b2b1c 100644 (file)
@@ -7527,13 +7527,10 @@ AArch64TargetLowering::LowerDYNAMIC_STACKALLOC(SDValue Op,
   SDValue SP = DAG.getCopyFromReg(Chain, dl, AArch64::SP, MVT::i64);
   Chain = SP.getValue(1);
   SP = DAG.getNode(ISD::SUB, dl, MVT::i64, SP, Size);
-  Chain = DAG.getCopyToReg(Chain, dl, AArch64::SP, SP);
-
-  if (Align) {
+  if (Align)
     SP = DAG.getNode(ISD::AND, dl, VT, SP.getValue(0),
                      DAG.getConstant(-(uint64_t)Align, dl, VT));
-    Chain = DAG.getCopyToReg(Chain, dl, AArch64::SP, SP);
-  }
+  Chain = DAG.getCopyToReg(Chain, dl, AArch64::SP, SP);
 
   Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(0, dl, true),
                              DAG.getIntPtrConstant(0, dl, true), SDValue(), dl);