Lines Matching refs:BranchBlock

142     MachineBasicBlock *BranchBlock;       // Block containing the branch  member
209 : BranchBlock(nullptr), BranchTargetBlock(nullptr), in INITIALIZE_PASS_DEPENDENCY()
213 BranchBlock = nullptr; in clear()
240 << Cand.BranchBlock->getNumber() << " can be coalesced:"); in canCoalesceBranch()
243 if (TII->analyzeBranch(*Cand.BranchBlock, Cand.BranchTargetBlock, FalseMBB, in canCoalesceBranch()
249 for (auto &I : Cand.BranchBlock->terminators()) { in canCoalesceBranch()
274 if (Cand.BranchBlock->isEHPad() || Cand.BranchBlock->hasEHPadSuccessor()) { in canCoalesceBranch()
282 !Cand.BranchBlock->isSuccessor(Cand.BranchTargetBlock)) { in canCoalesceBranch()
288 if (Cand.BranchBlock->succ_size() != 2) { in canCoalesceBranch()
294 assert(Cand.BranchBlock->canFallThrough() && in canCoalesceBranch()
301 (*Cand.BranchBlock->succ_begin() == Cand.BranchTargetBlock) in canCoalesceBranch()
302 ? *Cand.BranchBlock->succ_rbegin() in canCoalesceBranch()
303 : *Cand.BranchBlock->succ_begin(); in canCoalesceBranch()
493 if (TargetRegion.BranchTargetBlock != SourceRegion.BranchBlock) in validateCandidates()
495 else if (!MDT->dominates(TargetRegion.BranchBlock, SourceRegion.BranchBlock)) in validateCandidates()
497 else if (!MPDT->dominates(SourceRegion.BranchBlock, TargetRegion.BranchBlock)) in validateCandidates()
540 I = SourceRegion.BranchBlock->instr_begin(), in canMerge()
541 E = SourceRegion.BranchBlock->getFirstNonPHI(); in canMerge()
553 if (Use.getParent() == SourceRegion.BranchBlock) { in canMerge()
565 I = SourceRegion.BranchBlock->getFirstNonPHI(), in canMerge()
566 E = SourceRegion.BranchBlock->end(); in canMerge()
573 if (!canMoveToEnd(*I, *TargetRegion.BranchBlock)) { in canMerge()
652 moveAndUpdatePHIs(SourceRegion.BranchBlock, SourceRegion.BranchTargetBlock); in mergeCandidates()
657 SourceRegion.BranchBlock->getFirstNonPHI(); in mergeCandidates()
659 SourceRegion.BranchBlock->getFirstTerminator(); in mergeCandidates()
663 : TargetRegion.BranchBlock; in mergeCandidates()
668 : TargetRegion.BranchBlock->getFirstTerminator(); in mergeCandidates()
670 Source->splice(Target, SourceRegion.BranchBlock, firstInstr, lastInstr); in mergeCandidates()
677 SourceRegion.BranchBlock->removeSuccessor(SourceRegion.FallThroughBlock); in mergeCandidates()
678 TargetRegion.BranchBlock->transferSuccessorsAndUpdatePHIs( in mergeCandidates()
679 SourceRegion.BranchBlock); in mergeCandidates()
683 TargetRegion.BranchBlock->ReplaceUsesOfBlockWith( in mergeCandidates()
684 SourceRegion.BranchBlock, SourceRegion.BranchTargetBlock); in mergeCandidates()
687 SourceRegion.BranchBlock->terminators().begin(); in mergeCandidates()
688 while (I != SourceRegion.BranchBlock->terminators().end()) { in mergeCandidates()
704 TargetRegion.FallThroughBlock->removeSuccessor(SourceRegion.BranchBlock); in mergeCandidates()
707 assert(SourceRegion.BranchBlock->empty() && in mergeCandidates()
709 SourceRegion.BranchBlock->eraseFromParent(); in mergeCandidates()
742 Cand1.BranchBlock = &MBB; in runOnMachineFunction()
748 Cand2.BranchBlock = Cand1.BranchTargetBlock; in runOnMachineFunction()
755 assert(MPDT->dominates(Cand2.BranchTargetBlock, Cand1.BranchBlock) && in runOnMachineFunction()
759 LLVM_DEBUG(dbgs() << "Blocks " << Cand1.BranchBlock->getNumber() in runOnMachineFunction()
760 << " and " << Cand2.BranchBlock->getNumber() in runOnMachineFunction()
766 << Cand1.BranchBlock->getNumber() << " and " in runOnMachineFunction()
767 << Cand2.BranchBlock->getNumber() << "\n"); in runOnMachineFunction()
771 LLVM_DEBUG(dbgs() << "Merging blocks " << Cand1.BranchBlock->getNumber() in runOnMachineFunction()