Home | History | Annotate | Download | only in Scalar

Lines Matching refs:Preheader

518   // Rewrite the iteration space of the loop denoted by (LS, Preheader). The
536 // After changeIterationSpaceEnd, `Preheader' is no longer a legitimate
537 // preheader because it is made to branch to the loop header only
541 changeIterationSpaceEnd(const LoopStructure &LS, BasicBlock *Preheader,
545 // The loop denoted by `LS' has `OldPreheader' as its preheader. This
546 // function creates a new preheader for `LS' and returns it.
552 // `changeIterationSpaceEnd' and is the preheader to the loop denoted by `LS'.
576 // The preheader of the main loop. This may or may not be different from
634 BasicBlock *Preheader = L.getLoopPreheader();
635 if (!Preheader) {
636 FailureReason = "no preheader";
766 IRBuilder<> B(Preheader->getTerminator());
788 IRBuilder<> B(Preheader->getTerminator());
804 const DataLayout &DL = Preheader->getModule()->getDataLayout();
807 .expandCodeFor(IndVarStart, IndVarTy, Preheader->getTerminator());
946 const LoopStructure &LS, BasicBlock *Preheader, Value *ExitSubloopAt,
953 // | preheader |
984 // | preheader >-------------------------+
1029 BranchInst *PreheaderJump = cast<BranchInst>(Preheader->getTerminator());
1078 NewPHI->addIncoming(PN->getIncomingValueForBlock(Preheader), Preheader);
1086 RRI.IndVarEnd->addIncoming(LS.IndVarStart, Preheader);
1124 BasicBlock *Preheader = BasicBlock::Create(Ctx, Tag, &F, LS.Header);
1125 BranchInst::Create(LS.Header, Preheader);
1133 replacePHIBlock(PN, OldPreheader, Preheader);
1136 return Preheader;
1149 BasicBlock *Preheader = nullptr;
1151 Preheader = OriginalLoop.getLoopPreheader();
1152 assert(!isa<SCEVCouldNotCompute>(LatchTakenCount) && Preheader != nullptr &&
1155 OriginalPreheader = Preheader;
1156 MainLoopPreheader = Preheader;
1234 Preheader->getTerminator()->replaceUsesOfWith(MainLoopStructure.Header,
1238 createPreheader(MainLoopStructure, Preheader, "mainloop");
1239 PreLoopRRI = changeIterationSpaceEnd(PreLoop.Structure, Preheader,
1250 createPreheader(PostLoop.Structure, Preheader, "postloop");
1258 MainLoopPreheader != Preheader ? MainLoopPreheader : nullptr;
1373 BasicBlock *Preheader = L->getLoopPreheader();
1374 if (!Preheader) {
1375 DEBUG(dbgs() << "irce: loop has no preheader, leaving\n");
1379 LLVMContext &Context = Preheader->getContext();
1422 Instruction *ExprInsertPt = Preheader->getTerminator();