Lines Matching full:origpreheader
89 BasicBlock *OrigPreheader,
94 PN->removeIncomingValue(PN->getBasicBlockIndex(OrigPreheader));
113 SSA.AddAvailableValue(OrigPreheader, OrigPreHeaderVal);
135 // Users in the OrigPreHeader need to use the value to which the
137 if (UserBB == OrigPreheader) {
185 BasicBlock *OrigPreheader = L->getLoopPreheader();
190 if (OrigPreheader == 0 || OrigLatch == 0)
223 ValueMap[PN] = PN->getIncomingValueForBlock(OrigPreheader);
225 // For the rest of the instructions, either hoist to the OrigPreheader if
227 TerminatorInst *LoopEntryBranch = OrigPreheader->getTerminator();
269 // terminator into OrigPreHeader. Fix up the PHI nodes in each of OrigHeader's
275 PN->addIncoming(PN->getIncomingValueForBlock(OrigHeader), OrigPreheader);
277 // Now that OrigPreHeader has a clone of OrigHeader's terminator, remove
278 // OrigPreHeader's old terminator (the original branch into the loop), and
284 RewriteUsesOfClonedInstructions(OrigHeader, OrigPreheader, ValueMap);
298 BranchInst *PHBI = cast<BranchInst>(OrigPreheader->getTerminator());
307 // Since OrigPreheader now has the conditional branch to Exit block, it is
309 DT->changeImmediateDominator(Exit, OrigPreheader);
310 DT->changeImmediateDominator(NewHeader, OrigPreheader);
316 // Right now OrigPreHeader has two successors, NewHeader and ExitBlock, and
318 BasicBlock *NewPH = SplitCriticalEdge(OrigPreheader, NewHeader, this);
328 Exit->removePredecessor(OrigPreheader, true /*preserve LCSSA*/);
336 DT->changeImmediateDominator(NewHeader, OrigPreheader);