Lines Matching refs:SourceRegion

162   bool validateCandidates(CoalescingCandidateInfo &SourceRegion,
180 bool mergeCandidates(CoalescingCandidateInfo &SourceRegion,
186 bool canMerge(CoalescingCandidateInfo &SourceRegion,
490 CoalescingCandidateInfo &SourceRegion, in validateCandidates() argument
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()
500 !SourceRegion.FallThroughBlock->empty()) in validateCandidates()
532 bool PPCBranchCoalescing::canMerge(CoalescingCandidateInfo &SourceRegion, in canMerge() argument
534 if (!validateCandidates(SourceRegion, TargetRegion)) in canMerge()
540 I = SourceRegion.BranchBlock->instr_begin(), in canMerge()
541 E = SourceRegion.BranchBlock->getFirstNonPHI(); in canMerge()
545 if (Use.isPHI() && Use.getParent() == SourceRegion.BranchTargetBlock) { in canMerge()
553 if (Use.getParent() == SourceRegion.BranchBlock) { in canMerge()
557 SourceRegion.MustMoveDown = true; in canMerge()
565 I = SourceRegion.BranchBlock->getFirstNonPHI(), in canMerge()
566 E = SourceRegion.BranchBlock->end(); in canMerge()
568 if (!canMoveToBeginning(*I, *SourceRegion.BranchTargetBlock)) { in canMerge()
571 SourceRegion.MustMoveUp = true; in canMerge()
576 SourceRegion.MustMoveDown = true; in canMerge()
580 return (SourceRegion.MustMoveUp && SourceRegion.MustMoveDown) ? false : true; in canMerge()
639 bool PPCBranchCoalescing::mergeCandidates(CoalescingCandidateInfo &SourceRegion, in mergeCandidates() argument
642 if (SourceRegion.MustMoveUp && SourceRegion.MustMoveDown) { in mergeCandidates()
647 if (!validateCandidates(SourceRegion, TargetRegion)) in mergeCandidates()
652 moveAndUpdatePHIs(SourceRegion.BranchBlock, SourceRegion.BranchTargetBlock); in mergeCandidates()
657 SourceRegion.BranchBlock->getFirstNonPHI(); in mergeCandidates()
659 SourceRegion.BranchBlock->getFirstTerminator(); in mergeCandidates()
661 MachineBasicBlock *Source = SourceRegion.MustMoveDown in mergeCandidates()
662 ? SourceRegion.BranchTargetBlock in mergeCandidates()
666 SourceRegion.MustMoveDown in mergeCandidates()
667 ? SourceRegion.BranchTargetBlock->getFirstNonPHI() in mergeCandidates()
670 Source->splice(Target, SourceRegion.BranchBlock, firstInstr, lastInstr); in mergeCandidates()
677 SourceRegion.BranchBlock->removeSuccessor(SourceRegion.FallThroughBlock); in mergeCandidates()
679 SourceRegion.BranchBlock); 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()
703 SourceRegion.FallThroughBlock); in mergeCandidates()
704 TargetRegion.FallThroughBlock->removeSuccessor(SourceRegion.BranchBlock); in mergeCandidates()
707 assert(SourceRegion.BranchBlock->empty() && in mergeCandidates()
709 SourceRegion.BranchBlock->eraseFromParent(); in mergeCandidates()
711 assert(SourceRegion.FallThroughBlock->empty() && in mergeCandidates()
713 SourceRegion.FallThroughBlock->eraseFromParent(); in mergeCandidates()