[Bug fortran/35339] Improve translation of implied do loop in transfer

manfred99 at gmx dot ch gcc-bugzilla@gcc.gnu.org
Mon May 29 06:04:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35339

Manfred Schwarb <manfred99 at gmx dot ch> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |manfred99 at gmx dot ch

--- Comment #10 from Manfred Schwarb <manfred99 at gmx dot ch> ---
As I understand this patch applies to read and write.
How does this optimization behave regarding my pet issue (short array reads)?

I.e.
      program internalread
      integer m
      parameter(m=10000000)
      character value*10
      integer i,j,intvalues(m)

      DO j=1,100
        write(value,'(i3,a5)') j," 5 69"
CC        read(value,*,end=20) (intvalues(i),i=1,m)
        read(value,*,end=20) intvalues
   20   print*,"20"
        write(*,*) j,i
      ENDDO
      end program internalread

On my box this is 2.8s vs. 31s, i.e. the array version is more
than 10 times slower than the implied do loop.


More information about the Gcc-bugs mailing list