reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Utils/SimplifyIndVar.cpp
  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)) {