This may be related to bug 19001 (loops with power of two step and variable 
bounds not unrolled)

Neither of the following empty loops is eliminated:

void foo(int a, int b)
{ for(;a!=b;a+=4); }

void foo(int a, int b)
{ for(;a<b;a+=4); }

Similarily to 19001, these loops come about because of iterating over an range 
of pointers doing 
something for each element (for example deleting them) which for some types 
turns out to be a null 
operation. Fixing this will allow a large number of workarounds in libstdc++ to 
be removed.

-- 
           Summary: Can't eliminate empty loops with power of two step and
                    variable bounds
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P2
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: chris at bubblescope dot net
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23361

Reply via email to