Lines Matching defs:OrigHeader
101 static void RewriteUsesOfClonedInstructions(BasicBlock *OrigHeader,
107 BasicBlock::iterator I, E = OrigHeader->end();
108 for (I = OrigHeader->begin(); PHINode *PN = dyn_cast<PHINode>(I); ++I)
111 // Now fix up users of the instructions in OrigHeader, inserting PHI nodes
114 for (I = OrigHeader->begin(); I != E; ++I) {
131 SSA.AddAvailableValue(OrigHeader, OrigHeaderVal);
134 // Visit each use of the OrigHeader instruction.
142 // The original users in the OrigHeader are already using the
144 if (UserBB == OrigHeader)
165 // The original users in the OrigHeader are already using the original
168 if (UserBB == OrigHeader)
188 // The original users in the OrigHeader are already using the original
191 if (UserBB == OrigHeader)
423 BasicBlock *OrigHeader = L->getHeader();
426 BranchInst *BI = dyn_cast<BranchInst>(OrigHeader->getTerminator());
433 if (!L->isLoopExiting(OrigHeader))
455 Metrics.analyzeBasicBlock(OrigHeader, *TTI, EphValues, PrepareForLTO);
535 // Begin by walking OrigHeader and populating ValueMap with an entry for
537 BasicBlock::iterator I = OrigHeader->begin(), E = OrigHeader->end();
586 for (Instruction &I : *OrigHeader)
590 Module *M = OrigHeader->getModule();
720 // Original: OrigPre { OrigHeader NewHeader ... Latch }
721 // after: (OrigPre+OrigHeader') { NewHeader ... Latch OrigHeader }
727 // (1) : ... D' { U1 U2 D } // D is part of OrigHeader
728 // (2) : ... D' U1' { U2 D U1 } // D, U1 are part of OrigHeader
749 // Scopes must now be duplicated, once for OrigHeader and once for
758 LLVM_DEBUG(dbgs() << " Updating OrigHeader scopes\n");
759 cloneAndAdaptNoAliasScopes(NoAliasDeclScopes, {OrigHeader}, Context,
761 LLVM_DEBUG(OrigHeader->dump());
781 // Along with all the other instructions, we just cloned OrigHeader's
782 // terminator into OrigPreHeader. Fix up the PHI nodes in each of OrigHeader's
783 // successors by duplicating their incoming values for OrigHeader.
784 for (BasicBlock *SuccBB : successors(OrigHeader))
787 PN->addIncoming(PN->getIncomingValueForBlock(OrigHeader), OrigPreheader);
789 // Now that OrigPreHeader has a clone of OrigHeader's terminator, remove
791 // remove the corresponding incoming values from the PHI nodes in OrigHeader.
798 InsertNewValueIntoMap(ValueMapMSSA, OrigHeader, OrigPreheader);
799 MSSAU->updateForClonedBlockIntoPred(OrigHeader, OrigPreheader,
806 RewriteUsesOfClonedInstructions(OrigHeader, OrigPreheader, ValueMap, SE,
813 insertDebugValuesForPHIs(OrigHeader, InsertedPHIs);
822 // the DT about the removed edge to the OrigHeader (that got removed).
826 Updates.push_back({DominatorTree::Delete, OrigPreheader, OrigHeader});
909 // the OrigHeader block into OrigLatch. This will succeed if they are
913 BasicBlock *PredBB = OrigHeader->getUniquePredecessor();
914 bool DidMerge = MergeBlockIntoPredecessor(OrigHeader, &DTU, LI, MSSAU);