This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Register renaming, loop unrolling and and the needs of Fortran users.


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)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]