Don't try to move a MBB into the fall-through position if it's a landing pad or
authorBill Wendling <isanbard@gmail.com>
Fri, 11 Dec 2009 21:47:36 +0000 (21:47 +0000)
committerBill Wendling <isanbard@gmail.com>
Fri, 11 Dec 2009 21:47:36 +0000 (21:47 +0000)
commitc42a0b75a41144be86d40872b57850ab578969ea
tree8fe3cd7a527c1a561eb0b3822782868d3498bf82
parentd037d7a497caa4d66008723de72fb554ca0ae630
Don't try to move a MBB into the fall-through position if it's a landing pad or
branches only to a landing pad. Without this check, the compiler would go into
an infinite loop because the branch to a landing pad is an "abnormal" edge which
wasn't being taken into account.

This is the meat of that fix:

  if (!PrevBB.canFallThrough() && !MBB->BranchesToLandingPad(MBB)) {

The other stuff is simplification of the "branches to a landing pad" code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91161 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/BranchFolding.cpp
lib/CodeGen/MachineBasicBlock.cpp