This is the mail archive of the gcc-bugs@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]
Other format: [Raw text]

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


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

--- Comment #11 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
(In reply to Manfred Schwarb from comment #10)
> 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.

The patch to 53029 fixes this one. And I think Nicolas patch will improve
further the implied do loop version by converting to an array section.  Both
patches would be needed for that. We are still testing of course.

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