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
63 STATISTIC(NumInserted, "Number of pre-header or exit blocks inserted");
145 // Check to see that no blocks (other than the header) in this loop have
212 // loop preheader/header will dominate the exit blocks. If the exit block has
235 // If the header has more than two predecessors at this point (from the
254 // loop header.
262 // Scan over the PHI nodes in the loop header. Since they now have only two
355 BasicBlock *Header = L->getHeader();
359 for (pred_iterator PI = pred_begin(Header), PE = pred_end(Header);
373 // Split out the loop pre-header.
375 SplitBlockPredecessors(Header, &OutsideBlocks[0], OutsideBlocks.size(),
378 NewBB->getTerminator()->setDebugLoc(Header->getFirstNonPHI()->getDebugLoc());
379 DEBUG(dbgs() << "LoopSimplify: Creating pre-header " << NewBB->getName()
506 /// To identify this common case, we look at the PHI nodes in the header of the
539 BasicBlock *Header = L->getHeader();
540 BasicBlock *NewBB = SplitBlockPredecessors(Header, &OuterLoopPreds[0],
567 // Now reset the header in L, which had been moved by
569 L->moveToHeader(Header);
574 for (pred_iterator PI=pred_begin(Header), E = pred_end(Header); PI!=E; ++PI) {
576 if (DT->dominates(Header, P))
577 AddBlockAndPredsToSet(P, Header, BlocksInL);
610 /// header. This ensures that loops have exactly one backedge.
617 BasicBlock *Header = L->getHeader();
618 Function *F = Header->getParent();
624 // Figure out which basic blocks contain back-edges to the loop header.
626 for (pred_iterator I = pred_begin(Header), E = pred_end(Header); I != E; ++I){
637 BasicBlock *BEBlock = BasicBlock::Create(Header->getContext(),
638 Header->getName()+".backedge", F);
639 BranchInst *BETerminator = BranchInst::Create(Header, BEBlock);
649 // the backedge block which correspond to any PHI nodes in the header block.
650 for (BasicBlock::iterator I = Header->begin(); isa<PHINode>(I); ++I) {
701 // backedge blocks to just to the BEBlock instead of the header.
705 if (TI->getSuccessor(Op) == Header)
737 "LoopSimplify has no excuse for missing loop header info!");