This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [FORTRAN] Improved expansion of simple WHERE statements
On Sat, Feb 04, 2006 at 03:43:25PM -0800, Steve Kargl wrote:
> On Sat, Feb 04, 2006 at 03:35:53PM -0800, Jerry DeLisle wrote:
> > Roger Sayle wrote:
> > >
> > >Ok for mainline? Could someone double check with NIST/LAPACK
> > >that there are no complications with this change (though the
> > >gfortran reviewers are usually excellent about this)? The
> > >gfc_walk_expr API is scary, so I'd appreciate someone looking
> > >over my usage of it. Some of the restrictions on which WHEREs
> > >can be optimized could be lifted by improved scalarization.
> > >
> > I will try the patch on LAPACK and NIST.
> >
>
> I'm reading the patch now. It should have no effect and show
> no bugs from NIST or LAPACK. NIST and LAPACK are Fortran 77
> codes that pre-date WHERE (and TRANSPOSE and FORALL).
>
> I'll note that I changed one of my codes because the use of a
> simple WHERE caused memory usage to jump from 1GB to 2GB.
>
Well, I may have spoke too soon. I'm seeing a regression with
FM013.f. A reduced test cast is
PROGRAM FM013
IF (ICZERO) 31270, 1270, 31270
1270 CONTINUE
1272 ASSIGN 1273 TO J
1273 ASSIGN 1274 TO J
1274 ASSIGN 1275 TO J
GOTO 1276
1275 continue
1276 GOTO J, ( 1272, 1273, 1274, 1275 )
31270 IVDELE = IVDELE + 1
END
kargl[203] gfc4x -o z -w fm013.f
kargl[204] gfc4x -o z -w -O fm013.f
/var/tmp/ccMIfiYq.o(.text+0x8): In function `MAIN__':
: undefined reference to `.L5'
/var/tmp/ccMIfiYq.o(.text+0x14): In function `MAIN__':
: undefined reference to `.L7'
collect2: ld returned 1 exit status
I think this is unrelated to Roger's patch, but I've reverted
to a clean tree to see what happens.
--
Steve