enum SCEV::NoWrapFlags

Description

NoWrapFlags are bitfield indices into SubclassData. Add and Mul expressions may have no-unsigned-wrap <NUW > or no-signed-wrap <NSW > properties, which are derived from the IR operator. NSW is a misnomer that we use to mean no signed overflow or underflow. AddRec expressions may have a no-self-wraparound <NW > property if, in the integer domain, abs(step) * max-iteration(loop) < = unsigned-max(bitwidth). This means that the recurrence will never reach its start value if the step is non-zero. Computing the same value on each iteration is not considered wrapping, and recurrences with step = 0 are trivially <NW >. <NW > is independent of the sign of step and the value the add recurrence starts with. Note that NUW and NSW are also valid properties of a recurrence, and either implies NW. For convenience, NW will be set for a recurrence whenever either NUW or NSW are set.

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:113

Enumerators

NameValueComment
FlagAnyWrap0
FlagNW1
FlagNUW2
FlagNSW4
NoWrapMask7