Robert Dewar <[EMAIL PROTECTED]> writes:

| Gabriel Dos Reis wrote:
| 
| > As we have briefly discussed in mails, the most critical part of the
| > issue seems to be what can be assumed for loop variables.  I countend
| > that for many if not most practical loops, the variable can be assumed
| > not to overflow and apply the transformation.  But we need not apply
| > "undefined behaviour" to all other cases; only for those
| > "well-written" loop and loop variables. In summary, if user's loop is
| > well-written then he will benefit from the transformation. That will
| > cover already a good set of common loops.
| 
| Note that the lack of a FOR loop in C adds to the problems here. In

This is why I think a switch is useful here.  The programmer may know
more about his/her loops than the current GCC infrastructure may prove.

Furthermore, the blanket statement of lack of a "FOR loop" does not
preclude existence of properly writeen FOR loop.   We should be able
to do conservative analysis and catch those.  If, User writes

   for (int i = min; i < max; ++i)
       ....

and i, min and max don't change in the body, no matter what you think
of C's general "for" not being a FOR loop, the above is a FOR loop.

-- Gaby

Reply via email to