SRetReturnReg was set in LowerFormalArguments(). So only assert it here.
authorZhongxing Xu <xuzhongxing@gmail.com>
Wed, 26 May 2010 08:10:02 +0000 (08:10 +0000)
committerZhongxing Xu <xuzhongxing@gmail.com>
Wed, 26 May 2010 08:10:02 +0000 (08:10 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104691 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index c0813f323cb2d7ff3f2e623517fae34239797a77..b02c33d3f88002a741c7b260a1eda26d346afe60 100644 (file)
@@ -1259,10 +1259,8 @@ X86TargetLowering::LowerReturn(SDValue Chain,
     MachineFunction &MF = DAG.getMachineFunction();
     X86MachineFunctionInfo *FuncInfo = MF.getInfo<X86MachineFunctionInfo>();
     unsigned Reg = FuncInfo->getSRetReturnReg();
-    if (!Reg) {
-      Reg = MRI.createVirtualRegister(getRegClassFor(MVT::i64));
-      FuncInfo->setSRetReturnReg(Reg);
-    }
+    assert(Reg && 
+           "SRetReturnReg should have been set in LowerFormalArguments().");
     SDValue Val = DAG.getCopyFromReg(Chain, dl, Reg, getPointerTy());
 
     Chain = DAG.getCopyToReg(Chain, dl, X86::RAX, Val, Flag);