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

References

lib/Analysis/ScalarEvolution.cpp
 2032     if (AR->isAffine()) {
 2033       const SCEV *Start = AR->getStart();
 2034       const SCEV *Step = AR->getStepRecurrence(*this);
 2035       unsigned BitWidth = getTypeSizeInBits(AR->getType());
 2036       const Loop *L = AR->getLoop();
 2038       if (!AR->hasNoSignedWrap()) {
 2039         auto NewFlags = proveNoWrapViaConstantRanges(AR);
 2040         const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(NewFlags);
 2045       if (AR->hasNoSignedWrap())
 2047             getExtendAddRecStart<SCEVSignExtendExpr>(AR, Ty, this, Depth + 1),
 2089             const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNSW);
 2092                 getExtendAddRecStart<SCEVSignExtendExpr>(AR, Ty, this,
 2095                 AR->getNoWrapFlags());
 2114             const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNW);
 2118                 getExtendAddRecStart<SCEVSignExtendExpr>(AR, Ty, this,
 2121                 AR->getNoWrapFlags());
 2145             (isLoopBackedgeGuardedByCond(L, Pred, AR, OverflowLimit) ||
 2146              isKnownOnEveryIteration(Pred, AR, OverflowLimit))) {
 2148           const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNSW);
 2150               getExtendAddRecStart<SCEVSignExtendExpr>(AR, Ty, this, Depth + 1),
 2151               getSignExtendExpr(Step, Ty, Depth + 1), L, AR->getNoWrapFlags());
 2164               getAddRecExpr(getConstant(C - D), Step, L, AR->getNoWrapFlags());
 2173         const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNSW);
 2175             getExtendAddRecStart<SCEVSignExtendExpr>(AR, Ty, this, Depth + 1),
 2176             getSignExtendExpr(Step, Ty, Depth + 1), L, AR->getNoWrapFlags());