Home | History | Annotate | Download | only in Utils

Lines Matching refs: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
74 STATISTIC(NumInserted, "Number of pre-header or exit blocks inserted");
119 BasicBlock *Header = L->getHeader();
123 for (pred_iterator PI = pred_begin(Header), PE = pred_end(Header);
137 // Split out the loop pre-header.
139 PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader", DT,
144 DEBUG(dbgs() << "LoopSimplify: Creating pre-header "
241 /// To identify this common case, we look at the PHI nodes in the header of the
256 // The header is not a landing pad; preheader insertion should ensure this.
257 BasicBlock *Header = L->getHeader();
258 assert(!Header->isEHPad() && "Can't insert backedge to EH pad");
284 BasicBlock *NewBB = SplitBlockPredecessors(Header, OuterLoopPreds, ".outer",
307 // Now reset the header in L, which had been moved by
309 L->moveToHeader(Header);
314 for (pred_iterator PI=pred_begin(Header), E = pred_end(Header); PI!=E; ++PI) {
316 if (DT->dominates(Header, P))
317 addBlockAndPredsToSet(P, Header, BlocksInL);
349 /// and have that block branch to the loop header. This ensures that loops
356 BasicBlock *Header = L->getHeader();
357 Function *F = Header->getParent();
363 // The header is not an EH pad; preheader insertion should ensure this.
364 assert(!Header->isEHPad() && "Can't insert backedge to EH pad");
366 // Figure out which basic blocks contain back-edges to the loop header.
368 for (pred_iterator I = pred_begin(Header), E = pred_end(Header); I != E; ++I){
379 BasicBlock *BEBlock = BasicBlock::Create(Header->getContext(),
380 Header->getName() + ".backedge", F);
381 BranchInst *BETerminator = BranchInst::Create(Header, BEBlock);
382 BETerminator->setDebugLoc(Header->getFirstNonPHI()->getDebugLoc());
392 // the backedge block which correspond to any PHI nodes in the header block.
393 for (BasicBlock::iterator I = Header->begin(); isa<PHINode>(I); ++I) {
442 // backedge blocks to just to the BEBlock instead of the header.
446 if (TI->getSuccessor(Op) == Header)
470 // Check to see that no blocks (other than the header) in this loop have
541 // loop preheader/header will dominate the exit blocks. If the exit block has
564 // If the header has more than two predecessors at this point (from the
589 // loop header.
599 // Scan over the PHI nodes in the loop header. Since they now have only two
823 "LoopSimplify has no excuse for missing loop header info!");