top | item 30035068

(no title)

hramrach | 4 years ago

I don't understand.

If you can turn the loop from upward to downward then you do have a bound for it, and then you can tell if it overflows or not.

Also why is signed overflow a problem and not unsigned?

Surely you want unsigned loop optimized also?

discuss

order

astrange|4 years ago

Unsigned overflow is not UB (it wraps) so it has to be preserved more often, which means you have a loop bounds less often, which means those loops can't be optimized.

Typically not a problem for i=0...n loops but eg `for (i=0;i<n;i+=2)` could overflow.