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.

Reply via email to