Lines Matching defs:TargetRegion
158 CoalescingCandidateInfo &TargetRegion) const;
176 CoalescingCandidateInfo &TargetRegion);
182 CoalescingCandidateInfo &TargetRegion) const;
484 /// \param[in] TargetRegion The candidate to move statements to
486 /// into a block in TargetRegion; false otherwise.
490 CoalescingCandidateInfo &TargetRegion) const {
492 if (TargetRegion.BranchTargetBlock != SourceRegion.BranchBlock)
493 llvm_unreachable("Expecting SourceRegion to immediately follow TargetRegion");
494 else if (!MDT->dominates(TargetRegion.BranchBlock, SourceRegion.BranchBlock))
495 llvm_unreachable("Expecting TargetRegion to dominate SourceRegion");
496 else if (!MPDT->dominates(SourceRegion.BranchBlock, TargetRegion.BranchBlock))
497 llvm_unreachable("Expecting SourceRegion to post-dominate TargetRegion");
498 else if (!TargetRegion.FallThroughBlock->empty() ||
509 /// 2. Move to the end of the TargetRegion.BranchBlock.
511 /// TargetRegion.BranchTargetBlock (also SourceRegion.BranchBlock).
514 /// TargetRegion.BranchTargetBlock down, to the beginning of the
516 /// in TargetRegion.BranchTargetBlock is used in a PHI node in the
518 /// can be moved up, to the end of the TargetRegion.BranchBlock (immediately
527 /// \param[in] TargetRegion The candidate to move statements to
529 /// into a block in TargetRegion, false otherwise.
532 CoalescingCandidateInfo &TargetRegion) const {
533 if (!validateCandidates(SourceRegion, TargetRegion))
562 // TargetRegion.BranchBlock (up) or SourceRegion.BranchTargetBlock (down)
572 if (!canMoveToEnd(*I, *TargetRegion.BranchBlock)) {
584 /// TargetRegion.BranchBlock, TargetRegion.BranchTargetBlock and
585 /// TargetRegion.FallThroughBlock respectively.
587 /// The successors for blocks in TargetRegion will be updated to use the
593 /// TargetRegion's BranchTargetBlock must also be the SourceRegions's
599 /// | TargetRegion.BranchBlock |
603 /// | | TargetRegion.FallThroughBlock |
607 /// | TargetRegion.BranchTargetBlock |
622 /// | TargetRegion.BranchBlock |
627 /// | | TargetRegion.FallThroughBlock |
636 /// \param[in] TargetRegion The candidate to move blocks to
639 CoalescingCandidateInfo &TargetRegion) {
646 if (!validateCandidates(SourceRegion, TargetRegion))
654 // TargetRegion.BranchBlock
662 : TargetRegion.BranchBlock;
667 : TargetRegion.BranchBlock->getFirstTerminator();
675 // SourceRegion.BranchBlock to TargetRegion.BranchBlock.
677 TargetRegion.BranchBlock->transferSuccessorsAndUpdatePHIs(
679 // Update branch in TargetRegion.BranchBlock to jump to
681 // In this case, TargetRegion.BranchTargetBlock == SourceRegion.BranchBlock.
682 TargetRegion.BranchBlock->ReplaceUsesOfBlockWith(
696 assert(TargetRegion.FallThroughBlock->empty() &&
701 TargetRegion.FallThroughBlock->transferSuccessorsAndUpdatePHIs(
703 TargetRegion.FallThroughBlock->removeSuccessor(SourceRegion.BranchBlock);
704 TargetRegion.FallThroughBlock->normalizeSuccProbs();