[llvm-commits] [llvm] r37938 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Duncan Sands
baldrick at free.fr
Fri Jul 6 02:18:59 PDT 2007
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.
More information about the llvm-commits
mailing list