diff options
| author | Jim Grosbach <grosbach@apple.com> | 2010-01-14 21:38:31 +0000 |
|---|---|---|
| committer | Jim Grosbach <grosbach@apple.com> | 2010-01-14 21:38:31 +0000 |
| commit | 26cb241d6ab201327d479741c7bf8300b5184263 (patch) | |
| tree | e1876c57326d778a143c7eb053585c2be84e79a1 | |
| parent | f66e4ebbdc4bf8d6d48f3d17c4595824c95bc180 (diff) | |
| download | external_llvm-26cb241d6ab201327d479741c7bf8300b5184263.zip external_llvm-26cb241d6ab201327d479741c7bf8300b5184263.tar.gz external_llvm-26cb241d6ab201327d479741c7bf8300b5184263.tar.bz2 | |
Add comment explaining the necessity of r93456
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93459 91177308-0d34-0410-b5e6-96231b3b80d8
| -rw-r--r-- | lib/CodeGen/LLVMTargetMachine.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/CodeGen/LLVMTargetMachine.cpp b/lib/CodeGen/LLVMTargetMachine.cpp index 8ea6dba..2b5fd2c 100644 --- a/lib/CodeGen/LLVMTargetMachine.cpp +++ b/lib/CodeGen/LLVMTargetMachine.cpp @@ -280,6 +280,11 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM, { case ExceptionHandling::SjLj: // SjLj piggy-backs on dwarf for this bit. The cleanups done apply to both + // 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. PM.add(createSjLjEHPass(getTargetLowering())); PM.add(createDwarfEHPass(getTargetLowering(), OptLevel==CodeGenOpt::None)); break; |
