------- 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