reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
132 assert(SE->isSCEVable(IVSrc->getType()) && "Expect SCEVable IV operand"); 144 FoldedExpr = SE->getUDivExpr(SE->getSCEV(IVSrc), SE->getSCEV(D)); 144 FoldedExpr = SE->getUDivExpr(SE->getSCEV(IVSrc), SE->getSCEV(D)); 144 FoldedExpr = SE->getUDivExpr(SE->getSCEV(IVSrc), SE->getSCEV(D)); 148 SE->getSCEV(IVSrc) != SE->getMulExpr(FoldedExpr, SE->getSCEV(D))) 148 SE->getSCEV(IVSrc) != SE->getMulExpr(FoldedExpr, SE->getSCEV(D))) 148 SE->getSCEV(IVSrc) != SE->getMulExpr(FoldedExpr, SE->getSCEV(D))) 152 if (!SE->isSCEVable(UseInst->getType())) 156 if (SE->getSCEV(UseInst) != FoldedExpr) 163 assert(SE->getSCEV(UseInst) == FoldedExpr && "bad SCEV with folded oper"); 189 const SCEV *S = SE->getSCEVAtScope(ICmp->getOperand(IVOperIdx), ICmpLoop); 190 const SCEV *X = SE->getSCEVAtScope(ICmp->getOperand(1 - IVOperIdx), ICmpLoop); 198 if (!SE->isLoopInvariantPredicate(Pred, S, X, L, InvariantPredicate, 216 const SCEV *IncomingS = SE->getSCEV(Incoming); 259 const SCEV *S = SE->getSCEVAtScope(ICmp->getOperand(IVOperIdx), ICmpLoop); 260 const SCEV *X = SE->getSCEVAtScope(ICmp->getOperand(1 - IVOperIdx), ICmpLoop); 264 if (SE->isKnownPredicate(Pred, S, X)) { 268 } else if (SE->isKnownPredicate(ICmpInst::getInversePredicate(Pred), S, X)) { 275 SE->isKnownNonNegative(S) && SE->isKnownNonNegative(X)) { 275 SE->isKnownNonNegative(S) && SE->isKnownNonNegative(X)) { 294 auto *N = SE->getSCEV(SDiv->getOperand(0)); 295 auto *D = SE->getSCEV(SDiv->getOperand(1)); 299 N = SE->getSCEVAtScope(N, L); 300 D = SE->getSCEVAtScope(D, L); 303 if (SE->isKnownNonNegative(N) && SE->isKnownNonNegative(D)) { 303 if (SE->isKnownNonNegative(N) && SE->isKnownNonNegative(D)) { 367 const SCEV *N = SE->getSCEV(NValue); 371 N = SE->getSCEVAtScope(N, ICmpLoop); 373 bool IsNumeratorNonNegative = !IsSigned || SE->isKnownNonNegative(N); 379 const SCEV *D = SE->getSCEV(DValue); 380 D = SE->getSCEVAtScope(D, ICmpLoop); 384 if (SE->isKnownPredicate(LT, N, D)) { 390 const auto *NLessOne = SE->getMinusSCEV(N, SE->getOne(T)); 390 const auto *NLessOne = SE->getMinusSCEV(N, SE->getOne(T)); 391 if (SE->isKnownPredicate(LT, NLessOne, D)) { 399 if (!IsSigned || !SE->isKnownNonNegative(D)) 442 const SCEV *LHS = SE->getSCEV(WO->getLHS()); 443 const SCEV *RHS = SE->getSCEV(WO->getRHS()); 444 if (!willNotOverflow(SE, WO->getBinaryOp(), WO->isSigned(), LHS, RHS)) 482 const SCEV *LHS = SE->getSCEV(SI->getLHS()); 483 const SCEV *RHS = SE->getSCEV(SI->getRHS()); 484 if (!willNotOverflow(SE, SI->getBinaryOp(), SI->isSigned(), LHS, RHS)) 519 const SCEV *IVSCEV = SE->getSCEV(IV); 520 const SCEV *TISCEV = SE->getSCEV(TI); 526 if (IVSCEV == SE->getSignExtendExpr(TISCEV, IVTy)) 528 if (IVSCEV == SE->getZeroExtendExpr(TISCEV, IVTy)) 573 const SCEV *SCEVOP1 = SE->getSCEV(ICI->getOperand(0)); 574 const SCEV *SCEVOP2 = SE->getSCEV(ICI->getOperand(1)); 575 return SE->isKnownNonNegative(SCEVOP1) && SE->isKnownNonNegative(SCEVOP2); 575 return SE->isKnownNonNegative(SCEVOP1) && SE->isKnownNonNegative(SCEVOP2); 660 if (!SE->isSCEVable(I->getType())) 664 const SCEV *S = SE->getSCEV(I); 666 if (!SE->isLoopInvariant(S, L)) 688 if (!SE->isSCEVable(UseInst->getType()) || 690 (SE->getSCEV(UseInst) != SE->getSCEV(IVOperand))) 690 (SE->getSCEV(UseInst) != SE->getSCEV(IVOperand))) 740 const SCEV *LHS = SE->getSCEV(BO->getOperand(0)); 741 const SCEV *RHS = SE->getSCEV(BO->getOperand(1)); 745 willNotOverflow(SE, BO->getOpcode(), /* Signed */ false, LHS, RHS)) { 747 SE->forgetValue(BO); 752 willNotOverflow(SE, BO->getOpcode(), /* Signed */ true, LHS, RHS)) { 754 SE->forgetValue(BO); 770 ConstantRange IVRange = SE->getUnsignedRange(SE->getSCEV(IVOperand)); 770 ConstantRange IVRange = SE->getUnsignedRange(SE->getSCEV(IVOperand)); 853 if (!SE->isSCEVable(CurrIV->getType())) 921 if (isSimpleIVUser(UseInst, L, SE)) {