Lines Matching refs:SE
265 ScalarEvolution *SE; member in __anon0d09f8f50111::LoopPredication
324 LoopPredication(AliasAnalysis *AA, DominatorTree *DT, ScalarEvolution *SE, in LoopPredication() argument
326 : AA(AA), DT(DT), SE(SE), LI(LI), MSSAU(MSSAU){}; in LoopPredication()
338 LoopPredication LP(&AR.AA, &AR.DT, &AR.SE, &AR.LI, in run()
354 const SCEV *LHSS = SE->getSCEV(LHS); in parseLoopICmp()
357 const SCEV *RHSS = SE->getSCEV(RHS); in parseLoopICmp()
362 if (SE->isLoopInvariant(LHSS, L)) { in parseLoopICmp()
382 if (SE->isLoopInvariant(LHS, L) && SE->isLoopInvariant(RHS, L)) { in expandCheck()
384 if (SE->isLoopEntryGuardedByCond(L, Pred, LHS, RHS)) in expandCheck()
386 if (SE->isLoopEntryGuardedByCond(L, ICmpInst::getInversePredicate(Pred), in expandCheck()
413 ScalarEvolution &SE, in isSafeToTruncateWideIVType() argument
433 if (!SE.getMonotonicPredicateType(LatchCheck.IV, LatchCheck.Pred)) in isSafeToTruncateWideIVType()
448 ScalarEvolution &SE, in generateLoopLatchCheck() argument
459 if (!isSafeToTruncateWideIVType(DL, SE, LatchCheck, RangeCheckType)) in generateLoopLatchCheck()
466 SE.getTruncateExpr(LatchCheck.IV, RangeCheckType)); in generateLoopLatchCheck()
469 NewLatchCheck.Limit = SE.getTruncateExpr(LatchCheck.Limit, RangeCheckType); in generateLoopLatchCheck()
497 if (!SE->isLoopInvariant(Op, L) || in findInsertPt()
523 if (SE->isLoopInvariant(S, L)) in isLoopInvariantValue()
572 SE->getAddExpr(SE->getMinusSCEV(GuardLimit, GuardStart), in widenICmpRangeCheckIncrementingLoop()
573 SE->getMinusSCEV(LatchStart, SE->getOne(Ty))); in widenICmpRangeCheckIncrementingLoop()
615 auto *PostDecLatchCheckIV = LatchCheck.IV->getPostIncExpr(*SE); in widenICmpRangeCheckDecrementingLoop()
633 SE->getOne(Ty)); in widenICmpRangeCheckDecrementingLoop()
639 static void normalizePredicate(ScalarEvolution *SE, Loop *L, in normalizePredicate() argument
644 RC.IV->getStepRecurrence(*SE)->isOne() && in normalizePredicate()
645 SE->isKnownPredicate(ICmpInst::ICMP_ULE, RC.IV->getStart(), RC.Limit)) in normalizePredicate()
680 auto *Step = RangeCheckIV->getStepRecurrence(*SE); in widenICmpRangeCheck()
688 auto CurrLatchCheckOpt = generateLoopLatchCheck(*DL, *SE, LatchCheck, Ty); in widenICmpRangeCheck()
700 CurrLatchCheck.IV->getStepRecurrence(*SE)->getType() && in widenICmpRangeCheck()
702 if (Step != CurrLatchCheck.IV->getStepRecurrence(*SE)) { in widenICmpRangeCheck()
848 auto *Step = Result->IV->getStepRecurrence(*SE); in parseLoopLatchICmp()
865 normalizePredicate(SE, L, *Result); in parseLoopLatchICmp()
1004 static const SCEV *getMinAnalyzeableBackedgeTakenCount(ScalarEvolution &SE, in getMinAnalyzeableBackedgeTakenCount() argument
1012 const SCEV *ExitCount = SE.getExitCount(L, ExitingBB); in getMinAnalyzeableBackedgeTakenCount()
1021 return SE.getCouldNotCompute(); in getMinAnalyzeableBackedgeTakenCount()
1022 return SE.getUMinFromMismatchedTypes(ExitCounts); in getMinAnalyzeableBackedgeTakenCount()
1064 const SCEV *LatchEC = SE->getExitCount(L, Latch); in predicateLoopExits()
1093 SE->forgetLoop(L); in predicateLoopExits()
1106 const SCEV *MinEC = getMinAnalyzeableBackedgeTakenCount(*SE, *DT, L); in predicateLoopExits()
1108 !SE->isLoopInvariant(MinEC, L) || in predicateLoopExits()
1133 const SCEV *ExitCount = SE->getExitCount(L, ExitingBB); in predicateLoopExits()
1157 Type *WiderTy = SE->getWiderType(ECV->getType(), RHS->getType()); in predicateLoopExits()
1180 SE->forgetLoop(L); in predicateLoopExits()
1237 SCEVExpander Expander(*SE, *DL, "loop-predication"); in runOnLoop()