Lines Matching full:preheader
105 BasicBlock *Preheader);
106 BasicBlock *InsertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader);
208 // Does the loop already have a preheader? If so, don't insert one.
209 BasicBlock *Preheader = L->getLoopPreheader();
210 if (!Preheader) {
211 Preheader = InsertPreheaderForLoop(L);
212 if (Preheader) {
220 // loop preheader/header will dominate the exit blocks. If the exit block has
244 // preheader and from multiple backedges), we must adjust the loop.
251 if (SeparateNestedLoop(L, LPM, Preheader)) {
263 LoopLatch = InsertUniqueBackedgeBlock(L, Preheader);
319 Preheader ? Preheader->getTerminator() : 0)) {
367 /// preheader, this method is called to insert one. This method has two phases:
368 /// preheader insertion and analysis updating.
392 PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader",
396 SplitLandingPadPredecessors(Header, OutsideBlocks, ".preheader",
413 /// RewriteLoopExitBlock - Ensure that the loop preheader dominates all exit
492 // right after some 'outside block' block. This prevents the preheader from
547 BasicBlock *Preheader) {
548 // Don't try to separate loops without a preheader.
549 if (!Preheader)
552 // The header is not a landing pad; preheader insertion should ensure this.
653 LoopSimplify::InsertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader) {
660 // Unique backedge insertion currently depends on having a preheader.
661 if (!Preheader)
664 // The header is not a landing pad; preheader insertion should ensure this.
676 if (P != Preheader) BackedgeBlocks.push_back(P);
700 // preheader over to the new PHI node.
707 if (IBB == Preheader) {
720 // Delete all of the incoming values from the old PN except the preheader's
721 assert(PreheaderIdx != ~0U && "PHI has no preheader entry??");
770 // Indirectbr can interfere with preheader and unique backedge insertion.