This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Register renaming, loop unrolling and and the needs of Fortran users.
- To: gcc at gcc dot gnu dot org
- Subject: Register renaming, loop unrolling and and the needs of Fortran users.
- From: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Date: Sun, 09 Apr 2000 20:22:20 +0200
- Organization: Moene Computational Physics, Maartensdijk, The Netherlands
Lectoribus Salutem,
Stan Cox recently added a register renaming pass to gcc, see:
http://gcc.gnu.org/ml/gcc-patches/2000-03/msg00921.html
This pass should be able to solve the issue mentioned in my Fortran
Lamentations, Chapter II, verse 4:
http://gcc.gnu.org/ml/gcc/1997-12/msg00396.html
Unfortunately, it doesn't - and that's probably not Stan's fault.
What happens, on my alphaev6-unknown-gnu-linux system, is that ordinary
Fortran loops like:
subroutine sum(a, b, c, n)
integer i, n
real a(n), b(n), c(n)
do i = 1, n
c(i) = a(i) + b(i)
enddo
end
won't be unrolled with -funroll-loops.
This is amazing, given my investigations into which Fortran loops would
and would not unroll (end of '95 - I can copy them to the GCC list if
necessary).
Obviously, something changed in loop unrolling since early '96.
However, I still hope someone can assess the usefulness of Stan's
register renaming pass; it's mostly useful for statically scheduled
processors, like the Alpha 21164(A). For my DS10 (using a 466 Mhz
21264) it doesn't make a discernable difference.
Hope this helps,
--
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://xena.eas.asu.edu/~andy (under construction)