Lines Matching refs:SE

256   ScalarEvolution *SE;  member in __anon082da8af0111::LoopPredication
313 LoopPredication(AliasAnalysis *AA, DominatorTree *DT, ScalarEvolution *SE, in LoopPredication() argument
315 : AA(AA), DT(DT), SE(SE), LI(LI), MSSAU(MSSAU){}; in LoopPredication()
335 auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE(); in runOnLoop() local
343 LoopPredication LP(AA, DT, SE, LI, MSSAU ? MSSAU.get() : nullptr); in runOnLoop()
368 LoopPredication LP(&AR.AA, &AR.DT, &AR.SE, &AR.LI, in run()
385 const SCEV *LHSS = SE->getSCEV(LHS); in parseLoopICmp()
388 const SCEV *RHSS = SE->getSCEV(RHS); in parseLoopICmp()
393 if (SE->isLoopInvariant(LHSS, L)) { in parseLoopICmp()
413 if (SE->isLoopInvariant(LHS, L) && SE->isLoopInvariant(RHS, L)) { in expandCheck()
415 if (SE->isLoopEntryGuardedByCond(L, Pred, LHS, RHS)) in expandCheck()
417 if (SE->isLoopEntryGuardedByCond(L, ICmpInst::getInversePredicate(Pred), in expandCheck()
444 ScalarEvolution &SE, in isSafeToTruncateWideIVType() argument
464 if (!SE.getMonotonicPredicateType(LatchCheck.IV, LatchCheck.Pred)) in isSafeToTruncateWideIVType()
479 ScalarEvolution &SE, in generateLoopLatchCheck() argument
490 if (!isSafeToTruncateWideIVType(DL, SE, LatchCheck, RangeCheckType)) in generateLoopLatchCheck()
497 SE.getTruncateExpr(LatchCheck.IV, RangeCheckType)); in generateLoopLatchCheck()
500 NewLatchCheck.Limit = SE.getTruncateExpr(LatchCheck.Limit, RangeCheckType); in generateLoopLatchCheck()
528 if (!SE->isLoopInvariant(Op, L) || in findInsertPt()
554 if (SE->isLoopInvariant(S, L)) in isLoopInvariantValue()
603 SE->getAddExpr(SE->getMinusSCEV(GuardLimit, GuardStart), in widenICmpRangeCheckIncrementingLoop()
604 SE->getMinusSCEV(LatchStart, SE->getOne(Ty))); in widenICmpRangeCheckIncrementingLoop()
645 auto *PostDecLatchCheckIV = LatchCheck.IV->getPostIncExpr(*SE); in widenICmpRangeCheckDecrementingLoop()
663 SE->getOne(Ty)); in widenICmpRangeCheckDecrementingLoop()
668 static void normalizePredicate(ScalarEvolution *SE, Loop *L, in normalizePredicate() argument
673 RC.IV->getStepRecurrence(*SE)->isOne() && in normalizePredicate()
674 SE->isKnownPredicate(ICmpInst::ICMP_ULE, RC.IV->getStart(), RC.Limit)) in normalizePredicate()
710 auto *Step = RangeCheckIV->getStepRecurrence(*SE); in widenICmpRangeCheck()
718 auto CurrLatchCheckOpt = generateLoopLatchCheck(*DL, *SE, LatchCheck, Ty); in widenICmpRangeCheck()
730 CurrLatchCheck.IV->getStepRecurrence(*SE)->getType() && in widenICmpRangeCheck()
732 if (Step != CurrLatchCheck.IV->getStepRecurrence(*SE)) { in widenICmpRangeCheck()
894 auto *Step = Result->IV->getStepRecurrence(*SE); in parseLoopLatchICmp()
911 normalizePredicate(SE, L, *Result); in parseLoopLatchICmp()
1065 static const SCEV *getMinAnalyzeableBackedgeTakenCount(ScalarEvolution &SE, in getMinAnalyzeableBackedgeTakenCount() argument
1073 const SCEV *ExitCount = SE.getExitCount(L, ExitingBB); in getMinAnalyzeableBackedgeTakenCount()
1082 return SE.getCouldNotCompute(); in getMinAnalyzeableBackedgeTakenCount()
1083 return SE.getUMinFromMismatchedTypes(ExitCounts); in getMinAnalyzeableBackedgeTakenCount()
1125 const SCEV *LatchEC = SE->getExitCount(L, Latch); in predicateLoopExits()
1154 SE->forgetLoop(L); in predicateLoopExits()
1162 const SCEV *MinEC = getMinAnalyzeableBackedgeTakenCount(*SE, *DT, L); in predicateLoopExits()
1164 !SE->isLoopInvariant(MinEC, L) || in predicateLoopExits()
1201 const SCEV *ExitCount = SE->getExitCount(L, ExitingBB); in predicateLoopExits()
1225 Type *WiderTy = SE->getWiderType(ECV->getType(), RHS->getType()); in predicateLoopExits()
1248 SE->forgetLoop(L); in predicateLoopExits()
1305 SCEVExpander Expander(*SE, *DL, "loop-predication"); in runOnLoop()