forked from OSchip/llvm-project
Revert commit 142891. Takumi bisected the tablegen miscompiles
down to this commit. Original commit message: An MBB which branches to an EH landing pad shouldn't be considered for tail merging. In SjLj EH, the jump to the landing pad is not done explicitly through a branch statement. The EH landing pad is added as a successor to the throwing BB. Because of that however, the branch folding pass could mistakenly think that it could merge the throwing BB with another BB. This isn't safe to do. <rdar://problem/10334833> llvm-svn: 142920
This commit is contained in:
parent
a370f3e34e
commit
6ca458e49a
|
@ -913,8 +913,7 @@ bool BranchFolder::TailMergeBlocks(MachineFunction &MF) {
|
|||
// reinsert conditional branch only, for now
|
||||
TII->InsertBranch(*PBB, (TBB == IBB) ? FBB : TBB, 0, NewCond, dl);
|
||||
}
|
||||
if (!PBB->getLandingPadSuccessor())
|
||||
MergePotentials.push_back(MergePotentialsElt(HashEndOfMBB(PBB),*P));
|
||||
MergePotentials.push_back(MergePotentialsElt(HashEndOfMBB(PBB), *P));
|
||||
}
|
||||
}
|
||||
// If this is a large problem, avoid visiting the same basic blocks
|
||||
|
|
Loading…
Reference in New Issue