This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Value Range Propagation Patch (Version 4)
- To: John Wehle <john at feith dot com>
- Subject: Re: Value Range Propagation Patch (Version 4)
- From: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Date: Mon, 24 Jul 2000 20:32:10 +0200
- CC: gcc-patches at gcc dot gnu dot org, law at cygnus dot com
- Organization: Moene Computational Physics, Maartensdijk, The Netherlands
- References: <200007240505.BAA26688@jwlab.FEITH.COM>
John Wehle wrote:
> [ In addition to the usual improvements redundant bounds
> checking is removed from:
>
> PARAMETER (N=10)
> DIMENSION A(N)
> DO I = 1, N
> A(I) = I
> A(I) = A(I) + 3
> ENDDO
> PRINT*,A
> END
>
> when compiled on the Alpha. ]
Yep - it works ! Thanks a lot !
Did my suggestion about zero-extended variables on Alpha have any merit,
or was it just a complete miss ?
There is a interesting irony about value range propagation: It tends to
spend most of its time on routines/code that ultimately will take the
least time to execute anyway ;-)
[ Mainly because, as the human programmer knows - they won't take long
to execute, so why should _he_ spend any time to optimize them ? ]
I just saw it spend 5:26 minutes on a routine that will take care of the
initialisation of some arrays in a split second when executing :-)
[ That 5+ minutes is without array bounds checking ]
How do you get it to focus its efforts on code that really matters ?
Cheers,
--
Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
GNU Fortran 95: http://g95.sourceforge.net/ (under construction)
PS: Unfortunately, due to the large memory requirements, some of my
compilations ended with a Segmentation Fault. I'll retry shortly
with only one compilation thread instead of four.