Lines Matching full:preheader
105 BasicBlock *Preheader);
106 BasicBlock *InsertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader);
209 // Does the loop already have a preheader? If so, don't insert one.
210 BasicBlock *Preheader = L->getLoopPreheader();
211 if (!Preheader) {
212 Preheader = InsertPreheaderForLoop(L, this);
213 if (Preheader) {
221 // loop preheader/header will dominate the exit blocks. If the exit block has
245 // preheader and from multiple backedges), we must adjust the loop.
252 if (SeparateNestedLoop(L, LPM, Preheader)) {
264 LoopLatch = InsertUniqueBackedgeBlock(L, Preheader);
320 Preheader ? Preheader->getTerminator() : 0)) {
368 /// preheader, this method is called to insert one. This method has two phases:
369 /// preheader insertion and analysis updating.
393 PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader",
397 SplitLandingPadPredecessors(Header, OutsideBlocks, ".preheader",
414 /// RewriteLoopExitBlock - Ensure that the loop preheader dominates all exit
493 // right after some 'outside block' block. This prevents the preheader from
548 BasicBlock *Preheader) {
549 // Don't try to separate loops without a preheader.
550 if (!Preheader)
553 // The header is not a landing pad; preheader insertion should ensure this.
654 LoopSimplify::InsertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader) {
661 // Unique backedge insertion currently depends on having a preheader.
662 if (!Preheader)
665 // The header is not a landing pad; preheader insertion should ensure this.
677 if (P != Preheader) BackedgeBlocks.push_back(P);
701 // preheader over to the new PHI node.
708 if (IBB == Preheader) {
721 // Delete all of the incoming values from the old PN except the preheader's
722 assert(PreheaderIdx != ~0U && "PHI has no preheader entry??");
771 // Indirectbr can interfere with preheader and unique backedge insertion.