loop unroll question
Zdenek Dvorak
rakdver@atrey.karlin.mff.cuni.cz
Fri Apr 2 09:06:00 GMT 2004
Hello,
> For mainline on power-pc 4 with the option -O3 -funroll-loops,
> the following loop is not unrolled, but in GCC 3.4 it is.
> Also for mainline the bct is not inserted, but again in GCC 3.4
> it is.
>
> void
> example_new(int a[],int b[],int c[], int j)
> {
> int i;
>
> for(i=0 ; i<=j ; i++)
> {
> c[i]=a[i]+b[i];
> }
> return;
> }
as for inserting bct -- it was wrong to do this, since the loop could
be the infinite one (not really, since we work in a signed arithmetics
for that the overflow has an undefined behavior, but we cannot
verify this on rtl level).
As for unrolling, we are too conservative here; I will send a patch
for this soon.
Zdenek
> If the condition is changed to < (instead of <=) the unrolling is
> done as expected and bct is inserted.
>
> Thanks,
> Revital
More information about the Gcc
mailing list