Lines Matching defs:LS

462                                  const LoopStructure &LS, ScalarEvolution &SE,
466 MainLoopStructure(LS), SR(SR) {}
520 const LoopStructure &LS, BasicBlock *Preheader, Value *ExitSubloopAt,
595 BasicBlock *BBInsertLocation = LS.Latch->getNextNode();
596 RRI.ExitSelector = BasicBlock::Create(Ctx, Twine(LS.Tag) + ".exit.selector",
598 RRI.PseudoExit = BasicBlock::Create(Ctx, Twine(LS.Tag) + ".pseudo.exit", &F,
602 bool Increasing = LS.IndVarIncreasing;
603 bool IsSignedPredicate = LS.IsSignedPredicate;
613 // EnterLoopCond - is it okay to start executing this `LS'?
619 Value *IndVarStart = NoopOrExt(LS.IndVarStart);
622 B.CreateCondBr(EnterLoopCond, LS.Header, RRI.PseudoExit);
625 LS.LatchBr->setSuccessor(LS.LatchBrExitIdx, RRI.ExitSelector);
626 B.SetInsertPoint(LS.LatchBr);
627 Value *IndVarBase = NoopOrExt(LS.IndVarBase);
630 Value *CondForBranch = LS.LatchBrExitIdx == 1
634 LS.LatchBr->setCondition(CondForBranch);
641 Value *LoopExitAt = NoopOrExt(LS.LoopExitAt);
643 B.CreateCondBr(IterationsLeft, RRI.PseudoExit, LS.LatchExit);
651 for (PHINode &PN : LS.Header->phis()) {
656 NewPHI->addIncoming(PN.getIncomingValueForBlock(LS.Latch),
667 // `LS.Latch'. The PHI nodes need to be updated to reflect that.
668 LS.LatchExit->replacePhiUsesWith(LS.Latch, RRI.ExitSelector);
674 LoopStructure &LS, BasicBlock *ContinuationBlock,
677 for (PHINode &PN : LS.Header->phis())
681 LS.IndVarStart = RRI.IndVarEnd;
684 BasicBlock *LoopConstrainer::createPreheader(const LoopStructure &LS,
687 BasicBlock *Preheader = BasicBlock::Create(Ctx, Tag, &F, LS.Header);
688 BranchInst::Create(LS.Header, Preheader);
690 LS.Header->replacePhiUsesWith(OldPreheader, Preheader);