"Guido van Rossum" <[EMAIL PROTECTED]> writes: [...]
| > In general I think I personally am on the very conservative edge of | > gcc developers, in that I am generally opposed to breaking existing | > code. But this particular optimization will let us do a much better | > job on very simple loops like | > for (int i = 0; i != n; i += 5) | > The issue with a loop like this is that if signed overflow is defined | > to be like unsigned overflow, then this loop could plausibly wrap | > around INT_MAX and then terminate. If signed overflow is undefined, | > then we do not have to worry about and correctly handle that case. | | That seems to me rather obviously broken code unless the programmer | has proven to himself that n is a multiple of 5. So why bother | attempting to optimize it? Because the programmer may have proven that n is multiple of 5, *and* the above is the result of inlining and removing other abstraction artefact, e.g. not directly _written_ like that. Programmers do expect GCC will do the obvious thing: optimize it. -- Gaby