This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gomp] Fix degenerate omp for loops (PR libgomp/29949)


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]