reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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());