summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/LLVMTargetMachine.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-01-14 21:22:16 +0000
committerJim Grosbach <grosbach@apple.com>2010-01-14 21:22:16 +0000
commit0868567fc30c8ea3dd52995f7461d1d8cfa398a9 (patch)
tree6724d189347a398781861bd607aec2ee1452349c /llvm/lib/CodeGen/LLVMTargetMachine.cpp
parentecc8eece7dbd24f819eff50f3ced585e0286246f (diff)
downloadbcm5719-llvm-0868567fc30c8ea3dd52995f7461d1d8cfa398a9.tar.gz
bcm5719-llvm-0868567fc30c8ea3dd52995f7461d1d8cfa398a9.zip
Dwarf EH prepare needs to be run after SjLj prepare. Otherwise,
catch info can get misplaced when a selector ends up more than one block removed from the parent invoke(s). This could happen when a landing pad is shared by multiple invokes and is also a target of a normal edge from elsewhere. llvm-svn: 93456
Diffstat (limited to 'llvm/lib/CodeGen/LLVMTargetMachine.cpp')
-rw-r--r--llvm/lib/CodeGen/LLVMTargetMachine.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/LLVMTargetMachine.cpp b/llvm/lib/CodeGen/LLVMTargetMachine.cpp
index 733995f82be..8ea6dba5192 100644
--- a/llvm/lib/CodeGen/LLVMTargetMachine.cpp
+++ b/llvm/lib/CodeGen/LLVMTargetMachine.cpp
@@ -280,8 +280,8 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM,
{
case ExceptionHandling::SjLj:
// SjLj piggy-backs on dwarf for this bit. The cleanups done apply to both
- PM.add(createDwarfEHPass(getTargetLowering(), OptLevel==CodeGenOpt::None));
PM.add(createSjLjEHPass(getTargetLowering()));
+ PM.add(createDwarfEHPass(getTargetLowering(), OptLevel==CodeGenOpt::None));
break;
case ExceptionHandling::Dwarf:
PM.add(createDwarfEHPass(getTargetLowering(), OptLevel==CodeGenOpt::None));
OpenPOWER on IntegriCloud