mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-06 21:05:51 +00:00
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> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142891 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fef5ff07c9
commit
86ed4089e3
@ -913,6 +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));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user