From: Bruno Cardoso Lopes Date: Sun, 1 Jun 2008 03:49:39 +0000 (+0000) Subject: Fixed flag issue that was generating infinite loop while in list scheduling. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bdbb750afeb66f3c32aca479119867e44f1da60b;p=oota-llvm.git Fixed flag issue that was generating infinite loop while in list scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51833 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Mips/MipsISelLowering.cpp b/lib/Target/Mips/MipsISelLowering.cpp index 5ea9cdd9c25..5f05a6f1e72 100644 --- a/lib/Target/Mips/MipsISelLowering.cpp +++ b/lib/Target/Mips/MipsISelLowering.cpp @@ -365,6 +365,12 @@ LowerCCCCallTo(SDOperand Op, SelectionDAG &DAG, unsigned CC) Chain = DAG.getNode(MipsISD::JmpLink, NodeTys, &Ops[0], Ops.size()); InFlag = Chain.getValue(1); + Chain = DAG.getCALLSEQ_END(Chain, + DAG.getConstant(NumBytes, getPointerTy()), + DAG.getConstant(0, getPointerTy()), + InFlag); + InFlag = Chain.getValue(1); + // Create a stack location to hold GP when PIC is used. This stack // location is used on function prologue to save GP and also after all // emited CALL's to restore GP. @@ -391,14 +397,10 @@ LowerCCCCallTo(SDOperand Op, SelectionDAG &DAG, unsigned CC) Chain = GPLoad.getValue(1); Chain = DAG.getCopyToReg(Chain, DAG.getRegister(Mips::GP, MVT::i32), GPLoad, SDOperand(0,0)); + InFlag = Chain.getValue(1); } // Create the CALLSEQ_END node. - Chain = DAG.getCALLSEQ_END(Chain, - DAG.getConstant(NumBytes, getPointerTy()), - DAG.getConstant(0, getPointerTy()), - InFlag); - InFlag = Chain.getValue(1); // Handle result values, copying them out of physregs into vregs that we // return.