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
75 STATISTIC(NumInserted, "Number of pre-header or exit blocks inserted");
120 BasicBlock *Header = L->getHeader();
124 for (pred_iterator PI = pred_begin(Header), PE = pred_end(Header);
138 // Split out the loop pre-header.
140 PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader", DT,
145 DEBUG(dbgs() << "LoopSimplify: Creating pre-header "
242 /// To identify this common case, we look at the PHI nodes in the header of the
257 // The header is not a landing pad; preheader insertion should ensure this.
258 BasicBlock *Header = L->getHeader();
259 assert(!Header->isEHPad() && "Can't insert backedge to EH pad");
285 BasicBlock *NewBB = SplitBlockPredecessors(Header, OuterLoopPreds, ".outer",
308 // Now reset the header in L, which had been moved by
310 L->moveToHeader(Header);
315 for (pred_iterator PI=pred_begin(Header), E = pred_end(Header); PI!=E; ++PI) {
317 if (DT->dominates(Header, P))
318 addBlockAndPredsToSet(P, Header, BlocksInL);
350 /// and have that block branch to the loop header. This ensures that loops
357 BasicBlock *Header = L->getHeader();
358 Function *F = Header->getParent();
364 // The header is not an EH pad; preheader insertion should ensure this.
365 assert(!Header->isEHPad() && "Can't insert backedge to EH pad");
367 // Figure out which basic blocks contain back-edges to the loop header.
369 for (pred_iterator I = pred_begin(Header), E = pred_end(Header); I != E; ++I){
380 BasicBlock *BEBlock = BasicBlock::Create(Header->getContext(),
381 Header->getName() + ".backedge", F);
382 BranchInst *BETerminator = BranchInst::Create(Header, BEBlock);
383 BETerminator->setDebugLoc(Header->getFirstNonPHI()->getDebugLoc());
393 // the backedge block which correspond to any PHI nodes in the header block.
394 for (BasicBlock::iterator I = Header->begin(); isa<PHINode>(I); ++I) {
443 // backedge blocks to just to the BEBlock instead of the header.
447 if (TI->getSuccessor(Op) == Header)
471 // Check to see that no blocks (other than the header) in this loop have
536 // loop preheader/header will dominate the exit blocks. If the exit block has
557 // If the header has more than two predecessors at this point (from the
582 // loop header.
592 // Scan over the PHI nodes in the loop header. Since they now have only two
855 "LoopSimplify has no excuse for missing loop header info!");