Lines Matching refs:LS

579   changeIterationSpaceEnd(const LoopStructure &LS, BasicBlock *Preheader,
585 BasicBlock *createPreheader(const LoopStructure &LS, BasicBlock *OldPreheader,
593 LoopStructure &LS, BasicBlock *ContinuationBlockAndPreheader,
630 const LoopStructure &LS, ScalarEvolution &SE, in LoopConstrainer() argument
634 Range(R), MainLoopStructure(LS) {} in LoopConstrainer()
1174 const LoopStructure &LS, BasicBlock *Preheader, Value *ExitSubloopAt, in changeIterationSpaceEnd() argument
1249 BasicBlock *BBInsertLocation = LS.Latch->getNextNode(); in changeIterationSpaceEnd()
1250 RRI.ExitSelector = BasicBlock::Create(Ctx, Twine(LS.Tag) + ".exit.selector", in changeIterationSpaceEnd()
1252 RRI.PseudoExit = BasicBlock::Create(Ctx, Twine(LS.Tag) + ".pseudo.exit", &F, in changeIterationSpaceEnd()
1256 bool Increasing = LS.IndVarIncreasing; in changeIterationSpaceEnd()
1257 bool IsSignedPredicate = LS.IsSignedPredicate; in changeIterationSpaceEnd()
1267 EnterLoopCond = B.CreateICmp(Pred, LS.IndVarStart, ExitSubloopAt); in changeIterationSpaceEnd()
1269 B.CreateCondBr(EnterLoopCond, LS.Header, RRI.PseudoExit); in changeIterationSpaceEnd()
1272 LS.LatchBr->setSuccessor(LS.LatchBrExitIdx, RRI.ExitSelector); in changeIterationSpaceEnd()
1273 B.SetInsertPoint(LS.LatchBr); in changeIterationSpaceEnd()
1274 Value *TakeBackedgeLoopCond = B.CreateICmp(Pred, LS.IndVarBase, in changeIterationSpaceEnd()
1277 Value *CondForBranch = LS.LatchBrExitIdx == 1 in changeIterationSpaceEnd()
1281 LS.LatchBr->setCondition(CondForBranch); in changeIterationSpaceEnd()
1288 Value *IterationsLeft = B.CreateICmp(Pred, LS.IndVarBase, LS.LoopExitAt); in changeIterationSpaceEnd()
1289 B.CreateCondBr(IterationsLeft, RRI.PseudoExit, LS.LatchExit); in changeIterationSpaceEnd()
1297 for (PHINode &PN : LS.Header->phis()) { in changeIterationSpaceEnd()
1302 NewPHI->addIncoming(PN.getIncomingValueForBlock(LS.Latch), in changeIterationSpaceEnd()
1307 RRI.IndVarEnd = PHINode::Create(LS.IndVarBase->getType(), 2, "indvar.end", in changeIterationSpaceEnd()
1309 RRI.IndVarEnd->addIncoming(LS.IndVarStart, Preheader); in changeIterationSpaceEnd()
1310 RRI.IndVarEnd->addIncoming(LS.IndVarBase, RRI.ExitSelector); in changeIterationSpaceEnd()
1314 for (PHINode &PN : LS.LatchExit->phis()) in changeIterationSpaceEnd()
1315 replacePHIBlock(&PN, LS.Latch, RRI.ExitSelector); in changeIterationSpaceEnd()
1321 LoopStructure &LS, BasicBlock *ContinuationBlock, in rewriteIncomingValuesForPHIs() argument
1324 for (PHINode &PN : LS.Header->phis()) in rewriteIncomingValuesForPHIs()
1329 LS.IndVarStart = RRI.IndVarEnd; in rewriteIncomingValuesForPHIs()
1332 BasicBlock *LoopConstrainer::createPreheader(const LoopStructure &LS, in createPreheader() argument
1335 BasicBlock *Preheader = BasicBlock::Create(Ctx, Tag, &F, LS.Header); in createPreheader()
1336 BranchInst::Create(LS.Header, Preheader); in createPreheader()
1338 for (PHINode &PN : LS.Header->phis()) in createPreheader()
1812 LoopStructure LS = MaybeLoopStructure.getValue(); in run() local
1814 cast<SCEVAddRecExpr>(SE.getMinusSCEV(SE.getSCEV(LS.IndVarBase), SE.getSCEV(LS.IndVarStep))); in run()
1825 LS.IsSignedPredicate ? IntersectSignedRange : IntersectUnsignedRange; in run()
1830 LS.IsSignedPredicate); in run()
1836 !MaybeSafeIterRange.getValue().isEmpty(SE, LS.IsSignedPredicate) && in run()
1847 LoopConstrainer LC(*L, LI, LPMAddNewLoop, LS, SE, DT, in run()