http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38199

--- Comment #29 from Manfred Schwarb <manfred99 at gmx dot ch> ---
The regression flag was re-added by Tobias in comment 23 due to
a regression in the testcase of comment 21:

!234567
      character buffer*100000
      integer i,j

      DO j=1,9999
        write(buffer,'(i4)') j
        write(*,*) buffer(1:4)
        read(buffer,'(i100000)') i
        write(*,*) i
      ENDDO
      end

Here are the profiles of gfortran 4.6:
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
 time   seconds   seconds    calls  Ts/call  Ts/call  name
 97.45      3.06     3.06                             _gfortrani_read_decimal
  1.59      3.11     0.05                             memset
  0.64      3.13     0.02                             __write_nocancel
  0.32      3.14     0.01                             format_lex
  0.00      3.14     0.00        1     0.00     0.00  main


and gfortran trunk:
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
 time   seconds   seconds    calls  Ts/call  Ts/call  name
 59.96      2.71     2.71                             read_utf8
 38.72      4.46     1.75                             _gfortrani_read_decimal
  0.66      4.49     0.03                             memset
  0.22      4.50     0.01                             fflush
  0.22      4.51     0.01                             formatted_transfer
  0.22      4.52     0.01                             malloc_consolidate
  0.00      4.52     0.00        1     0.00     0.00  main


so the difference is obvious, the utf8 treatment makes the difference.
Is there a possibility to speed up reading the trivial cases?
99.99% of fortran input will be ASCII, I guess...

And again, the magical approach is to add LEN_TRIM to avoid reading
100000 space characters and interpreting them as utf8.

So if something like Thomas' patch could be applied also for formatted
reads, this would speed up things dramatically as well.

Reply via email to