Author: baldrick Date: Fri Jul 6 04:18:59 2007 New Revision: 37938 URL: http://llvm.org/viewvc/llvm-project?rev=37938&view=rev Log: Remove propagateEHRegister in favour of a more limited fix, that is adequate while PR1508 remains unresolved.
Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=37938&r1=37937&r2=37938&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Fri Jul 6 04:18:59 2007 @@ -2548,25 +2548,6 @@ } } -/// propagateEHRegister - The specified EH register is required in a successor -/// of the EH landing pad. Propagate it (by adding it to livein) to all the -/// blocks in the paths between the landing pad and the specified block. -static void propagateEHRegister(MachineBasicBlock *MBB, unsigned EHReg, - SmallPtrSet<MachineBasicBlock*, 8> Visited) { - if (MBB->isLandingPad() || !Visited.insert(MBB)) - return; - - MBB->addLiveIn(EHReg); - for (MachineBasicBlock::pred_iterator PI = MBB->pred_begin(), - E = MBB->pred_end(); PI != E; ++PI) - propagateEHRegister(*PI, EHReg, Visited); -} - -static void propagateEHRegister(MachineBasicBlock *MBB, unsigned EHReg) { - SmallPtrSet<MachineBasicBlock*, 8> Visited; - propagateEHRegister(MBB, EHReg, Visited); -} - /// visitIntrinsicCall - Lower the call to the specified intrinsic function. If /// we want to emit this as a call to a named external function, return the name /// otherwise lower it and return null. @@ -2677,9 +2658,11 @@ case Intrinsic::eh_exception: { if (ExceptionHandling) { - if (!CurMBB->isLandingPad() && TLI.getExceptionAddressRegister()) - propagateEHRegister(CurMBB, TLI.getExceptionAddressRegister()); - + if (!CurMBB->isLandingPad()) { + // FIXME: Mark exception register as live in. Hack for PR1508. + unsigned Reg = TLI.getExceptionAddressRegister(); + if (Reg) CurMBB->addLiveIn(Reg); + } // Insert the EXCEPTIONADDR instruction. SDVTList VTs = DAG.getVTList(TLI.getPointerTy(), MVT::Other); SDOperand Ops[1]; @@ -2703,8 +2686,9 @@ #ifndef NDEBUG FuncInfo.CatchInfoLost.insert(&I); #endif - if (TLI.getExceptionSelectorRegister()) - propagateEHRegister(CurMBB, TLI.getExceptionSelectorRegister()); + // FIXME: Mark exception selector register as live in. Hack for PR1508. + unsigned Reg = TLI.getExceptionSelectorRegister(); + if (Reg) CurMBB->addLiveIn(Reg); } // Insert the EHSELECTION instruction. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits