This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/35339] Improve translation of implied do loop in transfer
- From: "jvdelisle at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 28 May 2017 23:23:20 +0000
- Subject: [Bug fortran/35339] Improve translation of implied do loop in transfer
- Auto-submitted: auto-generated
- References: <bug-35339-4@http.gcc.gnu.org/bugzilla/>
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.