Home | History | Annotate | Download | only in Utils

Lines Matching defs:Header

14 // Loop pre-header insertion guarantees that there is a single, non-critical
15 // entry edge from outside of the loop to the loop header. This simplifies a
21 // by the loop header). This simplifies transformations such as store-sinking
68 STATISTIC(NumInserted, "Number of pre-header or exit blocks inserted");
113 BasicBlock *Header = L->getHeader();
117 for (pred_iterator PI = pred_begin(Header), PE = pred_end(Header);
131 // Split out the loop pre-header.
133 if (!Header->isLandingPad()) {
134 PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader",
138 SplitLandingPadPredecessors(Header, OutsideBlocks, ".preheader",
144 Header->getFirstNonPHI()->getDebugLoc());
145 DEBUG(dbgs() << "LoopSimplify: Creating pre-header "
246 /// To identify this common case, we look at the PHI nodes in the header of the
260 // The header is not a landing pad; preheader insertion should ensure this.
288 BasicBlock *Header = L->getHeader();
290 SplitBlockPredecessors(Header, OuterLoopPreds, ".outer", PP);
312 // Now reset the header in L, which had been moved by
314 L->moveToHeader(Header);
319 for (pred_iterator PI=pred_begin(Header), E = pred_end(Header); PI!=E; ++PI) {
321 if (DT->dominates(Header, P))
322 addBlockAndPredsToSet(P, Header, BlocksInL);
354 /// and have that block branch to the loop header. This ensures that loops
362 BasicBlock *Header = L->getHeader();
363 Function *F = Header->getParent();
369 // The header is not a landing pad; preheader insertion should ensure this.
370 assert(!Header->isLandingPad() && "Can't insert backedge to landing pad");
372 // Figure out which basic blocks contain back-edges to the loop header.
374 for (pred_iterator I = pred_begin(Header), E = pred_end(Header); I != E; ++I){
385 BasicBlock *BEBlock = BasicBlock::Create(Header->getContext(),
386 Header->getName()+".backedge", F);
387 BranchInst *BETerminator = BranchInst::Create(Header, BEBlock);
397 // the backedge block which correspond to any PHI nodes in the header block.
398 for (BasicBlock::iterator I = Header->begin(); isa<PHINode>(I); ++I) {
449 // backedge blocks to just to the BEBlock instead of the header.
453 if (TI->getSuccessor(Op) == Header)
482 // Check to see that no blocks (other than the header) in this loop have
554 // loop preheader/header will dominate the exit blocks. If the exit block has
577 // If the header has more than two predecessors at this point (from the
601 // loop header.
609 // Scan over the PHI nodes in the loop header. Since they now have only two
828 "LoopSimplify has no excuse for missing loop header info!");