return MBB2I->getDesc().isCall() && !MBB1I->getDesc().isCall();
}
-/// TailDuplicate - MBB unconditionally branches to SuccBB. If it is profitable,
-/// duplicate SuccBB's contents in MBB to eliminate the branch.
+/// TailDuplicate - If it is profitable, duplicate TailBB's contents in each
+/// of its predecessors.
bool BranchFolder::TailDuplicate(MachineBasicBlock *TailBB,
bool PrevFallsThrough,
MachineFunction &MF) {
1 : (TailMergeSize - 1);
// Check the instructions in the block to determine whether tail-duplication
- // is invalid or unlikely to be unprofitable.
+ // is invalid or unlikely to be profitable.
unsigned i = 0;
bool HasCall = false;
for (MachineBasicBlock::iterator I = TailBB->begin();
// EH edges are ignored by AnalyzeBranch.
if (PredBB->succ_size() != 1)
continue;
- // Don't duplicate into a fall-through predecessor unless its the
+ // Don't duplicate into a fall-through predecessor unless it's the
// only predecessor.
if (PredBB->isLayoutSuccessor(TailBB) &&
PrevFallsThrough &&
}
}
-
// If this branch is the only thing in its block, see if we can forward
// other blocks across it.
if (CurTBB && CurCond.empty() && CurFBB == 0 &&