[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 Jerry DeLisle changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #11 from Jerry DeLisle --- Fixed on 7 and closing.
[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 --- Comment #10 from Jerry DeLisle --- Author: jvdelisle Date: Wed Jun 28 04:14:32 2017 New Revision: 249719 URL: https://gcc.gnu.org/viewcvs?rev=249719=gcc=rev Log: 2017-06-27 Jerry DeLisleBackport from trunk PR libgfortran/53029 * io/list_read.c(list_formatted_read_scalar: Set the err return value to the common.flags error values. * gfortran.dg/read_5.f90: New test. Added: branches/gcc-7-branch/gcc/testsuite/gfortran.dg/read_5.f90 Modified: branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/libgfortran/ChangeLog branches/gcc-7-branch/libgfortran/io/list_read.c
[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 --- Comment #9 from Thomas Koenig --- (In reply to Jerry DeLisle from comment #8) > Fixed on trunk. If this is important enough we could backport to 7. Any > opinions? I'd say yes.
[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 --- Comment #8 from Jerry DeLisle --- Fixed on trunk. If this is important enough we could backport to 7. Any opinions?
[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 --- Comment #7 from Jerry DeLisle --- Author: jvdelisle Date: Mon May 29 19:17:57 2017 New Revision: 248577 URL: https://gcc.gnu.org/viewcvs?rev=248577=gcc=rev Log: 2017-05-29 Jerry DeLislePR libgfortran/53029 * list_read.c (list_formatted_read_scala): Set the err return value to the common.flags error values. * gfortran.dg/read_5.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/read_5.f90 Modified: trunk/gcc/testsuite/ChangeLog trunk/libgfortran/ChangeLog trunk/libgfortran/io/list_read.c
[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 --- Comment #6 from Manfred Schwarb --- Will do tomorrow. Thanks for your patch, I hadn't seen your comments here when I wrote my comment to bug 35339 ... We had seemingly the same association when reading nicolas' patch.
[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 --- Comment #5 from Jerry DeLisle --- The patch regression tested OK. Manfred can you test for yourself? At least on this test case we are getting biggly better!
[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 Jerry DeLisle changed: What|Removed |Added CC||jvdelisle at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |jvdelisle at gcc dot gnu.org --- Comment #4 from Jerry DeLisle --- I don't remember seeing this bug before. (not saying I had not) This patch may fix it. Regression testing. The function list_formatted_read_scalar is called in the big loop over the array. That loop only exits if we return and error from here, which we never did. With this patch the test completes in .007 seconds. diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index 6c00d11b..b6cd6670 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -2298,11 +2298,16 @@ list_formatted_read_scalar (st_parameter_dt *dtp, bt type, void *p, free_saved (dtp); cleanup: + /* err may have been set above from finish_separator, so if it is set + trigger the hit_eof. The hit_eof will set bits in common.flags. */ if (err == LIBERROR_END) { free_line (dtp); hit_eof (dtp); } + /* Now we check common.flags for any errors that could have occurred in + a READ elsewhere such as in read_integer. */ + err = dtp->common.flags & IOPARM_LIBRETURN_MASK; fbuf_flush_list (dtp->u.p.current_unit, LIST_READING); return err; }
[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 Dominique d'Humieres changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-10-20 Ever confirmed|0 |1 --- Comment #3 from Dominique d'Humieres --- Confirmed from 4.8 up to trunk (6.0).
[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 Thomas Koenig tkoenig at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||tkoenig at gcc dot gnu.org Resolution||FIXED --- Comment #1 from Thomas Koenig tkoenig at gcc dot gnu.org 2012-05-11 20:38:53 UTC --- Fixed together with PR 50673. Closing.
[Bug fortran/53029] missed optimization in internal read (without implied-do-loop)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029 Manfred Schwarb manfred99 at gmx dot ch changed: What|Removed |Added Status|RESOLVED|UNCONFIRMED Resolution|FIXED | --- Comment #2 from Manfred Schwarb manfred99 at gmx dot ch 2012-05-11 21:25:14 UTC --- Is not. Please see the opening date of this bug compared to BUG 50673. It _is_ actually a reaction on seeing that BUG 50673 has not fixed this particular issue ... I just verified it again with # gfc-test -v Using built-in specs. COLLECT_GCC=/usr/local/gfortran-test/bin/gfortran COLLECT_LTO_WRAPPER=/usr/local/gfortran-test/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gfortran-source/gcc-4.8-20120506/configure --enable-languages=c,c++,fortran --disable-libmudflap --enable-libgomp --disable-nls --enable-checking=release --disable-bootstrap --prefix=/usr/local/gfortran-test --enable-lto --enable-gold --with-plugin-ld=/usr/bin/gold Thread model: posix gcc version 4.8.0 20120506 (experimental) (GCC)