------- Comment #2 from pault at gcc dot gnu dot org  2008-11-07 13:59 -------
(In reply to comment #1)
> (In reply to comment #0)

> Removes the _gfortran_size0 calls from the loop but I have not yet located the
> doubling up of calls here:
> 
>     D.1551 = temp.offset;
>     D.1552 = &a;
>     D.1553 = (integer(kind=8)) (integer(kind=4)) _gfortran_size0 (D.1552);
>     D.1554 = &a;
>     D.1555 = (integer(kind=8)) (integer(kind=4)) _gfortran_size0 (D.1554) + -1

The second call and stabilization of &a comes from the patch in #1.  The first
is from gfc_conv_section_startstride, after:

  /* Similarly calculate the end.  Although this is not used in the
     scalarizer, it is needed when checking bounds and where the end
     is an expression with side-effects.  */

Thus, rather than using loop->to[n], we will probably have to detect
GFC_SS_SECTION && ss->data.info.end[n] and the use ss->data.info.start[n] and
ss->data.info.end[n].

I'm working on it!

Paul


-- 


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

Reply via email to