Lines Matching refs:SourceRegion
157 bool validateCandidates(CoalescingCandidateInfo &SourceRegion,
175 bool mergeCandidates(CoalescingCandidateInfo &SourceRegion,
181 bool canMerge(CoalescingCandidateInfo &SourceRegion,
489 CoalescingCandidateInfo &SourceRegion, in validateCandidates() argument
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()
499 !SourceRegion.FallThroughBlock->empty()) in validateCandidates()
531 bool PPCBranchCoalescing::canMerge(CoalescingCandidateInfo &SourceRegion, in canMerge() argument
533 if (!validateCandidates(SourceRegion, TargetRegion)) in canMerge()
539 I = SourceRegion.BranchBlock->instr_begin(), in canMerge()
540 E = SourceRegion.BranchBlock->getFirstNonPHI(); in canMerge()
544 if (Use.isPHI() && Use.getParent() == SourceRegion.BranchTargetBlock) { in canMerge()
552 if (Use.getParent() == SourceRegion.BranchBlock) { in canMerge()
556 SourceRegion.MustMoveDown = true; in canMerge()
564 I = SourceRegion.BranchBlock->getFirstNonPHI(), in canMerge()
565 E = SourceRegion.BranchBlock->end(); in canMerge()
567 if (!canMoveToBeginning(*I, *SourceRegion.BranchTargetBlock)) { in canMerge()
570 SourceRegion.MustMoveUp = true; in canMerge()
575 SourceRegion.MustMoveDown = true; in canMerge()
579 return (SourceRegion.MustMoveUp && SourceRegion.MustMoveDown) ? false : true; in canMerge()
638 bool PPCBranchCoalescing::mergeCandidates(CoalescingCandidateInfo &SourceRegion, in mergeCandidates() argument
641 if (SourceRegion.MustMoveUp && SourceRegion.MustMoveDown) { in mergeCandidates()
646 if (!validateCandidates(SourceRegion, TargetRegion)) in mergeCandidates()
651 moveAndUpdatePHIs(SourceRegion.BranchBlock, SourceRegion.BranchTargetBlock); in mergeCandidates()
656 SourceRegion.BranchBlock->getFirstNonPHI(); in mergeCandidates()
658 SourceRegion.BranchBlock->getFirstTerminator(); in mergeCandidates()
660 MachineBasicBlock *Source = SourceRegion.MustMoveDown in mergeCandidates()
661 ? SourceRegion.BranchTargetBlock in mergeCandidates()
665 SourceRegion.MustMoveDown in mergeCandidates()
666 ? SourceRegion.BranchTargetBlock->getFirstNonPHI() in mergeCandidates()
669 Source->splice(Target, SourceRegion.BranchBlock, firstInstr, lastInstr); in mergeCandidates()
676 SourceRegion.BranchBlock->removeSuccessor(SourceRegion.FallThroughBlock); in mergeCandidates()
678 SourceRegion.BranchBlock); 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()
702 SourceRegion.FallThroughBlock); in mergeCandidates()
703 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()