Lines Matching refs:SourceRegion
158 bool validateCandidates(CoalescingCandidateInfo &SourceRegion,
176 bool mergeCandidates(CoalescingCandidateInfo &SourceRegion,
182 bool canMerge(CoalescingCandidateInfo &SourceRegion,
492 CoalescingCandidateInfo &SourceRegion, in validateCandidates() argument
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()
502 !SourceRegion.FallThroughBlock->empty()) in validateCandidates()
534 bool PPCBranchCoalescing::canMerge(CoalescingCandidateInfo &SourceRegion, in canMerge() argument
536 if (!validateCandidates(SourceRegion, TargetRegion)) in canMerge()
542 I = SourceRegion.BranchBlock->instr_begin(), in canMerge()
543 E = SourceRegion.BranchBlock->getFirstNonPHI(); in canMerge()
547 if (Use.isPHI() && Use.getParent() == SourceRegion.BranchTargetBlock) { in canMerge()
555 if (Use.getParent() == SourceRegion.BranchBlock) { in canMerge()
559 SourceRegion.MustMoveDown = true; in canMerge()
567 I = SourceRegion.BranchBlock->getFirstNonPHI(), in canMerge()
568 E = SourceRegion.BranchBlock->end(); in canMerge()
570 if (!canMoveToBeginning(*I, *SourceRegion.BranchTargetBlock)) { in canMerge()
573 SourceRegion.MustMoveUp = true; in canMerge()
578 SourceRegion.MustMoveDown = true; in canMerge()
582 return (SourceRegion.MustMoveUp && SourceRegion.MustMoveDown) ? false : true; in canMerge()
641 bool PPCBranchCoalescing::mergeCandidates(CoalescingCandidateInfo &SourceRegion, in mergeCandidates() argument
644 if (SourceRegion.MustMoveUp && SourceRegion.MustMoveDown) { in mergeCandidates()
649 if (!validateCandidates(SourceRegion, TargetRegion)) in mergeCandidates()
654 moveAndUpdatePHIs(SourceRegion.BranchBlock, SourceRegion.BranchTargetBlock); in mergeCandidates()
659 SourceRegion.BranchBlock->getFirstNonPHI(); in mergeCandidates()
661 SourceRegion.BranchBlock->getFirstTerminator(); in mergeCandidates()
663 MachineBasicBlock *Source = SourceRegion.MustMoveDown in mergeCandidates()
664 ? SourceRegion.BranchTargetBlock in mergeCandidates()
668 SourceRegion.MustMoveDown in mergeCandidates()
669 ? SourceRegion.BranchTargetBlock->getFirstNonPHI() in mergeCandidates()
672 Source->splice(Target, SourceRegion.BranchBlock, firstInstr, lastInstr); in mergeCandidates()
679 SourceRegion.BranchBlock->removeSuccessor(SourceRegion.FallThroughBlock); in mergeCandidates()
681 SourceRegion.BranchBlock); 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()
705 SourceRegion.FallThroughBlock); in mergeCandidates()
706 TargetRegion.FallThroughBlock->removeSuccessor(SourceRegion.BranchBlock); in mergeCandidates()
709 assert(SourceRegion.BranchBlock->empty() && in mergeCandidates()
711 SourceRegion.BranchBlock->eraseFromParent(); in mergeCandidates()
713 assert(SourceRegion.FallThroughBlock->empty() && in mergeCandidates()
715 SourceRegion.FallThroughBlock->eraseFromParent(); in mergeCandidates()