Lines Matching refs:BranchBlock

137     MachineBasicBlock *BranchBlock;       // Block containing the branch  member
204 : BranchBlock(nullptr), BranchTargetBlock(nullptr), in INITIALIZE_PASS_DEPENDENCY()
208 BranchBlock = nullptr; in clear()
235 << Cand.BranchBlock->getNumber() << " can be coalesced:"); in canCoalesceBranch()
238 if (TII->analyzeBranch(*Cand.BranchBlock, Cand.BranchTargetBlock, FalseMBB, in canCoalesceBranch()
244 for (auto &I : Cand.BranchBlock->terminators()) { in canCoalesceBranch()
269 if (Cand.BranchBlock->isEHPad() || Cand.BranchBlock->hasEHPadSuccessor()) { in canCoalesceBranch()
274 if (Cand.BranchBlock->mayHaveInlineAsmBr()) { 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()
492 if (TargetRegion.BranchTargetBlock != SourceRegion.BranchBlock) in validateCandidates()
494 else if (!MDT->dominates(TargetRegion.BranchBlock, SourceRegion.BranchBlock)) in validateCandidates()
496 else if (!MPDT->dominates(SourceRegion.BranchBlock, TargetRegion.BranchBlock)) in validateCandidates()
539 I = SourceRegion.BranchBlock->instr_begin(), in canMerge()
540 E = SourceRegion.BranchBlock->getFirstNonPHI(); in canMerge()
552 if (Use.getParent() == SourceRegion.BranchBlock) { in canMerge()
564 I = SourceRegion.BranchBlock->getFirstNonPHI(), in canMerge()
565 E = SourceRegion.BranchBlock->end(); in canMerge()
572 if (!canMoveToEnd(*I, *TargetRegion.BranchBlock)) { in canMerge()
651 moveAndUpdatePHIs(SourceRegion.BranchBlock, SourceRegion.BranchTargetBlock); in mergeCandidates()
656 SourceRegion.BranchBlock->getFirstNonPHI(); in mergeCandidates()
658 SourceRegion.BranchBlock->getFirstTerminator(); in mergeCandidates()
662 : TargetRegion.BranchBlock; in mergeCandidates()
667 : TargetRegion.BranchBlock->getFirstTerminator(); in mergeCandidates()
669 Source->splice(Target, SourceRegion.BranchBlock, firstInstr, lastInstr); in mergeCandidates()
676 SourceRegion.BranchBlock->removeSuccessor(SourceRegion.FallThroughBlock); in mergeCandidates()
677 TargetRegion.BranchBlock->transferSuccessorsAndUpdatePHIs( in mergeCandidates()
678 SourceRegion.BranchBlock); in mergeCandidates()
682 TargetRegion.BranchBlock->ReplaceUsesOfBlockWith( in mergeCandidates()
683 SourceRegion.BranchBlock, SourceRegion.BranchTargetBlock); in mergeCandidates()
686 SourceRegion.BranchBlock->terminators().begin(); in mergeCandidates()
687 while (I != SourceRegion.BranchBlock->terminators().end()) { in mergeCandidates()
703 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()
754 assert(MPDT->dominates(Cand2.BranchTargetBlock, Cand1.BranchBlock) && in runOnMachineFunction()
758 LLVM_DEBUG(dbgs() << "Blocks " << Cand1.BranchBlock->getNumber() in runOnMachineFunction()
759 << " and " << Cand2.BranchBlock->getNumber() in runOnMachineFunction()
765 << Cand1.BranchBlock->getNumber() << " and " in runOnMachineFunction()
766 << Cand2.BranchBlock->getNumber() << "\n"); in runOnMachineFunction()
770 LLVM_DEBUG(dbgs() << "Merging blocks " << Cand1.BranchBlock->getNumber() in runOnMachineFunction()