Lines Matching refs:LS

243   bool isProfitableToTransform(const Loop &L, LoopStructure &LS);
592 changeIterationSpaceEnd(const LoopStructure &LS, BasicBlock *Preheader,
598 BasicBlock *createPreheader(const LoopStructure &LS, BasicBlock *OldPreheader,
606 LoopStructure &LS, BasicBlock *ContinuationBlockAndPreheader,
643 const LoopStructure &LS, ScalarEvolution &SE, in LoopConstrainer() argument
647 Range(R), MainLoopStructure(LS) {} in LoopConstrainer()
1193 const LoopStructure &LS, BasicBlock *Preheader, Value *ExitSubloopAt, in changeIterationSpaceEnd() argument
1268 BasicBlock *BBInsertLocation = LS.Latch->getNextNode(); in changeIterationSpaceEnd()
1269 RRI.ExitSelector = BasicBlock::Create(Ctx, Twine(LS.Tag) + ".exit.selector", in changeIterationSpaceEnd()
1271 RRI.PseudoExit = BasicBlock::Create(Ctx, Twine(LS.Tag) + ".pseudo.exit", &F, in changeIterationSpaceEnd()
1275 bool Increasing = LS.IndVarIncreasing; in changeIterationSpaceEnd()
1276 bool IsSignedPredicate = LS.IsSignedPredicate; in changeIterationSpaceEnd()
1293 Value *IndVarStart = NoopOrExt(LS.IndVarStart); in changeIterationSpaceEnd()
1296 B.CreateCondBr(EnterLoopCond, LS.Header, RRI.PseudoExit); in changeIterationSpaceEnd()
1299 LS.LatchBr->setSuccessor(LS.LatchBrExitIdx, RRI.ExitSelector); in changeIterationSpaceEnd()
1300 B.SetInsertPoint(LS.LatchBr); in changeIterationSpaceEnd()
1301 Value *IndVarBase = NoopOrExt(LS.IndVarBase); in changeIterationSpaceEnd()
1304 Value *CondForBranch = LS.LatchBrExitIdx == 1 in changeIterationSpaceEnd()
1308 LS.LatchBr->setCondition(CondForBranch); in changeIterationSpaceEnd()
1315 Value *LoopExitAt = NoopOrExt(LS.LoopExitAt); in changeIterationSpaceEnd()
1317 B.CreateCondBr(IterationsLeft, RRI.PseudoExit, LS.LatchExit); in changeIterationSpaceEnd()
1325 for (PHINode &PN : LS.Header->phis()) { in changeIterationSpaceEnd()
1330 NewPHI->addIncoming(PN.getIncomingValueForBlock(LS.Latch), in changeIterationSpaceEnd()
1342 LS.LatchExit->replacePhiUsesWith(LS.Latch, RRI.ExitSelector); in changeIterationSpaceEnd()
1348 LoopStructure &LS, BasicBlock *ContinuationBlock, in rewriteIncomingValuesForPHIs() argument
1351 for (PHINode &PN : LS.Header->phis()) in rewriteIncomingValuesForPHIs()
1355 LS.IndVarStart = RRI.IndVarEnd; in rewriteIncomingValuesForPHIs()
1358 BasicBlock *LoopConstrainer::createPreheader(const LoopStructure &LS, in createPreheader() argument
1361 BasicBlock *Preheader = BasicBlock::Create(Ctx, Tag, &F, LS.Header); in createPreheader()
1362 BranchInst::Create(LS.Header, Preheader); in createPreheader()
1364 LS.Header->replacePhiUsesWith(OldPreheader, Preheader); in createPreheader()
1856 LoopStructure &LS) { in isProfitableToTransform() argument
1861 uint64_t hFreq = BFI.getBlockFreq(LS.Header).getFrequency(); in isProfitableToTransform()
1875 BPI->getEdgeProbability(LS.Latch, LS.LatchBrExitIdx); in isProfitableToTransform()
1930 LoopStructure LS = *MaybeLoopStructure; in run() local
1931 if (!isProfitableToTransform(*L, LS)) in run()
1934 cast<SCEVAddRecExpr>(SE.getMinusSCEV(SE.getSCEV(LS.IndVarBase), SE.getSCEV(LS.IndVarStep))); in run()
1945 LS.IsSignedPredicate ? IntersectSignedRange : IntersectUnsignedRange; in run()
1950 LS.IsSignedPredicate); in run()
1955 assert(!MaybeSafeIterRange.value().isEmpty(SE, LS.IsSignedPredicate) && in run()
1966 LoopConstrainer LC(*L, LI, LPMAddNewLoop, LS, SE, DT, SafeIterRange.value()); in run()