[llvm-commits] [PATCH] No need to check SRetReturnReg again
Duncan Sands
baldrick at free.fr
Tue May 25 07:09:48 PDT 2010
Hi Zhongxing Xu, this looks ok to me. Was it applied?
Ciao,
Duncan.
> ping?
>
> The reason of this change is that in LowerFormalArguments() we have:
>
> if (Is64Bit && MF.getFunction()->hasStructRetAttr()) {
> X86MachineFunctionInfo *FuncInfo =
> MF.getInfo<X86MachineFunctionInfo>();
> unsigned Reg = FuncInfo->getSRetReturnReg();
> if (!Reg) {
> Reg =
> MF.getRegInfo().createVirtualRegister(getRegClassFor(MVT::i64));
> FuncInfo->setSRetReturnReg(Reg);
> }
> SDValue Copy = DAG.getCopyToReg(DAG.getEntryNode(), dl, Reg,
> InVals[0]);
> Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Copy, Chain);
> }
>
> On Fri, May 21, 2010 at 3:45 PM, Zhongxing Xu <xuzhongxing at gmail.com
> <mailto:xuzhongxing at gmail.com>> wrote:
>
> Index: lib/Target/X86/X86ISelLowering.cpp
> ===================================================================
> --- lib/Target/X86/X86ISelLowering.cpp (版本 104313)
> +++ lib/Target/X86/X86ISelLowering.cpp (工作副本)
> @@ -1256,10 +1256,8 @@
> 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);
>
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list