Lines Matching defs:FromBBI
209 void CopyAndPredicateBlock(BBInfo &ToBBI, BBInfo &FromBBI,
212 void MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges = true);
1524 void IfConverter::CopyAndPredicateBlock(BBInfo &ToBBI, BBInfo &FromBBI,
1529 for (MachineBasicBlock::iterator I = FromBBI.BB->begin(),
1530 E = FromBBI.BB->end(); I != E; ++I) {
1563 std::vector<MachineBasicBlock *> Succs(FromBBI.BB->succ_begin(),
1564 FromBBI.BB->succ_end());
1565 MachineBasicBlock *NBB = getNextBlock(FromBBI.BB);
1566 MachineBasicBlock *FallThrough = FromBBI.HasFallThrough ? NBB : NULL;
1577 std::copy(FromBBI.Predicate.begin(), FromBBI.Predicate.end(),
1581 ToBBI.ClobbersPred |= FromBBI.ClobbersPred;
1590 /// i.e., when FromBBI's branch is being moved, add those successor edges to
1592 void IfConverter::MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges) {
1593 assert(!FromBBI.BB->hasAddressTaken() &&
1597 FromBBI.BB, FromBBI.BB->begin(), FromBBI.BB->end());
1599 std::vector<MachineBasicBlock *> Succs(FromBBI.BB->succ_begin(),
1600 FromBBI.BB->succ_end());
1601 MachineBasicBlock *NBB = getNextBlock(FromBBI.BB);
1602 MachineBasicBlock *FallThrough = FromBBI.HasFallThrough ? NBB : NULL;
1609 FromBBI.BB->removeSuccessor(Succ);
1614 // Now FromBBI always falls through to the next block!
1615 if (NBB && !FromBBI.BB->isSuccessor(NBB))
1616 FromBBI.BB->addSuccessor(NBB);
1618 std::copy(FromBBI.Predicate.begin(), FromBBI.Predicate.end(),
1620 FromBBI.Predicate.clear();
1622 ToBBI.NonPredSize += FromBBI.NonPredSize;
1623 ToBBI.ExtraCost += FromBBI.ExtraCost;
1624 ToBBI.ExtraCost2 += FromBBI.ExtraCost2;
1625 FromBBI.NonPredSize = 0;
1626 FromBBI.ExtraCost = 0;
1627 FromBBI.ExtraCost2 = 0;
1629 ToBBI.ClobbersPred |= FromBBI.ClobbersPred;
1630 ToBBI.HasFallThrough = FromBBI.HasFallThrough;
1632 FromBBI.IsAnalyzed = false;