This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [gomp] Fix degenerate omp for loops (PR libgomp/29949)
- From: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- To: Diego Novillo <dnovillo at redhat dot com>
- Cc: Jakub Jelinek <jakub at redhat dot com>, Richard Henderson <rth at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Sat, 2 Dec 2006 00:23:06 +0100
- Subject: Re: [gomp] Fix degenerate omp for loops (PR libgomp/29949)
- References: <45709D65.9080801@redhat.com>
Hello,
> Jakub Jelinek wrote on 12/01/06 11:32:
>
> >Lastly, the compiler expanded loops (static without chunk size, static with
> >chunk size) failed because the arithmetics to compute range given to the
> >current thread was mostly done in unsigned long and thus when N2 - N1
> >was negative (for positive STEP resp. positive for negative STEP), we ended
> >up with a huge range. I tried to figure out why this was cast to utype,
> >but haven't found why it has been written that way.
I think that not casting to unsigned type might give wrong results for
loops like
for (i = -many; i < many; i++)
ie. in cases the number of iterations does not fit in the signed type.
(sorry if I understand the situation wrong, I did not really check the
code whether this is the case or not, it just seems to be one possible
reason why we want to compute these things in unsigned type).
Zdenek