[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Duncan Sands
baldrick at free.fr
Wed Jun 13 09:53:43 PDT 2007
Changes in directory llvm/lib/CodeGen/SelectionDAG:
SelectionDAGISel.cpp updated: 1.461 -> 1.462
---
Log message:
Only correctly lower exception handing intrinsics if exception handling is
turned on. Likewise for scanning of invokes to mark landing pads.
---
Diffs of the changes: (+7 -8)
SelectionDAGISel.cpp | 15 +++++++--------
1 files changed, 7 insertions(+), 8 deletions(-)
Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.461 llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.462
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.461 Wed Jun 13 10:12:02 2007
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Wed Jun 13 11:53:21 2007
@@ -2574,7 +2574,7 @@
case Intrinsic::eh_exception: {
MachineModuleInfo *MMI = DAG.getMachineModuleInfo();
- if (MMI) {
+ if (ExceptionHandling && MMI) {
// Mark exception register as live in.
unsigned Reg = TLI.getExceptionAddressRegister();
if (Reg) CurMBB->addLiveIn(Reg);
@@ -2596,7 +2596,7 @@
case Intrinsic::eh_filter:{
MachineModuleInfo *MMI = DAG.getMachineModuleInfo();
- if (MMI) {
+ if (ExceptionHandling && MMI) {
// Inform the MachineModuleInfo of the personality for this landing pad.
ConstantExpr *CE = dyn_cast<ConstantExpr>(I.getOperand(2));
assert(CE && CE->getOpcode() == Instruction::BitCast &&
@@ -4386,12 +4386,11 @@
FunctionLoweringInfo FuncInfo(TLI, Fn, MF);
- for (Function::iterator I = Fn.begin(), E = Fn.end(); I != E; ++I)
- if (InvokeInst *Invoke = dyn_cast<InvokeInst>(I->getTerminator())) {
- // Mark landing pad.
- MachineBasicBlock *LandingPad = FuncInfo.MBBMap[Invoke->getSuccessor(1)];
- LandingPad->setIsLandingPad();
- }
+ if (ExceptionHandling)
+ for (Function::iterator I = Fn.begin(), E = Fn.end(); I != E; ++I)
+ if (InvokeInst *Invoke = dyn_cast<InvokeInst>(I->getTerminator()))
+ // Mark landing pad.
+ FuncInfo.MBBMap[Invoke->getSuccessor(1)]->setIsLandingPad();
for (Function::iterator I = Fn.begin(), E = Fn.end(); I != E; ++I)
SelectBasicBlock(I, MF, FuncInfo);
More information about the llvm-commits
mailing list