Lines Matching refs:BranchBlock

138     MachineBasicBlock *BranchBlock;       // Block containing the branch  member
205 : BranchBlock(nullptr), BranchTargetBlock(nullptr), in INITIALIZE_PASS_DEPENDENCY()
209 BranchBlock = nullptr; in clear()
236 << Cand.BranchBlock->getNumber() << " can be coalesced:"); in canCoalesceBranch()
239 if (TII->analyzeBranch(*Cand.BranchBlock, Cand.BranchTargetBlock, FalseMBB, in canCoalesceBranch()
245 for (auto &I : Cand.BranchBlock->terminators()) { in canCoalesceBranch()
270 if (Cand.BranchBlock->isEHPad() || Cand.BranchBlock->hasEHPadSuccessor()) { in canCoalesceBranch()
275 if (Cand.BranchBlock->mayHaveInlineAsmBr()) { in canCoalesceBranch()
283 !Cand.BranchBlock->isSuccessor(Cand.BranchTargetBlock)) { in canCoalesceBranch()
289 if (Cand.BranchBlock->succ_size() != 2) { in canCoalesceBranch()
295 assert(Cand.BranchBlock->canFallThrough() && in canCoalesceBranch()
302 (*Cand.BranchBlock->succ_begin() == Cand.BranchTargetBlock) in canCoalesceBranch()
303 ? *Cand.BranchBlock->succ_rbegin() in canCoalesceBranch()
304 : *Cand.BranchBlock->succ_begin(); in canCoalesceBranch()
495 if (TargetRegion.BranchTargetBlock != SourceRegion.BranchBlock) in validateCandidates()
497 else if (!MDT->dominates(TargetRegion.BranchBlock, SourceRegion.BranchBlock)) in validateCandidates()
499 else if (!MPDT->dominates(SourceRegion.BranchBlock, TargetRegion.BranchBlock)) in validateCandidates()
542 I = SourceRegion.BranchBlock->instr_begin(), in canMerge()
543 E = SourceRegion.BranchBlock->getFirstNonPHI(); in canMerge()
555 if (Use.getParent() == SourceRegion.BranchBlock) { in canMerge()
567 I = SourceRegion.BranchBlock->getFirstNonPHI(), in canMerge()
568 E = SourceRegion.BranchBlock->end(); in canMerge()
575 if (!canMoveToEnd(*I, *TargetRegion.BranchBlock)) { in canMerge()
654 moveAndUpdatePHIs(SourceRegion.BranchBlock, SourceRegion.BranchTargetBlock); in mergeCandidates()
659 SourceRegion.BranchBlock->getFirstNonPHI(); in mergeCandidates()
661 SourceRegion.BranchBlock->getFirstTerminator(); in mergeCandidates()
665 : TargetRegion.BranchBlock; in mergeCandidates()
670 : TargetRegion.BranchBlock->getFirstTerminator(); in mergeCandidates()
672 Source->splice(Target, SourceRegion.BranchBlock, firstInstr, lastInstr); in mergeCandidates()
679 SourceRegion.BranchBlock->removeSuccessor(SourceRegion.FallThroughBlock); in mergeCandidates()
680 TargetRegion.BranchBlock->transferSuccessorsAndUpdatePHIs( in mergeCandidates()
681 SourceRegion.BranchBlock); in mergeCandidates()
685 TargetRegion.BranchBlock->ReplaceUsesOfBlockWith( in mergeCandidates()
686 SourceRegion.BranchBlock, SourceRegion.BranchTargetBlock); in mergeCandidates()
689 SourceRegion.BranchBlock->terminators().begin(); in mergeCandidates()
690 while (I != SourceRegion.BranchBlock->terminators().end()) { in mergeCandidates()
706 TargetRegion.FallThroughBlock->removeSuccessor(SourceRegion.BranchBlock); in mergeCandidates()
709 assert(SourceRegion.BranchBlock->empty() && in mergeCandidates()
711 SourceRegion.BranchBlock->eraseFromParent(); in mergeCandidates()
744 Cand1.BranchBlock = &MBB; in runOnMachineFunction()
750 Cand2.BranchBlock = Cand1.BranchTargetBlock; in runOnMachineFunction()
756 assert(MPDT->dominates(Cand2.BranchTargetBlock, Cand1.BranchBlock) && in runOnMachineFunction()
760 LLVM_DEBUG(dbgs() << "Blocks " << Cand1.BranchBlock->getNumber() in runOnMachineFunction()
761 << " and " << Cand2.BranchBlock->getNumber() in runOnMachineFunction()
767 << Cand1.BranchBlock->getNumber() << " and " in runOnMachineFunction()
768 << Cand2.BranchBlock->getNumber() << "\n"); in runOnMachineFunction()
772 LLVM_DEBUG(dbgs() << "Merging blocks " << Cand1.BranchBlock->getNumber() in runOnMachineFunction()