mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-23 20:29:30 +00:00
Don't merge in tail block of a diamond if it has more than one predecessors after if-conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37353 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1f476f4d84
commit
58fbb9f5ba
@ -555,9 +555,11 @@ bool IfConverter::IfConvertDiamond(BBInfo &BBI) {
|
||||
} else
|
||||
InsertUncondBranch(BBI.BB, CvtBBI->BB, TII);
|
||||
|
||||
// If the if-converted block fallthrough into the tail block, then
|
||||
// If the if-converted block fallthrough or unconditionally branch into the
|
||||
// tail block, and the tail block does not have other predecessors, then
|
||||
// fold the tail block in as well.
|
||||
if (BBI.TailBB && CvtBBI->BB->succ_size() == 1) {
|
||||
if (BBI.TailBB &&
|
||||
BBI.TailBB->succ_size() == 1 && CvtBBI->BB->succ_size() == 1) {
|
||||
CvtBBI->NonPredSize -= TII->RemoveBranch(*CvtBBI->BB);
|
||||
BBInfo TailBBI = BBAnalysis[BBI.TailBB->getNumber()];
|
||||
MergeBlocks(*CvtBBI, TailBBI);
|
||||
|
Loading…
x
Reference in New Issue
Block a user