Lines Matching refs:SCEV

36 // It's tempting to rely on SCEV here, but it has proven to be problematic.
37 // Generally the facts SCEV provides about the increment step of add
251 const SCEV *Limit;
253 const SCEV *Limit)
274 bool isSupportedStep(const SCEV* Step);
283 /// Same as above, *except* that this uses the SCEV definition of invariant
288 ArrayRef<const SCEV *> Ops);
293 bool isLoopInvariantValue(const SCEV* S);
296 ICmpInst::Predicate Pred, const SCEV *LHS,
297 const SCEV *RHS);
354 const SCEV *LHSS = SE->getSCEV(LHS);
357 const SCEV *RHSS = SE->getSCEV(RHS);
377 ICmpInst::Predicate Pred, const SCEV *LHS,
378 const SCEV *RHS) {
402 // same type. We achieve this by generating a SCEV truncate expression for the
405 // Another way to achieve this is by generating a wider type SCEV for the
478 bool LoopPredication::isSupportedStep(const SCEV* Step) {
492 ArrayRef<const SCEV *> Ops) {
493 // Subtlety: SCEV considers things to be invariant if the value produced is
496 for (const SCEV *Op : Ops)
503 bool LoopPredication::isLoopInvariantValue(const SCEV* S) {
524 // Note: This the SCEV variant, so the original Value* may be within the
525 // loop even though SCEV has proven it is loop invariant.
528 // Handle a particular important case which SCEV doesn't yet know about which
530 // TODO: This should be sunk inside SCEV.
550 const SCEV *GuardStart = RangeCheck.IV->getStart();
551 const SCEV *GuardLimit = RangeCheck.Limit;
552 const SCEV *LatchStart = LatchCheck.IV->getStart();
553 const SCEV *LatchLimit = LatchCheck.Limit;
571 const SCEV *RHS =
594 const SCEV *GuardStart = RangeCheck.IV->getStart();
595 const SCEV *GuardLimit = RangeCheck.Limit;
596 const SCEV *LatchStart = LatchCheck.IV->getStart();
597 const SCEV *LatchLimit = LatchCheck.Limit;
854 auto IsUnsupportedPredicate = [](const SCEV *Step, ICmpInst::Predicate Pred) {
1004 static const SCEV *getMinAnalyzeableBackedgeTakenCount(ScalarEvolution &SE,
1010 SmallVector<const SCEV *, 4> ExitCounts;
1012 const SCEV *ExitCount = SE.getExitCount(L, ExitingBB);
1064 const SCEV *LatchEC = SE->getExitCount(L, Latch);
1106 const SCEV *MinEC = getMinAnalyzeableBackedgeTakenCount(*SE, *DT, L);
1133 const SCEV *ExitCount = SE->getExitCount(L, ExitingBB);